天天看點

centos7 下搭建hadoop2.9 分布式叢集

首先說明,本文記錄的是部落客搭建的3節點的完全分布式hadoop叢集的過程,環境是centos 7,1個nameNode,2個dataNode,如下:

1、首先,建立好3個Centos7的虛拟機,具體的操作可以參考網上其他教程,這個給個連結《windows環境安裝VMware,并且安裝CentOS7 虛拟機》

2、完成虛拟機的java環境的搭建,可以參考我的部落格《centos7 安裝jdk 1.8》

3、關閉或者禁用防火牆, systemctl  stop firewalld.service  關閉防火牆;systemctl disable firewalld.service  關閉防火牆

  firewall-cmd --state  檢視狀态

  

centos7 下搭建hadoop2.9 分布式叢集
4、修改hosts檔案,vim /etc/hosts ,注釋原有的内容,加入如下内容,ip位址為你自己的虛拟機的IP位址:

192.168.10.128 master.hadoop 
192.168.10.129 slave1.hadoop 
192.168.10.130 slave2.hadoop      

  more /etc/hosts檢視是否正确,需要重新開機後方能生效。重新開機指令   reboot now

  此處可以添加ssh key,建立無密碼的公鑰

a、在master機器上輸入 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 建立一個無密碼的公鑰,-t是類型的意思,dsa是生成的密鑰類型,-P是密碼,’’表示無密碼,-f後是秘鑰生成後儲存的位置
b、在master機器上輸入 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将公鑰id_dsa.pub添加進keys,這樣就可以實作無密登陸ssh
c、在master機器上輸入 ssh master 測試免密碼登陸
d、在slave1.hadoop主機上執行 mkdir ~/.ssh
e、在slave2.hadoop主機上執行 mkdir ~/.ssh
f、在master機器上輸入 scp ~/.ssh/authorized_keys [email protected]:~/.ssh/authorized_keys 将主節點的公鑰資訊導入slave1.hadoop節點,導入時要輸入一下slave1.hadoop機器的登陸密碼
g、在master機器上輸入 scp ~/.ssh/authorized_keys [email protected]:~/.ssh/authorized_keys 将主節點的公鑰資訊導入slave2.hadoop節點,導入時要輸入一下slave2.hadoop機器的登陸密碼
h、在三台機器上分别執行 chmod 600 ~/.ssh/authorized_keys 賦予密鑰檔案權限
i、在master節點上分别輸入 ssh slave1.hadoop和 ssh slave2.hadoop測試是否配置ssh成功      

5、進入home目錄,mkdir hadoop  建立一個hadoop的檔案夾。上傳下載下傳好的hadoop包到該目錄,hadoop2.9下載下傳位址;

  http://hadoop.apache.org/->左邊點Releases->點mirror site->點http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common->下載下傳hadoop-2.9.0.tar.gz;

  tar -zxvf hadoop-2.9.0.tar.gz  解壓tar包

6、配置hadoop,此節點可暫時先配置128master,然後通過scp的方式複制到兩個從節點

  a、vim /home/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml,在<configuration>節點中增加如下内容:

<property>
        <name>fs.default.name</name>
        <value>hdfs://master.hadoop:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>      

  b、vim /home/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///home/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master.hadoop:50090</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>      

  c、cp /home/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template /home/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml

    vim /home/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
          <final>true</final>
    </property>
  <property>
     <name>mapreduce.jobtracker.http.address</name>
     <value>master.hadoop:50030</value>
  </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master.hadoop:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master.hadoop:19888</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>http://master.hadoop:9001</value>
    </property>
</configuration>      

  d、vim /home/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml

<configuration>
 <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>      <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master.hadoop:8032</value>
    </property>
    <property>
       <name>yarn.resourcemanager.scheduler.address</name>
        <value>master.hadoop:8030</value>
    </property>
    <property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master.hadoop:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master.hadoop:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master.hadoop:8088</value>
    </property>
     <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>master.hadoop</value>
</property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
    </property>
</configuration>      

7、配置/home/hadoop/hadoop-2.9.0/etc/hadoop目錄下hadoop.env.sh、yarn-env.sh的JAVA_HOME

取消JAVA_HOME的注釋,設定為 export JAVA_HOME=/home/java/jdk1.8.0_11

8、配置/home/hadoop/hadoop-2.9.0/etc/hadoop目錄下的slaves,删除預設的localhost,添加2個slave節點:

slave1.hadoop
slave2.hadoop      

9、将master伺服器上配置好的Hadoop複制到各個節點對應位置上,通過scp傳送:

scp -r /home/hadoop  192.168.10.129:/home/
scp -r /home/hadoop  192.168.10.130:/home/      

10、啟動hadoop。在master節點啟動hadoop服務,各個從節點會自動啟動,進入/home/hadoop/hadoop-2.9.0/sbin/目錄,hadoop的啟動和停止都在master上進行;

  a、初始化,輸入指令:hdfs namenode -format

  b、啟動指令:start-all.sh

centos7 下搭建hadoop2.9 分布式叢集

  c、輸入jps指令檢視相關資訊,master上截圖如下:

centos7 下搭建hadoop2.9 分布式叢集

  d、slave節點上輸入jps檢視:

centos7 下搭建hadoop2.9 分布式叢集

  e、停止指令:stop-all.sh

11、通路,輸入http://192.168.10.128:50070,看到如下界面:

centos7 下搭建hadoop2.9 分布式叢集

   輸入http://192.168.10.128:8088,看到如下界面:

centos7 下搭建hadoop2.9 分布式叢集

  好了。如果以上都成功,那麼基本上完成了hadoop叢集的搭建;

centos7 下搭建hadoop2.9 分布式叢集