hadoop完全分布式模式的安裝和配置


本文是將三台電腦用路由器搭建本地局域網,系統為centos6.5,已經實驗驗證,搭建成功。

一、設置靜態IP&修改主機名&關閉防火牆(all-root)(對三台電腦都需要進行操作)

0.將三台電腦安裝centos6.5系統

1.設置靜態ip(便於機器之間的通信,防止路由器電腦重啟后,ip變化,導致不能通信)

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #描述網卡對應的設備別名,例如ifcfg-eth0的文件中它為eth0
BOOTPROTO=static #設置網卡獲得ip地址的方式,可能的選項為static,dhcp或bootp,分別對應靜態指定的 ip地址,通過dhcp協議獲得的ip地址,通過bootp協議獲得的ip地址
BROADCAST=192.168.0.255 #對應的子網廣播地址
HWADDR=00:07:E9:05:E8:B4 #對應的網卡物理地址

 

在文件最后面添加一下代碼

IPADDR=192.168.80.100

NETMASK=255.255.255.0

NETWORK=192.168.0.0
里面的IPADDR地址設置你想要的,我這里是192.168.80.100。
設置好后,需要讓IP地址生效,運行下面命令:

service network restart Shutting down interface

然后運行ifconfig就可以看到靜態ip是否生效。

2.修改主機名(每台電腦都要修改,建議使用hadoop100,hadoop101,hadoop102,對應於ip地址最后面三位數)

vi /etc/sysconfig/network 

hostname=hadoop100

重啟一下網絡service network restart

驗證reboot -h now 立刻重啟  然后hostname

3.關閉防火牆 

關閉已經啟動的防火牆: service iptables stop (只能關閉當前)

驗證:service iptables status

Firewall is not running

關閉防火牆開機自動啟動功能:

(1). 先查看 查看: chkconfig --list |grep iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

(2). 關閉 chkconfig  iptables off

驗證:chkconfig --list |grep iptables

4.建立hadoop運行帳號

最好不要使用root操作hadoop,root是超級管理員權限,不推薦各個機器之間使用root訪問,

useradd hadoop 增加用戶
passwd hadoop 設置密碼

二、配置hosts文件(只需要對主機192.168.80.100(hadoop100)進行操作,然后通過scp命令將這些配置分發給其他電腦即可)

操作192.168.80.100機器

vi /etc/hosts 添加下面內容

192.168.80.100 hadoop100
192.168.80.101 hadoop101
192.168.80.102 hadoop102

驗證:ping  hadoop100
ping  hadoop101
ping  hadoop102

 三、為hadoop賬戶配置ssh免密碼連入

 操作hadoop100,hadoop101,hadoop102機器

① ssh-keygen -t rsa會在~/.ssh/文件夾下生成id_rsa  id_rsa.pub兩個文件

② 根據ip分別執行(對hadoop100,101,102三台機器分別生成公鑰)
cp ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.100
cp ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.101
cp ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.102
將hadoop101,hadoop102的公鑰傳輸到hadoop100的機器上
scp -r ~/.ssh/id_rsa.pub.101   hadoop@hadoop100:/home/hadoop/.ssh
scp -r ~/.ssh/id_rsa.pub.102   hadoop@hadoop100:/home/hadoop/.ssh
 
④ 把所有機器的公鑰,放在hadoop100的一個文件中(在hadoop100的hadoop用戶下操作)
 cat ~/.ssh/id_rsa.pub.100 >> ~/.ssh/authorized_keys
 cat ~/.ssh/id_rsa.pub.101 >> ~/.ssh/authorized_keys
 cat ~/.ssh/id_rsa.pub.102 >> ~/.ssh/authorized_keys
 
驗證 ssh hadoop101  發現無效,提示還是需要密碼。
 
⑤ 修改authorized_keys的權限, 組用戶不能有 寫(W)權限, 不然ssh 由於安全問題不生效
authorized_keys 權限改為 644 就OK 
 
命令  chmod g-w authorized_keys
 
然后分發給 101和102
scp -r ~/.ssh/authorized_keys   hadoop@hadoop101:/home/hadoop/.ssh
scp -r ~/.ssh/authorized_keys   hadoop@hadoop102:/home/hadoop/.ssh
驗證: ssh hadoop101 ...
然后神奇的事情發生了。 3台機器彼此之間可以互聯。
 
