Hadoop0.20.2集群配置入門指導手冊
這里和大家一起學習一下Hadoop0.20.2集群配置,本節主要包括準備工作和Hadoop配置兩部分內容,希望通過本節介紹對Hadoop0.20.2集群配置有一定的認識。
Hadoop0.20.2集群配置入門
一、準備工作
在動手準備實踐hadoop之前,最好把GoogleFileSystem和Map/Reduce的原理搞清楚,否則可能要走很多彎路。
準備機器:一臺master,若干臺slave,配置每臺機器的/etc/hosts保證各臺機器之間通過機器名可以互訪,例如:
10.0.0.10master
10.0.0.11slave1
10.0.0.12slave2
保存后,重啟網絡服務,命令:servicenetworkrestart
Linux所需軟件包括:
JavaTM1.5.x以上,必須安裝,建議選擇Sun公司發行的Java版本。
ssh必須安裝并且保證sshd一直運行,以便用Hadoop腳本管理遠端Hadoop守護進程。
ssh的安裝以UbuntuLinux為例:
$sudoapt-getinstallssh
$sudoapt-getinstallrsync
免密碼ssh設置,保證至少從master可以不用口令登陸所有的slaves:
登陸master,執行命令
$ssh-keygen-tdsa-P''-f~/.ssh/id_dsa
將生成的id_dsa.pub拷貝到所有slaves機器上相同路徑下,例如:$scp~/.ssh/id_dsa.pubroot@slave1:/root/.ssh/master_dsa.pub
注意,此處重命名了一下。
登陸到slaves的機器上執行命令:
$cat/root/.ssh/master_rsa.pub>>/root/.ssh/authorized_keys
現在再嘗試通過ssh從master登錄到slaves,應該不需要密碼了
$sshslave1
如果還有問題,可以參考“理解RSA/DSA認證”:http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html。下面看一下Hadoop0.20.2集群配置入門中Hadoop的詳細配置介紹。
二、hadoop配置
1.安裝
下載hadoop發行版,地址:http://apache.freelamp.com/hadoop/core/stable/
安裝Hadoop集群通常要將安裝軟件解壓到集群內的所有機器上。并且安裝路徑要一致,如果我們用HADOOP_HOME指代安裝的根路徑,通常,集群里的所有機器的HADOOP_HOME路徑相同。
通常,集群里的一臺機器被指定為NameNode,另一臺不同的機器被指定為JobTracker。這些機器是masters。余下的機器即作為DataNode也作為TaskTracker。這些機器是slaves。
下載安裝包后,直接解壓安裝即可:
$tar-zxvfhadoop-0.20.2.tar.gz
$cdhadoop-0.20.2
注:如果集群內機器的環境完全一樣,可以在一臺機器上把Hadoop0.20.2集群配置好,然后把配置好的軟件即hadoop-0.20.2整個文件夾拷貝到其他機器的相同位置即可。
2.配置
編輯conf/hadoop-env.sh文件,至少需要將JAVA_HOME設置為Java安裝根路徑。
配置conf/core-site.xml:
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://master:9100</value>
- </property>
- </configuration>
- fs.default.name是NameNode的URI。hdfs://主機名:端口/
dfs.name.dir是NameNode持久存儲名字空間及事務日志的本地文件系統路徑。當這個值是一個逗號分割的目錄列表時,nametable數據將會被復制到所有目錄中做冗余備份。
dfs.data.dir是DataNode存放塊數據的本地文件系統路徑,逗號分割的列表。當這個值是逗號分割的目錄列表時,數據將被存儲在所有目錄下,通常分布在不同設備上。
dfs.replication是數據需要備份的數量,默認是3,如果此數大于集群的機器數會出錯。
注意:此處的name1、name2、data1、data2目錄不能預先創建,hadoop格式化時會自動創建,如果預先創建反而會有問題。
配置conf/mapred-site.xml
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>master:9200</value>
- </property>
- </configuration>
mapred.job.tracker是JobTracker的主機(或者IP)和端口。主機:端口。
配置conf/masters和conf/slaves來設置主從結點,注意最好使用主機名,并且保證機器之間通過主機名可以互相訪問,每個主機名一行。
masters:master
slaves:slave1,slave2
配置結束,把配置好的hadoop-0.20.2文件夾拷貝到其他集群的機器中,并且保證上面的配置對于其他機器而言正確,例如:如果其他機器的Java安裝路徑不一樣,要修改conf/hadoop-env.sh
$scp-r/opt/hadoop/hadoop-0.20.2root@slave1:/opt/hadoop。請繼續關注下節關于Hadoop0.20.2集群配置詳細介紹。
【編輯推薦】
- Hadoop集群配置全程跟蹤報道
- Hadoop安裝與使用如何進行?
- 專家講解 Hadoop:HBASE松散數據存儲設計
- 兩種模式運行Hadoop分布式并行程序
- Windows下輕松實現Hadoop開發環境安全配置