前面说到使用单机搭建hadoop 伪分布式集群,这篇文章讲的是怎么搭建hadoop集群。
这里我是用3台虚拟机
192.168.1.221 spark1
192.168.1.222 spark2
192.168.1.223 spark3
如果不会搭建虚拟机的同学可以参考这篇文章
http://www.haha174.top/article/details/255136
一.配置jdk
如果不会可以参考这篇文章
http://www.haha174.top/article/details/259178
二.修改主机名
分别登陆到三台虚拟机 去修改主机名
vi /etc/hostname
spark1(修改为ip地址对应的名字)
配置 host
vi /etc/hosts
192.168.1.221 spark1
192.168.1.222 spark2
192.168.1.223 spark3
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=spark1(修改为ip地址对应的名字)
重启虚拟机
三.免密登陆
配置自身免密登陆 三台都要执行
ssh-keygen -t rsa
cd /root/.ssh
cp id_rsa.pub authorized_keys
执行完上述三条命令后 可以ssh 自身的hostname 测试
如测试在spark1 上面可以直接ssh spark1 测试时候成功
相互免密登陆(三台机器都要设置)
假设现在在spark1 上面则执行
ssh-copy-id -i spark2
ssh-copy-id -i spark3
然后可以 ssh spark2 测试
ssh spark3 测试
以此类推将spark2 和spark 3 都执行了
三.修改配置
主要修改下面几个文件
1.core.site.xml
添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://spark1:8020</value>
</property>
- hdfs-site.xml
添加
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/app/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/app/datanode</value>
</property>
<property>
<name>dfs.tmp.dir</name>
<value>/home/hadoop/app/tmp</value>
</property>
- mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>spark1</value>
</property>
四.同步
以上的配置只需要在一个节点配置好即可。
我是在spark1 上面配置的只需要通过命令
scp -r hadoop root@spark2 : /soft/
scp -r hadoop root@spark3: /soft/
5.启动
下面的命令只需要在spark1 执行即可
在启动之前
hdfs namenode -format 需要先格式化一下
然后 sh start-dfs.sh
然后查看启动状态 jps
spark1
spark2
spark3
输入下面的链接查看状态
http://spark1:50070/dfshealth.html#tab-datanode
这样就成功了
文章地址:http://www.haha174.top/article/details/258782