centos7搭建hadoop分布式集群

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

如果配置成功,结果如下:

s101 NameNode

s101 ResourceManager

s102 DataNode

s102 NodeManager

s103 DataNode

s103 NodeManager

s104 DataNode

s104 NodeManager

s105 SecondaryNameNode

可能总结有疏漏之处,欢迎提问交流!

 

猜你喜欢

转载自blog.csdn.net/greatxiaoting/article/details/81571187