- Hadoop分佈式集羣環境
hadoop000:192.168.111.185
hadoop001:192.168.111.186
hadoop002:192.168.111.187
1、機器準備
1)安裝虛擬機: 使用的是CentOS7,用戶名爲hadoop
2)設置靜態IP:參考centos7設置靜態IP地址
- 以上只需要安裝一個虛擬機,然後克隆出兩個即可
3)Linux hostname設置:sudo vi /etc/sysconfig/network
#三臺機器的HOSTNAME分別爲hadoop000、hadoop001和hadoop002
NETWORKING=yes
HOSTNAME=hadoop001
4)hostname和ip地址的映射設置:sudo vi /etc/hosts
192.168.111.185 hadoop000
192.168.111.186 hadoop001
192.168.111.187 hadoop002
5)各節點角色分配
- hadoop000:主節點,NameNode、 ResourceManager、DataNode、NodeManager
- hadoop001:從節點,DataNode、NodeManager
- hadoop002:從節點,DataNode、NodeManager
2、前置配置
1)ssh免密碼登錄
在每臺機器的終端上都單獨運行下面的命令
ssh-keygen -t rsa #一直回車即可
以hadoop000機器爲主,在hadoop000機器終端上運行下面的代碼
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop000 #輸入yes和用戶密碼
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002
驗證:
在hadoop000機器終端上運行下面命令
ssh hadoop000 #能夠登錄成功之後,執行exit退出,在執行下一條命令
ssh hadoop0001 #執行exit退出
ssh hadoop0002
2)JDK安裝
(下面所有的都是在hadoop000上進行,之後再複製到hadoop001和hadoop002即可)
在hadoop000上解壓jdk安裝包並設置JAVA_HOME到系統變量即可
3、集羣安裝
1)Hadoop安裝(在hadoop000機器上)
解壓hadoop安裝包,並設置HADOOP_HOME系統環境變量
配置文件
- hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
- core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs:///hadoop000:8020</value>
</property>
- hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/app/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/app/tmp/dfs/data</value>
</property>
- yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop000</value>
</property>
- mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- slaves
hadoop000
hadoop001
hadoop002
2)分發安裝包到hadoop001和hadoop002節點上
(注意:三臺機器的用戶名都是一樣的,只是機器名不一樣哦)
#分發hadoop和jdk,因文件比較大、分發過程可能有點慢
scp -r ~/app hadoop@hadoop001:~/
scp -r ~/app hadoop@hadoop002:~/
#分發配置文件
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/
在學習過程中強烈推薦使用僞分佈式
在hadoop001和hadoop002機器上讓.bash_profile生效
#分別在hadoop001和hadoop002中執行
source ~/.bash_profile
3)對NameNode做格式化:只要在hadoop000機器上執行即可
hdfs namenode -format
4)啓動集羣:只要在hadoop000上執行即可
sbin/start-all.sh
5)驗證:jps
-
webui:hadoop000:50070
6)停止機器:在hadoop000上執行即可
sbin/stop-all.sh
至此,hadoop集羣搭建完畢!
4、集羣使用
集羣使用與分佈式集羣的使用方式一模一樣。