閱讀429 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Hadoop全分布式環境搭建

視頻演示:https://v.youku.com/v_show/id_XNTY4NDM3NDQ4.html

Hadoop的單擊版和偽分布式版環境都好搭建(具體方法參見:hadoop單擊版與偽分布式安裝方法),這個全分布式還真是費了我不少時間。下麵說說我的步驟:

(一)準備工作

1.準備3台裝有linux的機器,具有相同的用戶名(這個是必須的,我這裏都是liujiacai)

三台機器的ip與主機名

192.168.6.38 master
192.168.6.21 node1
192.168.6.24 node2

2.確保所有機器在一個局域網內,並且能夠相互ping同(如果不通把防火牆關閉試試)

3.配置ssh免密碼登錄

在master主機上輸入

ssh-keygen -t rsa

之後一直按回車鍵即可。

然後,在集群內分配密鑰

ssh-copy-id -i ~/.ssh/id_rsa.pub liujiacai@192.168.6.21
ssh-copy-id -i ~/.ssh/id_rsa.pub liujiacai@192.168.6.24

使用ssh-copy-id不僅可以將公鑰添加到authorized_keys中去,而且也設置了正確的權限(文件夾.ssh為700,authorized_keys為600)

參考文章:https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

ssh免密碼登錄原理可參考:https://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

這樣在master主機上ssh 192.168.6.21與ssh 192.168.6.24主機時應該就不用輸入密碼了

如果出現Agent admitted failure to sign using the key這個問題

解決方式 使用 ssh-add 指令將私鑰 加進來 

ssh-add   ~/.ssh/id_rsa 

4.配置hosts文件

在master上配置好通過scp命令分發即可。

hosts文件配置內容如下:

127.0.0.1    localhost
192.168.6.38 master
192.168.6.21 node1
192.168.6.24 node2

(二)修改hadoop的配置文件

1.這裏我們需要修改5個文件:

conf/core-site.xml

<configuration>
 <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
 </property>
<property> 
    <name>fs.trash.interval</name> 
    <value>1440</value> 
    <description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled. </description> 
</property>
 <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/liujiacai/hadoop/logs</value>
 </property>
</configuration>

conf/hdfs-site.xml(與偽分布式相同即可)

<configuration>
  <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>

conf/mapred-site.xml


<configuration>
 <property>
         <name>mapred.job.tracker</name>
         <value>master:9001</value>
     </property>
</configuration>

masters

master

salves(如果有多台電腦ip地址累加即可)

node1
node2

這樣,hadoop到全分布式就配置完成了,下麵運行wordcount程序,運行方法與偽分布式相同,這裏不再贅述。

為了解hadoop係統的運行狀態,hadoop為我們提供了基於網頁的查看方式,非常方便。

1.查看Map/Reduce的運行狀態:https://localhost:50030

2.查看HDFS的運行狀態:https://localhost:50070


PS:

在全分布式中,各個機器的hadoop配置必須一致,我們可以在master機器上填寫好相關信息,然後通過ssh相關命令把hadoop文件夾分配到各個子結點上即可。

ssh傳送文件到相關命令:

1、從服務器上下載文件
scp username@serverip:/path/filename
例如scp root@192.168.0.101:/var/www/test.txt  把192.168.0.101上的/var/www/test.txt 的文件下載到當前目錄
2、上傳本地文件到服務器
scp /path/filename username@serverip:/path   
例如scp /var/www/test.php  root@192.168.0.101:/var/www/  把本機/var/www/目錄下的test.php文件上傳到192.168.0.101這台服務器上的/var/www/目錄中
3、從服務器下載整個目錄
scp -r username@serverip:/var/www/local_dir/
例如:scp -r root@192.168.0.101:/var/www/test  /var/www/  
4、上傳目錄到服務器
scp  -r local_dir username@serverip:remote_dir
例如:scp -r test  root@192.168.0.101:/var/www/   把當前目錄下的test目錄上傳到服務器的/var/www/ 目錄con


最後更新:2017-04-03 22:31:03

  上一篇:go Tomcat啟動web項目報Bad version number in .class file (unable to load class ...)錯
  下一篇:go 分享30個開發人員有用的CSS代碼片段