環(huán)境介紹
hadoop001:192.168.199.102
hadoop002:192.168.199.103
hadoop003:192.168.199.104
HostName配置:
sudo vi /etc/sysconfig/network
NETWOKRING=yes
HOSTNAME=hadoop001
hostname和ip地址的設(shè)置:sudo vi /etc/hosts
192.168.199.102? ?hadoop001
192.168.199.103? ?hadoop002
192.168.199.104? ?hadoop003
各節(jié)點(diǎn)角色分配:
hadoop001:NameNode / DataNode? ?ResourceManager / NodeManager
hadoop002:DataNode? ?NodeManager
hadoop003:DataNode? ?NodeManager
前置配置
1)ssh免密碼登錄
在每臺(tái)機(jī)器上都要運(yùn)行:ssh-keygen? ?-t? rsa
2)以hadoop001為主機(jī)器
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop0001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop0002
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop0003
3)jdk安裝
在hadoop001機(jī)器上解壓jdk壓縮包,并設(shè)置JAVA_HOME到系統(tǒng)環(huán)境變量
集群搭建
1)hadoop環(huán)境配置分發(fā)
Hadoop安裝
在hadoop001機(jī)器上解壓hadoop壓縮包,并設(shè)置HADOOP_HOME到系統(tǒng)環(huán)境變量
配置hadoop-env.sh
export JAVA_HOME=/usr/hadoop/app/jdk1.7.0_79
配置core-site.xml
? ? <property>
? ? ? ? <name>fs.default.name</name>
? ? ? ? <value>hdfs://10.6.24.143: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.log-aggregation-enable</name>
? ? ? ? <value>true</value>
? ? </property>
<---分布式和偽分布式只有下面的這一點(diǎn)區(qū)別-->
? ? <property>
? ? ? ? <name>yarn.resourcemanager.hostname</name>
? ? ? ? <value>機(jī)器別名或者ip</value>
? ? </property>
配置mapred-site.xml
? <property>
? ? ? ? <name>mapreduce.framework.name</name>
? ? ? ? <value>yarn</value>
? ? </property>
配置集群節(jié)點(diǎn)slaves,這里也是跟偽分布式有區(qū)別的地方
hadoop001
hadoop002
hadoop003
2)把Hadoop安裝配置分發(fā)到其他節(jié)點(diǎn)
scp -r ~/app hadoop@hadoop002:~/
scp -r ~/app hadoop@hadoop003:~/
scp ~/.bash_profile hadoop@hadoop002:~/
scp ~/.bash_profile?hadoop@hadoop003:~/
在hadoop002和hadoop003上面對(duì).bash_profile執(zhí)行生效命令:source ~/.bash_profile
3)對(duì)NameNode做格式化:只需要在主節(jié)點(diǎn)上執(zhí)行格式化即可
hdfs? ?namenode? -format
4)啟動(dòng)集群:只要在hadoop001上面執(zhí)行即可
sbin/start-all.sh
5)驗(yàn)證
第一種方式:jps
hadoop001:應(yīng)該有5個(gè)服務(wù)
SecondaryNameNode
DataNode
NodeManager
NameNode
ResourceManager
hadoop002:應(yīng)該有2個(gè)服務(wù)
NodeManager
DataNode
hadoop003:應(yīng)該有2個(gè)服務(wù)
NodeManager
DataNode
第二種方式:
webui
http://hadoop001:50070??
http://hadoop002:50070?
http://hadoop003:50070?
6)停止集群
sbin/stop-all.sh
集群使用
HDFS
YARN
將Hadoop實(shí)戰(zhàn)項(xiàng)目運(yùn)行在Hadoop集群上
把待處理的數(shù)據(jù)和開發(fā)的jar包存上傳到hadoop001主節(jié)點(diǎn)機(jī)器上運(yùn)行即可。
運(yùn)行命令:
hadoop jar /usr/hadoop/hadoop-2.6.0-cdh5.7.0/lib/bigdata-1.1.1.jar com.sc.mapreduce.WordCountApp hdfs://hadoop001:8020/xxx/test.txt hdfs://hadoop001:8020/xxx/output/wc