随笔 - 94  文章 - 0  评论 - 3  阅读 - 16万

Hadoop 3.3.2 集群安装

一、虚拟机环境准备

系统

主机

地址

hadoop版本

jdk版本

centos9

hadoop01

10.211.55.4

3.2.2

1.8.0_322

centos9

hadoop02

10.211.55.7

3.2.2

1.8.0_322

centos9

hadoop03

10.211.55.6

3.2.2

1.8.0_322

 

二、分别在三台虚拟机中进行hosts 配置 ,配置内容如下

1
2
3
4
5
10.211.55.4 hadoop01
 
10.211.55.7 hadoop02
 
10.211.55.6 hadoop03  

三、分别在三台虚拟机中设置用户及免密登陆

新增用户

groupadd hadoop
useradd -d /home/hadoop -g hadoop -s /bin/bash -m hadoop

 免密登陆方式一:

visudo
#在文中root行下添加hadoop行
hadoop ALL=(ALL) NOPASSWD:ALL

 

 免密登陆方式二:

复制代码
visudo
#在文中root行下添加hadoop行
hadoop ALL=(ALL) ALL
#注释掉wheel用户组需要登陆的行
#%wheel ALL=(ALL)       ALL
#打开wheel用户组免密登陆
%wheel  ALL=(ALL)       NOPASSWD: ALL

#将hadoop用户添加到wheel用户组
gpasswd -a hadoop wheel
复制代码

 

 

 

修改主机的hostname配置,并重启

 

复制代码
#第一台注解配置
hostnamectl set-hostname hadoop01
#重启
reboot
#查看是否更改成功
hostname

#第二台注解配置
hostnamectl set-hostname hadoop01
#重启
reboot
#查看是否更改成功
hostname

#查看是否更改成功
username

#第三台注解配置
hostnamectl set-hostname hadoop01
#重启
reboot
#查看是否更改成功
hostname
复制代码

关闭防火墙

1
2
3
关闭防⽕墙: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁⽤: systemctl disable firewalld

免密登陆配置

#切换到hadoop用户
su hadoop
#生城公钥,先查看本地有没有生成密钥,如果有的话,再次生成会影响前面已经设置好的,用下面这条命令就可以
cat ~/.ssh/id_rsa.pub
#如果没有的话,输入下面的命令来在本机上生成公钥和私钥
ssh-keygen -t rsa
#把公钥复制到远程主机上,此处主要是将三台虚拟机的公钥相互复制,以支持三台服务器可以使用hadoop账号使用ssh直接登录
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip地址

 

四、集群规划

注意1:NameNode和SecondaryNameNode不要部署在同一台服务器
注意2:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode部署在同一台服务器上

 

hadoop01

hadoop02

hadoop03

HDFS

 

DataNode

DataNode

DataNode

NameNode

 

SecondaryNameNode

YARN

 

NodeManager

NodeManager

NodeManager

 

ResourceManager

 

五、开始安装

复制代码
#下载解压
midir -p /opt/module /opt/software
cd /opt/software
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz
tar -xzvf  hadoop-3.3.2.tar.gz -C /opt/module
cd /opt/module
mv hadoop-3.3.2.tar.gz hadoop
# 移出旧版本JDK
yum remove -y `yum list installed | grep java | awk '{print $1}'`
yum remove -y `yum list installed | grep jdk | awk '{print $1}'`
# 安装JDK1.8
yum install -y java-1.8.0-openjdk*
复制代码

配置环境变量

vim /etc/profile

内容如下:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export HADOOP_HOME=/opt/module/hadoop
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

 

编辑core-site.xml

vim /opt/module/hadoop/etc/hadoop/core-site.xml

内容如下:

复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data/tmp</value>
    </property>
</configuration>
复制代码

 

 编辑hdfs-site.xml

vim /opt/module/hadoop/etc/hadoop/hdfs-site.xml

内容如下:

复制代码
<configuration>
     <property>
      <name>dfs.replication</name>
      <value>3</value>
     </property>
     <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop03:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/module/hadoop/dfs/name</value>
        <description>
            Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.
        </description>
     </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/module/hadoop/dfs/data</value>
        <description>
            Comma separated list of paths on the localfilesystem of a DataNode where it should store itsblocks.
        </description>
    </property>
</configuration>
复制代码

 

 编辑yarn-site.xml

vim /opt/module/hadoop/etc/hadoop/yarn-site.xml

内容如下:

复制代码
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop02</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
复制代码

 

 编辑workers

vim /opt/module/hadoop/etc/hadoop/workers

内容如下:

hadoop01
hadoop02
hadoop03

 

 编辑hadoop-env.sh

vim /opt/module/hadoop/etc/hadoop/hadoop-env.sh

内容如下:

export HDFS_NAMENODE_USER=hadoop
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_HOME=/opt/module/hadoop
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

 六、启动

在hadoop01服务器使用一下命令

start-all.sh

在hadoop02服务器执行命令:

start-yarn.sh

在各个节点使用jps命令查看状态

使用一下脚本查看所有节点状态

复制代码
#!/bin/bash

# 执行jps命令查询每台服务器上的节点状态
echo ======================集群节点状态====================

for i in hadoop01 hadoop02 hadoop03
do
        echo ====================== $i ====================
        ssh jachin@$i 'jps'
done
echo ======================执行完毕====================
复制代码

 

检查是否启动成功:

http://hadoop02:8088/cluster

 

http://hadoop01:9870/dfshealth.htm

 

posted on   一花一四季,一梦一世界  阅读(365)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示