四、下載並解壓jdk(只需對hadoop100操作)
使用root用戶進行操作,把jdk解壓到/usr/local/ 文件夾中。

[root@hadoop100 local]#  cd /usr/local

[root@hadoop100 local]#  ./jdk-6u30-linux-x64.bin解壓jdk后,生成jdk1.6.0_30文件夾

配置環境變量
[root@hadoop100 local]# vi /etc/profile在最后面加上下面兩行
export JAVA_HOME=/usr/local/jdk1.6.0_30
export PATH=.:$JAVA_HOME/bin:$PATH
保存退出
[root@hadoop100 local]# source /etc/profile使新修改的環境變量生效。
 
驗證: java -version
五、下載並解壓hadoop安裝包(僅對hadoop100操作)
 
5.1解壓hadoop並重命名
 
使用root用戶進行以下操作
tar -zxvf /usr/local/hadoop-1.1.2.tar.gz 
解壓后生成文件夾hadoop-1.1.2。
重命名 mv hadoop-1.1.2 hadoop
 
5.2修改權限,使得hadoop用戶可以操作hadoop文件夾
 
chown -R hadoop /usr/local/hadoop/
chgrp -R hadoop /usr/local/hadoop/
 
5.3設置hadoop環境變量
 
vi /etc/profile

修改為
export JAVA_HOME=/usr/local/jdk1.6.0_30
export HADOOP_HOME=/usr/local/hadoop

export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出
source /etc/profile
 
驗證: hadoop
 
六、設置hadoop參數
進入 usr/local/hadoop/conf 文件夾,即可看到以下文件
6.1配置hadoop-env.sh
 
找到export JAVA_HOME這一行,去除前面的#號注釋符。
修改 export JAVA_HOME=/usr/local/jdk1.6.0_30
 
6.2配置core-site.xml
 
<configuration>
    <property>
<name>fs.default.name</name>
<value>hdfs://hadoop100:9000</value>
<description>change your own hostname</description>
    </property>
    <property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
    </property> 
</configuration>
 
6.3配置hdfs-site.xml
 
<configuration>
   <property>
<name>dfs.replication</name>
<value>2</value>
   </property>
</configuration>
 
6.4配置mapred-site.xml
 
<configuration>
    <property>
<name>mapred.job.tracker</name>
<value>hadoop100:9001</value>
<description>change your own hostname</description>
    </property>
</configuration>
 
6.5配置masters文件
 
將masters里的localhost改成hadoop100
 
6.6配置slaves文件
 
將slaves里的localhost改成
hadoop101
hadoop102
 
七、向其他機器復制jdk以及hadoop和一些配置
 
7.1分發hosts到其他機器(root用戶)
 
scp -r /etc/hosts root@hadoop101:/etc/
scp -r /etc/hosts root@hadoop102:/etc/
 
7.2 分發java(root用戶)
 
scp -r /usr/local/jdk1.6.0_30 root@hadoop101:/usr/local/
scp -r /usr/local/jdk1.6.0_30 root@hadoop102:/usr/local/
 
7.3分發環境變量/etc/profile(root用戶)
 
scp -r /etc/profile root@hadoop101:/etc/
scp -r /etc/profile root@hadoop102:/etc/
 
分別通過ssh遠程登錄其他電腦
執行source /etc/profile 
分別驗證: java -version
ping hadoop101
ping hadoop100
 
7.4分發hadoop(root用戶)
 
scp -r /usr/local/hadoop/ root@hadoop101:/usr/local/hadoop/
scp -r /usr/local/hadoop/ root@hadoop102:/usr/local/hadoop/
再通過ssh遠程登錄其他電腦修改hadoop權限,如5.2所示。
再分別驗證:hadoop
 
八、格式化hdfs
在hadoop100,hadoop101, hadoop102的hadoop用戶下
執行命令 hadoop namenode -format 
 
九、啟動hadoop
在hadoop100 上執行 start-all.sh
用jps檢驗
hadoop100上有

32387 Jps
32283 JobTracker
32198 SecondaryNameNode
32021 NameNode

hadoop101和hadoop102上有

30770 TaskTracker
30866 Jps
30666 DataNode

說明運行成功,。,這時你可以運行個wordcount這個小例子體驗一下、。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM