Hadoop集群节点分配:
s101:namenode节点
s102:datanode节点
s103:datanode节点
s104:datanode节点
s105:secondarynamenode节点
注:s101~s105分别表示5台虚拟机的hostname
前提条件:已经搭建完成hadoop伪分布式集群!
参考文章:https://blog.csdn.net/greatxiaoting/article/details/81562622
1.准备hadoop分布式安装文件
1)进入hadoop安装目录
cd /soft/hadoop/etc
2)复制hadoop文件夹
cp -r hadoop full //递归复制用于配置分布式hadoop集群
cp -r hadoop pseudo //递归复制用于备份伪分布式hadoop
rm -rf hadoop //删除hadoop文件夹
3)创建分布式hadoop符号链接
ln -s full hadoop
2.hadoop分布式文件配置
1)进入hadoop配置文件目录
cd /soft/hadoop/etc/hadoop
2)修改core-site.xml配置文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s101/</value>
</property>
<!--- 配置新的本地目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/centos/hadoop</value>
</property>
</configuration>
注:
s101为namenode节点主机名,具体名称因人而异;
/home/centos/hadoop设置为hadoop临时文件目录
3)修改hdfs-site.xml配置文件
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>s105:50090</value>
</property>
</configuration>
注:
设置文件备份的副本数为3
s105设置为secondarynamenode
4)修改yarn-site.xml配置文件
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s101</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
注:设置资源管理器的主机为s101(namenode节点)
5)修改slaves配置文件
vim slaves
slaves文件配置内容如下:
s102
s103
s104
保存退出
注:slaves s102~s104设置为datanode节点
6)修改虚拟机hostname
sudo vim /etc/hostname
hostname文件配置内容如下:
s101
保存退出
hostname //查看主机名
7)修改域名解析文件
sudo vim /etc/hosts
hosts文件配置内容如下:
127.0.0.1 localhost
192.168.255.101 s101
192.168.255.102 s102
192.168.255.103 s103
192.168.255.104 s104
192.168.255.105 s105
保存退出
注:域名解析s101~s105虚拟机的ip地址
3.编写脚本文件
1)进入脚本目录
cd /usr/local/bin
2)hadoop集群同步执行命令脚本xcall.sh
touch xcall.sh
chmod a+x xcall.sh
vim xcall.sh
复制以下脚本内容粘贴到xcall.sh:
#!/bin/bash
params=$@
i=101
for (( i=101 ; i <= 105; i = $i + 1 )) ; do
echo ============= s$i $params =============
ssh s$i "$params"
done
保存退出
3)hadoop集群同步分发文件脚本xsync.sh
touch xsync.sh
chmod a+x xsync.sh
vim xsync.sh
复制以下脚本内容粘贴到xsync.sh:
#!/bin/bash
if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi
p=$1
#echo p=$p
dir=`dirname $p`
#echo dir=$dir
filename=`basename $p`
#echo filename=$filename
cd $dir
fullpath=`pwd -P .`
#echo fullpath=$fullpath
user=`whoami`
for (( i = 102 ; i <= 105 ; i = $i + 1 )) ; do
echo ======= s$i =======
rsync -lr $p ${user}@s$i:$fullpath
done
保存退出
4.删除临时文件和日志
1)删除临时文件
rm -rf /home/centos/hadoop/* //本机设置的hadoop临时文件目录
rm -rf /tmp/* //hadoop系统默认的临时文件目录
2)删除日志
rm -rf /soft/hadoop/logs/* //hadoop系统默认的日志目录
5.配置SSH
A. s101虚拟机的centos用户配置SSH
1) 生成公私密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
2)添加公钥id_rsa.pub到授权文件authorized_keys
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
3)修改authorized_keys的权限为644
chmod 644 authorized_keys
B. s101虚拟机的root用户配置SSH
1) 切换到root用户
su root
2) 生成公私密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
3)添加公钥id_rsa.pub到授权文件authorized_keys
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
6.克隆五台虚拟机并配置
克隆方法太简单了,就不再介绍了!
五台虚拟机的命名编号分别为s101~s105,方便维护操作!
1)克隆机hostname修改
sudo vim /etc/hostname
hostname文件配置内容如下:
s102
保存退出
hostname //查看主机名
注:
s103~s105按照同样方式修改
s101虚拟机不需要修改
2)克隆机网络配置
参考文章:https://blog.csdn.net/greatxiaoting/article/details/81488441
注:五台虚拟机的IP地址编号为192.168.255.101 ~192.168.255.105 连续号段。
7. s101格式化namenode
cd /soft/hadoop/bin
hadoop namenode -format
注:centos用户操作
8. s101启动hadoop集群
start-all.sh
查看所有虚拟机的进程
xcall.sh jps
如果配置成功,输入命令:xcall.sh jps
结果如下:
可能总结有疏漏之处,欢迎提问交流!