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正在正确运行

相关推荐
落叶,听雪7 小时前
AI建站推荐
大数据·人工智能·python
lhrimperial8 小时前
Elasticsearch核心技术深度解析
大数据·elasticsearch·搜索引擎
geneculture8 小时前
从智力仿真到认知协同:人机之间的价值对齐与共生框架
大数据·人工智能·学习·融智学的重要应用·信智序位
无代码专家9 小时前
设备巡检数字化闭环解决方案:从预防到优化的全流程赋能
大数据·人工智能
神算大模型APi--天枢64610 小时前
合规与高效兼得:国产全栈架构赋能行业大模型定制,从教育到工业的轻量化落地
大数据·前端·人工智能·架构·硬件架构
飞飞传输12 小时前
守护医疗隐私,数据安全摆渡系统撑起内外网安全伞!
大数据·运维·安全
Guheyunyi12 小时前
视频安全监测系统的三大核心突破
大数据·运维·服务器·人工智能·安全·音视频
阿里云大数据AI技术12 小时前
1TB数据,ES却收到了2TB?揪出那个客户端中的“隐形复读机”
大数据·elasticsearch
初恋叫萱萱13 小时前
【TextIn大模型加速器 + 火山引擎】文件智能体构建全路径指南
大数据·数据库·火山引擎
安达发公司13 小时前
安达发|效率革命:APS自动排程,为“金属丛林”安装精准导航
大数据·运维·人工智能·aps高级排程·aps排程软件·安达发aps·aps自动排程