CentOS 安装Hadoop 分布式模式[Hadoop 3 学习笔记]

本文介绍在Linux上搭建安装Hadoop 分布式环境。前面我们介绍了伪分布式模式单机模式。分布式模式也运行在多台机器上,每个Java进程独立的运行在专用的linux服务器上,是一个的Hadoop运行环境。具备分布式的全部特征而且能容忍单台机器故障,这种模式适用于生产环境。

Hadoop分布式模式介绍

Hadoop一般有三种运行模式,分别是:

  • 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统。,用于开发和调试。
  • 伪分布式模式(Pseudo Distrubuted Mode),使用的是分布式文件系统,守护进程运行在本机机器,模拟一个小规模的集群,在一台主机模拟多主机,适合模拟集群学习。
  • 完全分布式集群模式(Full Distributed Mode),Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。

完全分布式可以参考Hadoop Cluster Setup进行搭建。

Linux服务器准备

hostname ip role
192.168.50.91 hadoop3-01 namenode
192.168.50.214 hadoop3-02 secondary namenode
192.168.50.79 hadoop3-03 datanode
192.168.50.207 hadoop3-04 datanode
192.168.50.53 hadoop3-05 datanode

后续的操作默认都是以root用户执行命令

网络设置

防火墙设置

在每台机器上都需要执行,关闭防火墙(不建议互联网环境这样做,不安全)

填入如下内容

bash 复制代码
# 如果你的Linux安装了firewalld并默认开启了,建议新手第一次安装时关闭firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl status firewalld

hostname设置

在每台机器上都需要执行,我们可以通过vim /etc/hostname编辑各个Linux的hostname来将服务器的设置为hadoop3-xx

hosts设置

在每台机器上都需要执行,我们可以通过vim /etc/hosts编辑各个Linux的hosts来设置每个服务器的ip

填入如下内容

复制代码
192.168.50.91     hadoop3-01
192.168.50.214    hadoop3-02
192.168.50.79     hadoop3-03
192.168.50.207    hadoop3-04
192.168.50.53     hadoop3-05

网络设置好后,这几台Linux可以自己互相ping一下,确认网络畅通

JDK和Hadoop3环境变量设置

在每台机器上都需要执行,我们需要通过命令vim /etc/profile编辑环境变量

设置好自己的JAVA_HOMEHADOOP_HOMEPATH

填入如下内容

ini 复制代码
# 设置haddoop相关的用户
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_ROOT=root
export YARN_NODEMANAGER_USER=root

# 指定JAVA_HOME环境变量和PATH
export JAVA_HOME=/home/thinktik/envs/jdk/aws_jdk_8
export PATH=$PATH:$JAVA_HOME/bin
# 指定HADOOP_HOME环境变量和PATH
export HADOOP_HOME=/home/thinktik/envs/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 

然后生效环境变量source /etc/profile,检查下java和hadoop是否配置好了

SSH免密设置

在每台机器上都需要执行,分布式集群各个节点初始化时可能需要通过SSH进行自动操作,所以我们需要在这几台机器上都进行同样的操作

bash 复制代码
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
# 以hadoop3-01向hadoop3-02发送密钥为例(每个主机都需要向其他4个主机发送密钥)
ssh-copy-id hadoop3-02

操作完成后,我们可以在linux上互相ssh下,会发现不需要密码就可以互相ssh通

Hadoop配置

修改core-site.xml文件

在每台机器上都需要执行vim etc/hadoop/core-site.xml修改core-site.xml文件

填入如下内容

xml 复制代码
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <!--设置namenode节点,默认端口9000,这里hadoop3-01是namenode-->
        <value>hdfs://hadoop3-01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <!--可以自己自定义hadoop临时文件的路径,我习惯的路径为$HADOOP_HOME/tmp-->
        <value>/home/thinktik/envs/hadoop/tmp</value>
    </property>
</configuration>

修改hdfs-site.xml文件

在每台机器上都需要执行vim etc/hadoop/hdfs-site.xml修改hdfs-site.xml文件

填入如下内容

xml 复制代码
<configuration>
    <property>
        <name>dfs.replication</name>
        <!--分布式集群中我们有3个datanode节点,因此副本数量replication的值也设置为3-->
        <value>3</value>
    </property>
    <property>
        <!--设置secondary namenode节点,默认端口9868,这里hadoop3-02是secondary namenode -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop3-02:9868</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <!--Web UI 默认允许任意IP访问,你可以精细化设置-->
        <value>0.0.0.0:9870</value>
    </property>
</configuration>

修改hadoop-env.sh文件

在每台机器上都需要执行vim etc/hadoop/hadoop-env.sh修改hadoop-env.sh文件

填入如下内容

ini 复制代码
# 指定JAVA_HOME环境变量
export JAVA_HOME=/home/thinktik/envs/jdk/aws_jdk_8
# 设置haddoop相关的用户
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_ROOT=root
export YARN_NODEMANAGER_USER=root

修改workers文件

在每台机器上都需要执行vim etc/hadoop/workers修改workers文件

填入如下内容,表示datanode的主机名

复制代码
hadoop3-03
hadoop3-04
hadoop3-05

启动hadoop3 分布式集群

我们在hadoop3-01上执行hdfs的格式化

python 复制代码
sudo bin/hdfs namenode -format

然后在hadoop3-01上正式启动

bash 复制代码
sudo sbin/start-dfs.sh

可以看到各个linux服务器上已经正确的运行了对应的hadoop2分布式集群节点 当我们访问hadoop3-01:9870进入后台网站,也会看到datanode正在正确运行

相关推荐
让学习成为一种生活方式1 小时前
植物基因组数据共享:呼吁全面开放获取--文献精读244
大数据
Java 码思客1 小时前
【ElasticSearch从入门到架构师】第5章:ES DSL 检索语法精讲(核心重点)
大数据·elasticsearch
lauo2 小时前
ibbot青春版:当腾讯AI“换船”,一部手机如何成为你的Token“私矿”?
大数据·人工智能·chatgpt·智能手机·ai-native
老虾头2 小时前
合规化背景下,本地私有 AI 成为行业主流发展方向
大数据·人工智能
行业研究员2 小时前
腾讯会议同传功能实测与选型建议
大数据·人工智能·腾讯会议·腾讯会议会议同传
Sharewinfo_BJ2 小时前
当 BI 遇上 AI:到底是谁在帮谁?
大数据·人工智能·ai·数据分析·微软·powerbi
wb043072012 小时前
阿明的二次创业——从阿明用 AI 开第二家店,看 AI 原生创业的四阶段方法论
大数据·人工智能·架构
青岛前景互联信息技术有限公司3 小时前
前景互联·新一代智能接处警系统:AI+大模型+Agent智能接处警一体化解决方案
大数据·人工智能·物联网
terry6003 小时前
2026滑动拼图验证码选型指南:AI对抗下的厂商对比与落地实测
大数据·人工智能·web安全·信息与通信·数据库架构
仓储管理员20253 小时前
六款WMS仓储管理系统功能与部署方式介绍
大数据·精选