Hadoop 2.X 完全分佈式部署安裝

http://jingyan.baidu.com/article/27fa73269c02fe46f9271f45.html


Hadoop的大名想必已被IT界人士衆所周知了,而它的官方文檔對它它的安裝部署卻介紹得很簡略。爲了讓更多對此有興趣的人更快入門,特發此經驗。

工具/原料

  • linux系統(本篇使用的是CentOS v6.5)
  • Hadoop安裝包(本篇使用的是hadoop v2.6.0)

環境要求

  1. 1

    需要安裝JDK6.0以上版本(可自行解壓安裝或使用自帶的軟件安裝包,如yum)

    Hadoop 2.X 完全分佈式部署安裝
  2. 2

    需要無密碼登錄的SSH環境(安裝ssh及sshd,具體配置步驟在後面介紹)

    Hadoop 2.X 完全分佈式部署安裝
    END

安裝/配置 步驟

  1. 1

    配置hosts文件,將主機名和對應IP地址映射。如圖中Master、Slave1和Slave2是我們要搭建分佈式環境的機器。Master爲主機,Slavex爲從機。

    Hadoop 2.X 完全分佈式部署安裝
  2. 2

    配置SSH的無密碼登錄:可新建專用用戶hadoop進行操作,cd命令進入所屬目錄下,輸入以下指令(已安裝ssh)

    ssh-keygen -t rsa -P ""

    cat .ssh/id_rsa.pub >>.ssh/authorized_keys

    解釋一下,第一條生成ssh密碼的命令,-t 參數表示生成算法,有rsa和dsa兩種;-P表示使用的密碼,這裏使用“”空字符串表示無密碼。

    第二條命令將生成的密鑰寫入authorized_keys文件。

    這時輸入 ssh localhost,彈出寫入提示後回車,便可無密碼登錄本機。同理,將authorized_keys文件 通過 scp命令拷貝到其它主機相同目錄下,則可無密碼登錄其它機器。

    Hadoop 2.X 完全分佈式部署安裝
  3. 3

    安裝hadoop:安裝方式很簡單,下載安裝包到所屬目錄下,使用

    tar -zxvf 安裝包名

    進行解壓,解壓完畢可通過mv 命令重命名文件夾,安裝至此完成。解壓後的目錄內容如圖所示。

    Hadoop 2.X 完全分佈式部署安裝
  4. 4

    hadoop配置過程:要實現分佈式環境,配置過程是最爲重要的,

    這裏要涉及到的配置文件有7個:

    ~/hadoop/etc/hadoop/hadoop-env.sh

    ~/hadoop/etc/hadoop/yarn-env.sh

    ~/hadoop/etc/hadoop/slaves

    ~/hadoop/etc/hadoop/core-site.xml

    ~/hadoop/etc/hadoop/hdfs-site.xml

    ~/hadoop/etc/hadoop/mapred-site.xml

    ~/hadoop/etc/hadoop/yarn-site.xml

    之後會分別介紹各個配置的的作用和配置關鍵

    Hadoop 2.X 完全分佈式部署安裝
  5. 5

    配置文件1:hadoop-env.sh

    該文件是hadoop運行基本環境的配置,需要修改的爲java虛擬機的位置。

    故在該文件中修改JAVA_HOME值爲本機安裝位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)

    Hadoop 2.X 完全分佈式部署安裝
  6. 6

    配置文件2:yarn-env.sh

    該文件是yarn框架運行環境的配置,同樣需要修改java虛擬機的位置。

    在該文件中修改JAVA_HOME值爲本機安裝位置(如,export JAVA_HOME=/usr/lib/jvm/java-1.7.0)

    Hadoop 2.X 完全分佈式部署安裝
  7. 7

    配置文件3:slaves

    該文件裏面保存所有slave節點的信息,以本篇爲例

    寫入以下內容(hosts裏從機的主機名):

    Slave1

    Slave2

    Hadoop 2.X 完全分佈式部署安裝
  8. 8

    配置文件4:core-site.xml

    <configuration>

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/data/hadoop-${user.name}</value>

    </property>

    <property>

    <name>fs.default.name</name>

    <value>hdfs://Master:9000</value>

    </property>

    </configuration>

    這個是hadoop的核心配置文件,這裏需要配置的就這兩個屬性,fs.default.name配置了hadoop的HDFS系統的命名,位置爲主機的9000端口;hadoop.tmp.dir配置了hadoop的tmp目錄的根位置。這裏使用了一個文件系統中沒有的位置,所以要先用mkdir命令新建一下。

    Hadoop 2.X 完全分佈式部署安裝
  9. 9

    配置文件5:hdfs-site.xml

    <configuration>

    <property>

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

    <value>Master:50070</value>

    </property>

    <property>

    <name>dfs.namenode.secondary.http-address</name><value>Master:50090</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>1</value>

    </property>

    </configuration>

    這個是hdfs的配置文件,dfs.http.address配置了hdfs的http的訪問位置;dfs.replication配置了文件塊的副本數,一般不大於從機的個數。

    Hadoop 2.X 完全分佈式部署安裝
  10. 10

    配置文件6:mapred-site.xml

    <configuration>

    <property>

    <name>mapred.job.tracker</name>

    <value>Master:9001</value>

     </property>

    <property>

    <name>mapred.map.tasks</name>

    <value>20</value>

    </property>

    <property>

    <name>mapred.reduce.tasks</name>

    <value>4</value>

    </property>

    <property>

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

    <value>yarn</value>

    </property>

    <property>

    <name>mapreduce.jobhistory.address</name><value>Master:10020</value>

    </property>

    <property><name>mapreduce.jobhistory.webapp.address</name><value>Master:19888</value>

    </property>

    </configuration>

    這個是mapreduce任務的配置,由於hadoop2.x使用了yarn框架,所以要實現分佈式部署,必須在mapreduce.framework.name屬性下配置爲yarn。mapred.map.tasks和mapred.reduce.tasks分別爲map和reduce的任務數,至於什麼是map和reduce,可參考其它資料進行了解。

    其它屬性爲一些進程的端口配置,均配在主機下。

    Hadoop 2.X 完全分佈式部署安裝
  11. 11

    配置文件7:yarn-site.xml

    <configuration>

    <property>

     <name>yarn.resourcemanager.address</name>

    <value>Master:8032</value>

    </property>

    <property>

    <name>yarn.resourcemanager.scheduler.address</name>

     <value>Master:8030</value>

    </property>

    <property>

     <name>yarn.resourcemanager.webapp.address</name>

     <value>Master:8088</value>

    </property>

    <property>

    <name>yarn.resourcemanager.resource-tracker.address</name><value>Master:8031</value>

    </property>

    <property>

    <name>yarn.resourcemanager.admin.address</name><value>Master:8033</value>

    </property>

    <property>

    <name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>

    </property>

    <property>

    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>

    </configuration>

    該文件爲yarn框架的配置,主要是一些任務的啓動位置

    Hadoop 2.X 完全分佈式部署安裝
  12. 12

    將配置好的hadoop複製到其他節點

    scp –r ~/hadoop hadoop@Slave1:~/

    scp –r ~/hadoop hadoop@Slave2:~/

    END

