CentOs-6.8 Hadoop完全分布式搭建_hadoop

來源:互聯網
上載者:User

1.下載:https://dist.apache.org/repos/dist/release/hadoop/commo

2.詳解:http://blog.csdn.net/aircraftxjd/article/details/44624219 一,安裝環境

1.虛擬機器:VMware-12.5.2

2.作業系統:linux CentOs-6.8 64位

3.Jdk:jdk-7u79 64位

4.hadoop版本:hadoop-2.7.1

5.安裝三個CentOs-6.8,其中:一個伺服器兩個客戶機

Master:192.168.1.149

node2 :192.168.1.150

node3 :192.168.1.151 二,修改主機名稱(非必要)

1.修改主機名稱hostname

a) vi /etc/sysconfig/network

 

b) 儲存退出:Esc:wq

c) 重啟生效:reboot

d) 重啟之後可以看到主機名稱已經改變了


2.三個節點上都配置hosts檔案

a) 編輯:vi /etc/hosts


b) 儲存退出:Esc:wq 三,配置SSH免密碼登入

因為Hadoop需要通過SSH登入到各個節點進行操作,我用的是root使用者,每台伺服器都產生公開金鑰,再合并到authorized_keys

1.CentOS預設沒有啟動ssh無密登入,去掉/etc/ssh/sshd_config其中2行的注釋,每台伺服器都要設定

a) 編輯:vim /etc/ssh/sshd_config

#RSAAuthentication yes

#PubkeyAuthentication yes

b) 儲存退出


2.輸入命令:ssh-keygen -t rsa產生key,都不輸入密碼,一直斷行符號,/root就會產生.ssh檔案夾,每台伺服器都要設定

 

3.合并公開金鑰到authorized_keys檔案,在Master伺服器,進入/root/.ssh目錄,通過SSH命令合并

a) cd /root/.ssh/

b) cat id_rsa.pub>> authorized_keys

c) ssh root@192.168.1.150 cat ~/.ssh/id_rsa.pub>> authorized_keys

d) ssh root@192.168.1.151 cat ~/.ssh/id_rsa.pub>> authorized_keys

 

4.把Master伺服器的authorized_keys,known_hosts複製到Slave伺服器的/root/.ssh目錄

a) scp -r authorized_keys known_hosts root@192.168.1.150:/root/.ssh/ 

b) scp -r authorized_keys known_hosts root@192.168.1.151:/root/.ssh/


5.完成,ssh root@192.168.1.150,ssh root@192.168.1.151就不需要輸入密碼了

  

四,安裝jdk

每台伺服器都要安裝

1.在/home目錄下建立兩個檔案夾java hadoop

 

2.將jdk放在java檔案夾中並解壓配置環境變數

a) 首先卸載內建的jdk

(1)查看jkd:rpm -qa | grep jdk

 

(2)卸載:rpm -e 複製查出來的第一行 例:rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64

b) 解壓:tar -zxvf jdk-7u79-linux-x64.tar.gz

 

c) 進入解壓檔案夾並pwd 複製路徑

 

d) 編輯配置環境變數:vim /etc/profile 並添加如下圖所示

export JAVA_HOME=/home/java/jdk1.7.0_79

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

 

e) 儲存退出:按Esc:wq

f) 使環境變數生效:source /etc/profile

g) 查看jdk:java -version

五,下載安裝Hadoop

將下載的hadoop檔案放在/home/hadoop使用者的根目錄下,接著開始解壓

1.解壓:tar -zxvf hadoop-2.7.1.tar.gz

 

2.在/home/hadoop目錄下建立資料存放的檔案夾tmp,hdfs,hdfs/data,hdfs/name

  a) mkdir tmp hdfs hdfs/data hdfs/name


3.修改設定檔(在master主節點中配置)

請注意:主節點(master)上面的檔案如果修改一定要覆蓋另外兩個節點(node2,node3)

