1. 程式人生 > 其它 >centos 7 hadoop2.7完全分散式安裝

centos 7 hadoop2.7完全分散式安裝

此文件為hadoop2.7和java8的安裝。此配置只是用來學習大資料時所撰寫

這裡建立完全分散式叢集用三臺主機,主機名和IP分別如下

hadoop111A192.168.241.111
hadoop222B 192.168.241.112
hadoop333C 192.168.241.113

進入虛擬機器,先把防火牆關掉

systemctl status firewalld.service 檢視防火牆 systemctl stop firewalld.service 關閉防火牆 systemctl start firewalld.service 開啟防火牆 systemctl disable firewalld.service 關閉開機啟動 systemctl enable firewalld.service 開啟開機啟動

檢視現在的IP ifconfig

既然是用來學習,那我們就直接用root使用者來搭建,這樣也比較方便

修改網路配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33

 DEVICE=ens33
 TYPE=Ethernet
 ONBOOT=yes
 NM_CONTROLLED=yes
 BOOTPROTO=static
 IPADDR=192.168.241.111
 PREFIX=24
 GATEWAY=192.168.241.2
 DNS1=192.168.241.2
 DNS2=8.8.8.8

重啟網路配置 systemctl restart network

現在就可以看到IP已經更改了

修改主機名 vim /etc/hostname

hadoop111A

安裝 epel-release 注:Extra Packages for Enterprise Linux是為“紅帽系”的作業系統提供額外的軟體包,適用於RHEL, CentOS 和 Scientific Linux。相當於是一個軟體倉庫,大多數rpm包在官方repository中是找不到的 yum install -y epel-release 如果linux安裝的是最小系統版,還需要安裝如下工具; net-toll:工具包集合,包含ifconfig等命令 yum install -y net-toll vim編輯器 yum install -y vim

配置hadoop使用者具有root許可權,方便後期家sudo執行root許可權的命令 vim /etc/sudoers

##Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

niuma ALL=(ALL) NOPASSWD:ALL

如果系統自帶有jdk,那就把原來的jdk刪除掉

檢視jdk rpm -qa | grep java

刪除jdk rpm -e | --nodeps 軟體包名

解壓hadoop和jdk

tar -zxvf 軟體包名

新增/配置環境變數



##JAVA_HOME
 JAVA_HOME=/home/niuma/bigdata/java/jdk
 JRE_HOME=$JAVA_HOME/jre
 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
 CLASSPATH=.:$JAVA_HOME/lib.dt.jar:$JAVA_HOME/lib/tools.jar:$JER_HOME/lib
 export JAVA_HOME JRE_HOME PATH CLASSPATH
 ##HADOOP_HOME
 export HADOOP_HOME=/home/niuma/bigdata/hadoop
 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin

應用這個配置 source /etc/profile

檢視hadoop hadoop version

檢視jdk java -version

配置對映;配置Windows對映C:\Windows\System32\drivers\etc\hosts win10一般有限制,需要將這個檔案 移動出來修改後再放回去。把ip和主機名新增在最下面

 127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
 192.168.241.111 hadoop111A
 192.168.241.112 hadoop222B
 192.168.241.113 hadoop333C

修改linux的對映 vim /etc/hosts

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 192.168.241.111 hadoop111A
 192.168.241.112 hadoop222B
 192.168.241.113 hadoop333C

配置core-site.xml

  
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop111A:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/niuma/bigdata/tmp</value>
</property>

配置hadoop-env.sh

 #The java implementation to use.
 ​
 export JAVA_HOME=${JAVA_HOME}
 export JAVA_HOME=/home/niuma/bigdata/java/jdk

配置hdfs-site.xml