啓動驗證

  1. 1

    格式化namenode:

    ./bin/hdfs namenode –format

    若出現如圖所示提示,則格式化成功

    Hadoop 2.X 完全分佈式部署安裝
  2. 2

    啓動hdfs: ./sbin/start-dfs.sh

    此時在Master上面運行的進程有:namenode secondarynamenode

    Slave1和Slave2上面運行的進程有:datanode

    啓動yarn: ./sbin/start-yarn.sh

    此時在Master上面運行的進程有:namenode secondarynamenode resourcemanager

    Slave1和Slave2上面運行的進程有:datanode nodemanaget

    Hadoop 2.X 完全分佈式部署安裝
    Hadoop 2.X 完全分佈式部署安裝
  3. 3

    檢查啓動結果

    查看集羣狀態:./bin/hdfs dfsadmin –report

    查看文件塊組成: ./bin/hdfsfsck / -files -blocks

    查看HDFS: http://192.168.101.248:50070(主機IP)

    查看RM: http:// 192.168.101.248:8088(主機IP)

    正確情況如圖顯示

    Hadoop 2.X 完全分佈式部署安裝
    Hadoop 2.X 完全分佈式部署安裝
    END

注意事項

  • 根目錄爲不存在的文件夾時,需自行創建。
  • 啓動過程使用端口較多,若無其它原因,需關閉防火牆以正常啓動。
  • 重新格式化namenode時,需先刪除各節點的data文件
發佈了190 篇原創文章 · 獲贊 7 · 訪問量 62萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章