fedora 15 部署hadoop 0.21 全分佈式模式 1namenode 2datanode

本文主要參考有 

  1. http://wenku.baidu.com/view/92cbe435eefdc8d376ee32eb.html
  2. http://bbs.chinacloud.cn/showtopic-3564.aspx
  3. http://www.hadoopor.com/archiver/tid-405.html
在此表示感謝!
準備工作
文中出現名詞介紹
  • alex,用戶名,3臺機器用戶名一致
  • master,namenode主機名
  • slave[1-N],datanode主機名
1 安裝系統,參考 http://blog.csdn.net/sunshine_okey/article/details/7010574
2 設置ip地址,3臺機器最好是局域網裏,在同一網段,
3 修改主機名,添加三臺機器的ip及主機名

#vi /etc/sysconfig/network  //修改HOSTNAME=XX
#vi/etc/hosts              //把默認的機器名localhost localhost.localhostlocalhst改爲XX	
                           //並按照"ip 主機名 域名"格式添加ip地址和主機名的映射表,3臺機器都要添加
                           //本人的配置爲 xx.xx.xx.xx alex alex
#reboot                     //修改後重啓機器

本人主機名分別爲,master作爲namenode,slave1,slave2作爲datanode
4 關閉防火牆
1) 重啓後生效 
開啓: chkconfig iptables on 
關閉: chkconfig iptables off 


2) 即時生效,重啓後失效 
開啓: service iptables start 
關閉: service iptables stop 


需要說明的是對於Linux下的其它服務都可以用以上命令執行開啓和關閉操作。 


在開啓了防火牆時,做如下設置,開啓相關端口, 
修改/etc/sysconfig/iptables 文件,添加以下內容: 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp-p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp-p tcp --dport 22 -j ACCEPT
先用1),再用2)
5 開啓ssh,實現master到slave1,slave2的無密碼登錄
6 安裝jdk1.6以上,並指定JAVA_HOME

上面是前期準備工作,以下正是開始部署hadoop,所有節點配置方式相同,所以這裏我們只是配置master一臺,然後再把配置後的文件直接複製到其他節點上
7 解壓hadoop程序到當前用戶目錄,並建立連接,同時在/etc/profile環境變量中添加HADOOP_HOME=hadoop目錄
tar  -zxvf  hadoop-0.21.0.tar.gz
ln  -s  hadoop-0.21.0  hadoop

8 進入hadoop/conf中,修改slaves
去掉localhost,添加如下

slave1
slave2


修改master
去掉localhost,添加如下
master

9 配置hadoop
 修改core-site.xml
core-site.xml中在<configuration></configuration>修中添加項如下:
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/alex/hadoop/tmp</value>
</property>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>

修改hdfs-site.xml


這裏修改的是文件存儲時備份的數量,按照自己的要求來,默認爲3個副本

修改mapred-site.xml
<property>
  <name>mapreduce.jobtracker.address</name>
  <value>master:9001</value>
  <description>NameNode</description>
</property>

10 複製已經配置後的文件到其他節點上
[hadoop@master:~]$scp -r /home/alex/hadoop  slave1:/home/alex/
[hadoop@master:~]$scp -r /home/alex/hadoop  slave2:/home/alex/

至此,部署完成
11 啓動hadoop
 進入hadoop/bin目錄,然後
$./hadoop namenode -format //格式化文件系統
$./start-all.sh //啓動系統
$./jps //查看啓動情況
$./stop-all.sh //關閉
具體操作可以參考文檔
常見問題
1  /home/alex/hadoop/bin/../bin/hadoop-daemon.sh:line 127: /tmp/hadoop-hadoop-namenode.pid: 權限不夠
解決方案: 
在hadoop-config中修改hadoop-env.sh,添加:exportHADOOP_PID_DIR=$HADOOP_HOME/run/tmp。改變pid的路徑。3臺機子一塊改。
在/etc中修改profile,添加:export HADOOP_PID_DIR=$HADOOP_HOME/run/tmp,同樣,改3臺機子。
重啓
2  “No route to host”
主要兩個:
1、防火牆擋住了,可以關閉iptable
2、網段不同,沒有路由信息,可檢查IP和掩碼確認一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章