那么只需要做红色的步骤,步骤很少,并且有具体完成的图和验证。

1.虚拟机准备,修改虚拟机配置。如果没有vim文件编辑就用vi编辑,一样的,或者直接下载一下 yum -y install vim 。

[qurui@hadoop102 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static     #修改这几个配置

#IP地址

IPADDR=192.168.1.100  

#网关 

GATEWAY=192.168.1.2     

#域名解析器

DNS1=192.168.1.2

ONBOOT=yes

如下图所示:

hadoop 云主机 集群搭建 hadoop集群搭建步骤_linux

2.修改主机名 

[qurui@hadoop100 桌面]# vim /etc/hostname

hadoop102                     #修改为hadoop102(名字可以随便取,但要和上面一致)

hadoop 云主机 集群搭建 hadoop集群搭建步骤_大数据_02

关闭防火墙。

[qurui@hadoop102 ~]#systemctl enable firewalld

hadoop 云主机 集群搭建 hadoop集群搭建步骤_大数据_03

4.编写hosts文件 ,(为后面免密服务的,主要是集群文件传输比较方便,可以不搭建)

[root@hadoop100 桌面]# vim /etc/hosts #打开host文件,添加以下内容

192.168.1.100 hadoop100

192.168.1.101 hadoop101

192.168.1.102 hadoop102

192.168.1.103 hadoop103

192.168.1.104 hadoop104

5. 设置超级用户(可以不需要,直接用root用户就行)

[qurui@hadoop102 ~]#useradd qurui #添加用户

[qurui@hadoop102 ~]#passwd qurui  #添加密码

[qurui@hadoop102 ~]#vim /etc/sudoers 打开配置文件

## Allow root to run any commands anywhere(ALL前有一个空格,注意注意)

root      ALL=(ALL)     ALL

qurui   ALL=(ALL)     NOPASSWD: ALL

6.依赖包下载(主要是群发脚本用的,可以直接下载,要不后面可能会忘记)

[qurui@hadoop101 ~]# sudo yum install -y epel-release

[qurui@hadoop101 ~]# sudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static

7.集群正式搭建 ,创建module和software文件夹,改变属主

[root@hadoop101 ~]#sudo mkdir module/   #建立文件夹
[root@hadoop101 ~]#sudo mkdir software/ #建立文件夹
[root@hadoop101 ~]#sudo chown qurui:qurui module/     #改变文件夹的属主
[root@hadoop101 ~]#sudo chown qurui:qurui software/   #改变文件夹的属主

8.上传jar包,一共2个,最好放到/software文件夹下,解压jar包。

jar包:链接:https://pan.baidu.com/s/14HhHRGxz6OERslx_drqvEw
提取码:1234 

[root@hadoop101 ~]tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
[root@hadoop101 ~]tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

9.更改环境变量,hadoop只需要java和hadoop就行。

[qurui@hadoop102 ~]#sudo vim /etc/profile.d/my_env.sh  #打开文件夹,写入以下内容

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_212

export PATH=$PATH:$JAVA_HOME/bin

##HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.1.3

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

如下图所示:

hadoop 云主机 集群搭建 hadoop集群搭建步骤_大数据_04

刷新使环境变量生效

[qurui@hadoop102 ~]# source /etc/profile.d/my_env.sh  #用来刷新使环境变量生效

10.分发脚本,不常用的话可以不写

[qurui@hadoop102 ~]# cd /home/qurui #进入文件夹

[qurui@hadoop102 ~]# vim xsync #建立并打开文件
#!/bin/bash

#1. 判断参数个数

if [ $# -lt 1 ]

then

  echo Not Enough Arguement!

  exit;

fi

#2. 遍历集群所有机器

for host in hadoop102 hadoop103 hadoop104

do

  echo ====================  $host  ====================

  #3. 遍历所有目录,挨个发送

  for file in $@

  do

    #4 判断文件是否存在

    if [ -e $file ]

    then

      #5. 获取父目录

      pdir=$(cd -P $(dirname $file); pwd)

      #6. 获取当前文件的名称

      fname=$(basename $file)

      ssh $host "mkdir -p $pdir"

      rsync -av $pdir/$fname $host:$pdir

    else

      echo $file does not exists!

    fi

  done

done

赋予全局权限:

[qurui@hadoop101 ~]# chmod 777 xsync  #修改权限

[qurui@hadoop101 ~]# sudo mv xsync /bin/ #移动到/bin目录下,可以全局调用

11.SSh免密,不常用的可以不写。这个之后会专门写一篇文章。

[qurui@hadoop102 ~]# ssh hadoop102

[qurui@hadoop102 ~]# ssh-keygen -t rsa

[qurui@hadoop102 ~]# ssh-copy-id hadoop102

[qurui@hadoop102 ~]# ssh-copy-id hadoop103

[qurui@hadoop102 ~]# ssh-copy-id hadoop104

12.修改hadoop文件,在/opt/module/hadoop-3.1.3/etc/hadoop/下。

[qurui@hadoop102 ~]# cd /opt/module/hadoop-3.1.3/etc/hadoop/ #进入该目录
[qurui@hadoop102 ~]# vim core-site.xml #修改hadoop配置文件
<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://hadoop102:8020</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/opt/module/hadoop-3.1.3/data</value>

    </property>

    <property>

        <name>hadoop.proxyuser.qurui.hosts</name>

        <value>*</value>

    </property>

    <property>

        <name>hadoop.proxyuser.qurui.groups</name>

        <value>*</value>

    </property>

    <property>

        <name>hadoop.http.staticuser.user</name>

        <value>qurui</value>

    </property>

</configuration>
[qurui@hadoop102 ~]# vim hdfs-site.xml
<property>

    <name>dfs.namenode.name.dir</name>

    <value>file://${hadoop.data.dir}/name</value>

  </property>

  <property>

    <name>dfs.datanode.data.dir</name>

    <value>file://${hadoop.data.dir}/data</value>

  </property>

    <property>

    <name>dfs.namenode.checkpoint.dir</name>

    <value>file://${hadoop.data.dir}/namesecondary</value>

  </property>

    <property>

    <name>dfs.client.datanode-restart.timeout</name>

    <value>30</value>

  </property>

  <property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>hadoop104:9868</value>

  </property>
[qurui@hadoop102 ~]# vim yarn-site.xml,
<property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>hadoop103</value>

    </property>

    <property>

        <name>yarn.nodemanager.env-whitelist</name>

        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

    </property>
[qurui@hadoop102 ~]# vim mapred-site.xml
<property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

  </property>


13.配置worker,写入机器名字

[root@hadoop101 ~]# vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
hadoop102
hadoop103
hadoop104
#写入集群的机器名

14.其他集群机器重复以上步骤,只有机器名字需要修改,第二台是hadoop103,第三台是hadoop104。如果上面的分发和免密做了,直接分发即可(也需要改机器名字),如下进行分发:

[qurui@hadoop102 ~]# xsync /opt/module/hadoop-3.1.3/etc/hadoop/ #hadoop文件
[qurui@hadoop102 ~]# xsync /etc/profile.d/my_env.sh #环境变量文件