搭建Hadoop完全分布式集群

402 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

此文以Hadoop 3.2.2版本为例!

如未指定,下述命令在所有节点执行!

一、系统资源及组件规划

节点名称系统名称CPU/ 内存网卡磁盘IP 地址OS
NameNodenamenode2C/4Gens33128G192.168.0.11CentOS7
Secondary NameNodesecondarynamenode2C/4Gens33128G192.168.0.12CentOS7
ResourceManagerresourcemanager2C/4Gens33128G192.168.0.13CentOS7
Worker1worker12C/4Gens33128G192.168.0.21CentOS7
Worker2worker22C/4Gens33128G192.168.0.22CentOS7
Worker3worker32C/4Gens33128G192.168.0.23CentOS7

二、系统软件安装与设置

1、安装基本软件

yum -y install vim lrzsz bash-completion

image.png

2、设置名称解析

echo 192.168.0.11 namenode >> /etc/hosts
echo 192.168.0.12 secondarynamenode >> /etc/hosts
echo 192.168.0.13 resourcemanager >> /etc/hosts
echo 192.168.0.21 worker1 >> /etc/hosts
echo 192.168.0.22 worker2 >> /etc/hosts
echo 192.168.0.23 worker3 >> /etc/hosts

image.png

3、设置NTP

yum -y install chrony

image.png

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

image.png

chronyc sources

image.png

4、设置SELinux、防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

image.png

三、搭建Hadoop完全分布式集群

1、设置SSH免密登录

在NameNode和ResourceManager节点上配置免密ssh所有节点:

ssh-keygen -t rsa

image.png

for host in namenode secondarynamenode resourcemanager worker1 worker2 worker3; do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; done

image.png

2、安装JDK

下载JDK文件:

参考地址:www.oracle.com/java/techno…

 

解压JDK安装文件:

tar -xf /root/jdk-8u291-linux-x64.tar.gz -C /usr/local/

image.png

设置环境变量:

export JAVA_HOME=/usr/local/jdk1.8.0_291/
export PATH=$PATH:/usr/local/jdk1.8.0_291/bin/

image.png

添加环境变量至/etc/profile文件:

export JAVA_HOME=/usr/local/jdk1.8.0_291/
PATH=$PATH:/usr/local/jdk1.8.0_291/bin/

image.png

查看Java版本:

java -version

image.png

3、安装Hadoop集群

下载Hadoop文件:

参考地址:hadoop.apache.org/releases.ht…

 

解压Hadoop安装文件:

tar -xf /root/hadoop-3.2.2.tar.gz -C /usr/local/

image.png

设置环境变量:

export PATH=$PATH:/usr/local/hadoop-3.2.2/bin/:/usr/local/hadoop-3.2.2/sbin/

image.png

添加环境变量至/etc/profile文件:

PATH=$PATH:/usr/local/hadoop-3.2.2/bin/:/usr/local/hadoop-3.2.2/sbin/

image.png

查看Hadoop版本:

hadoop version

image.png

4、配置Hadoop集群

修改core-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/core-site.xml << EOF
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>
</configuration>
EOF

image.png

修改hdfs-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/hdfs-site.xml << EOF
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondarynamenode:50090</value>
    </property>
</configuration>
EOF

image.png

修改yarn-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/yarn-site.xml << EOF
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>resourcemanager</value>
    </property>
</configuration>
EOF

image.png

修改mapred-site.xml文件:

cat > /usr/local/hadoop-3.2.2/etc/hadoop/mapred-site.xml << EOF
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
EOF

image.png

修改hadoop-env.sh文件:

vim /usr/local/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_291/

image.png

修改workers文件,指定Worker节点:

echo worker1 > /usr/local/hadoop-3.2.2/etc/hadoop/workers
echo worker2 >> /usr/local/hadoop-3.2.2/etc/hadoop/workers
echo worker3 >> /usr/local/hadoop-3.2.2/etc/hadoop/workers

image.png

修改start-dfs.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

image.png

修改stop-dfs.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

image.png

修改start-yarn.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

image.png

修改stop-yarn.sh文件,指定启动用户:

vim /usr/local/hadoop-3.2.2/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

image.png

5、启动Hadoop集群

在NameNode节点上格式化NameNode:

hdfs namenode -format

image.png

在NameNode节点上启动HDFS:

start-dfs.sh

image.png

在ResourceManager节点上启动YARN:

start-yarn.sh

image.png

在各类节点上查看Hadoop进程:

image.png

image.png

image.png

image.png

6、登录Hadoop集群

登录NameNode:

http://192.168.0.11:9870

image.png

登录Secondary NameNode:

http://192.168.0.12:50090

image.png 登录ResourceManager:

http://192.168.0.13:8088

image.png

7、停止Hadoop集群

在NameNode节点上停止HDFS:

stop-dfs.sh

image.png

在ResourceManager节点上停止YARN:

stop-yarn.sh

image.png