Hadoop集群搭建

167 阅读4分钟

一、创建一个centos7虚拟机

准备:VMware、centos7镜像

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

然后完成即可

二、静态网络配置

点击:编辑->虚拟网络编辑器

image.png

修改子网

image.png

修改网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

添加并修改以下几处

image.png

重启 reboot

检查

此时使用ifconfig便可以看见ip已经修改

image.png

三、配置windows中的VMnet8网络

右击网络标志,选择”打开网络或intent设置“

image.png

image.png

image.png

右击,点击属性

image.png

修改成以下数据

image.png

四、配置hosts

1、windows

进入C:\Windows\System32\drivers\etc目录下

image.png

一般情况下,不能直接修改该文件,可以将其拷贝至桌面,然后修改,然后再拷贝进该目录,覆盖掉之前的文件,在末尾加上以下内容

image.png

2、Linux

使用vim /etc/hosts 指令进入hosts中进行修改

image.png

五、克隆

六、拷贝与同步

此时已经将Hadoop102完美的配置完成,但是Hadoop103和Hadoop104都还没有进行配置,此时可以进行拷贝,将Hadoop102的jdk与hadoop拷贝到另外两台虚拟机当中

1、scp安全拷贝

拷贝使用scp命令,实现服务器与服务器之间的拷贝

scp -r [要拷贝的文件路径/名字] [目的用户@主机:目的路径/名称]

将hadoop102中的JDK拷贝至hadoop103中的/opt/module位置

scp -r jdk1.8.0_171/ root@hadoop103:/opt/module

2、xsync同步(使用脚本)

安装rsync

使用该脚本前需要先安装rsync,每个服务器都需要安装

yum install rsync

编写脚本

在主目录下创建一个bin目录 mkdir bin 将脚本文件放在该bin目录下

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

image.png

将这个bin目录中的xsync文件的权限改为最高

chmod 777 xsync

此时成功将脚本文件编写成功,便可以直接使用,此时将该bin下的内容同步到另外两个服务器当中

xsync bin/

此时便可以通过xsync [文件]来进行同步资源

七、安装JDK与Hadoop

1、解压

将JDK和Hadoop拷贝到虚拟机当中,然后解压至/opt/module路径下,如果没有module目录,便创建一个即可

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/module
tar -zxvf hadoop-3.3.1.tar.gz -C /opt/module

2、配置环境

/etc/profile.d目录下新建一个文件

使用vim myenv.sh来创建文件,并配置该文件

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.3.1

export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

执行vim /etc/profile进入profile文件,在文件末尾添加以下内容

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

目的是为了让root用户也能操作该集群(我刚开始没有配置该内容,导致root用户无法启动集群)

在配置完毕之后,需要source以下文件source profile,这样才能当配置生效

3、同步

xsync /etc/profile

在同步数据完成后,另两个虚拟机也需要source资源,让配置生效

八、集群配置

进入路径/opt/module/hadoop-3.3.1/etc/hadoop

1、配置core-site.xml

修改core-site.xml中的配置

<configuration>

<property>
        <name>fs.defaultFS</name>
        <!--用于指定namenode地址在hadoop01机器上-->
        <value>hdfs://hadoop102:9000</value>
    </property>
    <!--配置Hadoop的临时目录,默认/tem/hadoop-${user.name}-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.3.1/data</value>
    </property>

</configuration>

2、修改hdfs-site.xml

<configuration>

<!--指定HDFS的数量-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--secondary namenode 所在主机的IP和端口-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:50090</value>
    </property>

</configuration>

3、修改yarn-site.xml

<configuration>

<!--指定YARN集群的管理者(ResourceManager)的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop102</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

</configuration>

4、修改mapred-site.xml

<configuration>

<!--指定MapReduce运行时的框架,这里指定在YARN上,默认在local-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

</configuration>

5、修改workers

hadoop102
hadoop103
hadoop104

需要注意,不能有空格和空行

6、修改环境

hadoop-env.sh``yarn-env.sh``mapred-env.sh文件的末尾加上jdk的环境

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

7、同步

在路径/opt/module/hadoop-3.3.1/etc

xsync hadoop

将修改的内容同步到另外两台机器上

九、集群测试

初始化集群

第一次启动的时候需要初始化,就在hadoop的目录下进行即可

hdfs namenode -format

image.png

初始化成功后便可以看见hadoop目录下多出data和logs目录

启动集群

此时便可以进入sbin目录下/opt/module/hadoop-3.3.1/sbin执行启动命令

start-dfs.sh    在主机上启动(hadoop102)

start-yarn.sh   需注意,yarn安装在哪台机器上,便在那台机器上启动

启动成功后可以执行jps指令,可以看见以下内容:

image.png

打开浏览器,进入http://hadoop:9870

image.png

进入http://hadoop102:8088

image.png

出现以上界面便标志着配置成功

十、坑

1、root用户无法启动集群,会出现错误

此时需要执行第七章第二小节的后面那个操作

2、Hadoop-3.x.x的服务器默认端口

Hadoop-3.x.x的服务器默认端口为9870,Hadoop-2.x.x默认端口是50070

3、yarn的位置

在配置yarn-site.xml时,便确定了yarn的位置在哪台机器上,所以启动yarn时便在该机器上启动