<property>
 <name>dfs.replication</name>
 <value>3</value>
 </property>
 <property>
 <name>dfs.block.size</name>
 <value>134217728</value>
 </property>
 <property>
 <name>dfs.namenode.name.dir</name>
 <value>file:///home/niuma/hadoopdata/dfs/name</value>
 </property>
 <property>
 <name>dfs.datanode.data.dir</name>
 <value>file:///home/niuma/hadoopdata/dfs/data</value>
 </property>
 <property>
         <name>fs.checkpoint.dir</name>
         <value>file:///home/niuma/hadoopdata/checkpoint/dfs/cname</value>
 </property>
 <property>
         <name>fs.checkpoint.edits.dir</name>
         <value>file:///home/niuma/hadoopdata/checkpoint/dfs/cname</value>
 </property>
 <property>
    <name>dfs.http.address</name>
    <value>hadoop111A:50070</value>
 </property>
 <property>
    <name>dfs.secondary.http.address</name>
    <value>hadoop222B:50090</value>
 </property>
 <property>
 <name>dfs.webhdfs.enabled</name>
 <value>true</value>
 </property>
 <property>
 <name>dfs.permissions</name>
 <value>false</value>
 </property>

配置yarn-site.xml



<property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop111A</value>
 </property>
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <property>
 <name>yarn.resourcemanager.address</name>
 <value>hadoop111A:8032</value>
 </property>
 <property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>hadoop111A:8030</value>
 </property>
 <property>
 <name>yarn.resourcemanager.resource-tracker.address</name>
 <value>hadoop111A:8031</value>
 </property>
 <property>
 <name>yarn.resourcemanager.admin.address</name>
 <value>hadoop111A:8033</value>
 </property>
 <property>
 <name>yarn.resourcemanager.webapp.address</name>
 <value>hadoop111A:8088</value>
 </property>

配置mapred-site.xml

 1  <property>
 2  <name>mapreduce.framework.name</name>
 3  <value>yarn</value>
 4  <final>true</final>
 5  </property>
 6  <property>
 7  <name>mapreduce.jobhistory.address</name>
 8  <value>hadoop111A:10020</value>
 9  </property>
10  <property>
11  <name>mapreduce.jobhistory.webapp.address</name>
12  <value>hadoop111A:19888</value>
13  </property>

配置slaves

hadoop111A hadoop222B hadoop333C

配置完畢後關機,在虛擬機器裡面完全克隆兩臺虛擬機器,並將其IP和主機名修改好 完事後,進行免密登陸設定,執行指令建立免密登陸金鑰 ssh-keygen -t rsa 一路回車下去後,私鑰和公鑰就在 /home/niuma/.ssh 裡面建立了 進入這個資料夾便可以看到 cd /home/niuma/.ssh 將公鑰拷貝到其他主機,例如我現在將hadoop111A的公鑰拷貝到hadoop222B ssh-copy-id hadoop222B 這個時候我們就能在hadoop222B主機的 /home/niuma/.ssh 裡面看到一個名為authorized_keys的檔案 這裡面便存 放著hadoop111A主機的公鑰 按照這個方法都拷貝一遍,的是現在如果切換到root使用者去訪問別的主機還是需要密碼的,所以我們切換到 root使用者再進行一遍這樣的操作

可以試著用shh連線其他主機,如果報錯說無法識別相應主機,那就是前面對映沒設定好,如果報錯說無法建 立連線,那就修改 /etc/ssh/ssh_config 裡面的內容 StrictHostKeyChecking ask 開啟註釋修改為 StrictHostKeyChecking no 即可

現在就可以格式化hadoop了,期間沒有任何報錯那就是成功了。如果報錯說意外終止,那就是前面的配置文 件中的標籤沒有打好。在主機上格式化即可

格式化叢集 hadoop namenode -format

啟動/關閉hdfs服務 start-dfs.sh stop-dfs.sh 啟動/關閉yarn服務 start-yarn.sh stop-yarn.sh

HDFS web訪問頁面 http://hadoop111a:50070 YARN web訪問頁面 http://hadoop111a:8088