scp -r /home/hadoop/hadoop-2.7.1/etc/hadoop/* root@192.168.1.150:/home/hadoop/hadoop-2.7.1/etc/hadoop/

scp -r /home/hadoop/hadoop-2.7.1/etc/hadoop/* root@192.168.1.151:/home/hadoop/hadoop-2.7.1/etc/hadoop/

a) 分別是core.site.xml,hdfs-site.xml,mapred-site.xml,hadoop-env.sh,yarn-env.sh,slaves檔案

b) 進入此檔案夾下:cd /home/hadoop/hadoop-2.7.1/etc/hadoop/

c) 編輯:vim core-site.xml添加:

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


d) 編輯:vim hdfs-site.xml添加:

   <property>    

        <name>dfs.replication</name>    

        <value>3</value>    

   </property>     

   <property>  

        <name>dfs.support.append</name>  

        <value>true</value>  

   </property>    

   <property>    

        <name>dfs.namenode.name.dir</name>    

        <value>file:/home/hadoop/hdfs/name</value>    

   </property>      

   <property>  

       <name>dfs.blocksize</name>    

       <value>1048576</value>    

   </property>    

   <property>    

       <name>file:dfs.datanode.data.dir</name>    

       <value>file:/home/hadoop/hdfs/data</value>    

   </property>    

   <property>    

       <name>dfs.webhdfs.enabled</name>    

       <value>true</value>    

   </property> 

<!--以下是配置SecondaryNameNode,如果不配置預設在主節點上面,而namenode和SecondaryNameNode要分開配置,這裡我配置到了150上面 -->

   <property>

       <name>dfs.http.address</name>

       <value>192.168.1.149:50070</value>

       <description>

             The address and the base port where the dfs namenode web ui will listen on.

             If the port is 0 then the server will start on a free port.

       </description>

   </property>

   <property>

       <name>dfs.namenode.secondary.http-address</name>

       <value>192.168.1.150:50090</value>

  </property>



e) 編輯:vim mapred-site.xml 添加

注意:這裡可能沒有mapred-site.xml這個檔案只有mapred-site.xml.template 這時我們需要複製一份並改成   mapred-site.xml

執行命令:cp mapred-site.xml.template mapred-site.xml 

然後再添加

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

    <property>

        <name>mapreduce.jobhistory.address</name>

        <value>192.168.1.149:10020</value>

    </property>

    <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>192.168.1.149:19888</value>

    </property>

    <property>

        <name>mapreduce.tasktracker.map.tasks.maximum</name>

        <value>10</value>

    </property>

    <property>

        <name>mapreduce.tasktracker.reduce.tasks.maximum</name>

        <value>4</value>

    </property>

</configuration>

 

f) 配置hadoop-env.sh,yarn-env.sh兩個檔案下的JAVA_HOME

export JAVA_HOME=/home/java/jdk1.7.0_79

 

 

g) 最後配置slaves檔案,刪除預設的localhost,增加2個從節點

192.168.1.150

192.168.1.151

 

4.將配置好的Hadoop複製到各個節點對應位置上,通過scp傳送

scp -r /home/hadoop/ 192.168.1.150:/home/

scp -r /home/hadoop/ 192.168.1.151:/home/

5.在Master伺服器啟動hadoop,從節點會自動啟動,進入/home/hadoop/hadoop-2.7.0目錄

a) 初始化:bin/hdfs namenode -format

 

b) 全部啟動sbin/start-all.sh,也可以分開sbin/start-dfs.sh,sbin/start-yarn.sh

c) 停止:sbin/stop-all.sh

d) 輸入命令jps可以看到相關資訊

(1)以下節點全部啟動才是正確的:

注意:namenode和SecondaryNameNode不能再同一個伺服器上,上面我已經做了配置,效果如下:


6.測試:

a) 瀏覽器輸入:192.168.1.149:8088

 

b) 輸入:192.168.1.149:50070 可以看到以下datanodes是兩個,如果是0那就是沒配好

 



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.