【Hadoop】Linux(CentOS7)下安装Hadoop集群

一、实验信息

1. 实验环境

  • CentOS7
  • Java21
虚拟机名称 feilink1 feilink2 feilink3
虚拟机IP 192.168.10.101 192.168.10.102 192.168.10.103

2. Hadoop服务配置

节点 服务
feilink1 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager、ProxyServe、JobHistoryServer
feilink2 DataNode、NodeManager
feilink3 DateNode、NodeManager

3. 文中没特意说的就是在feilink1节点上执行

二、创建Hadoop用户并配置免密登录

1. 创建用户

三台一起执行

bash 复制代码
useradd hadoop

2. 修改密码

三台一起执行

如果密码太简单了就输入两次,死犟死犟的一天

bash 复制代码
passwd hadoop

3. 切换用户

三台一起执行

bash 复制代码
su hadoop

4. 配置ssh免密登录

三台一起执行

bash 复制代码
# 连着三个回车
ssh-keygen
ssh-copy-id feilink1
ssh-copy-id feilink2
ssh-copy-id feilink3

三、下载压缩包

1. 官网地址

https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.4.2/hadoop-3.4.2.tar.gz

我这里用的是之前的老版本3.3.4,hadoop-3.3.4.tar.gz

2. 再次确认

请确认已经完成前置准备中的服务器创建、固定IP、防火墙关闭、Hadoop用户创建、SSH免密、JDK部署等操作

3. 上传压缩包到feilink1节点中

先切换回root用户

三台一起执行

bash 复制代码
su root

上传压缩包到feilink1节点中的/export/server路径中

四、安装Hadoop

1. 解压文件

bash 复制代码
tar -zxvf hadoop-3.3.4.tar.gz

2. 删除压缩包

bash 复制代码
rm -rf hadoop-3.3.4.tar.gz

3. 目录重命名

bash 复制代码
mv hadoop-3.3.4/ hadoop

五、修改配置文件

1. workers

bash 复制代码
vim  /export/server/hadoop/etc/hadoop/workers
bash 复制代码
# 修改为以下内容,粘贴完别忘了把这行删掉
feilink1
feilink2
feilink3

2. hadoop-env.sh

bash 复制代码
vim /export/server/hadoop/etc/hadoop/hadoop-env.sh
bash 复制代码
# 新增以下内容
# Hadoop
# jdk路径
export JAVA_HOME=/export/server/jdk
# hadoop路径
export HADOOP_HOME=/export/server/hadoop
# hadoop配置文件路径
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# hadoop日志路径
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

3. core-site.xml

bash 复制代码
vim  /export/server/hadoop/etc/hadoop/core-site.xml
xml 复制代码
<configuration>
  <property>
    <!-- HDFS的NameNode通讯地址 -->
    <name>fs.defaultFS</name>
    <value>hdfs://feilink1:8020</value>
  </property>

  <property>
    <!-- IO操作文件缓冲区大小 -->
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
</configuration>

4. hdfs-site.xml

bash 复制代码
vim /export/server/hadoop/etc/hadoop/hdfs-site.xml
xml 复制代码
<configuration>
    <property>
        <!-- HDFS文件系统默认创建的文件权限设置 -->
        <!-- 700 就是rwx...... -->
        <name>dfs.datanode.data.dir.perm</name>
        <value>700</value>
    </property>
    <property>
        <!-- NameNode元数据的存储位置 -->
        <!-- 在NameNode节点的/data/nn目录下 -->
        <name>dfs.namenode.name.dir</name>
        <value>/data/nn</value>
    </property>
    <property>
        <!-- NameNode允许哪几个节点的DataNode连接 -->
        <name>dfs.namenode.hosts</name>
        <value>feilink1,feilink2,feilink3</value>
    </property>
    <property>
        <!-- HDFS默认块大小 -->
        <!-- 256MB -->
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>
    <property>
        <!-- NameNode处理的并发线程数 -->
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
    </property>
    <property>
        <!-- DataNode的数据存储目录 -->
        <!-- 数据存放在DataNode的/data/dn目录下 -->
        <name>dfs.datanode.data.dir</name>
        <value>/data/dn</value>
    </property>
</configuration>

5. mapred-env.sh

bash 复制代码
vim /export/server/hadoop/etc/hadoop/mapred-env.sh
bash 复制代码
# JDK路径
export JAVA_HOME=/export/server/jdk
# 设置JobHistoryServer进程内存为1G
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
# 设置日志级别为INFO
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
# java9以上的bug
export HADOOP_OPTS="$HADOOP_OPTS --add-opens java.base/java.lang=ALL-UNNAMED"

6. mapred-site.xml

xml 复制代码
vim /export/server/hadoop/etc/hadoop/mapred-site.xml
xml 复制代码
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>MapReduce的运行框架设置为YARN</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>feilink1:10020</value>
        <description>历史服务器通讯端口为feilink1:10020</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>feilink1:19888</value>
        <description>历史服务器web端口为feilink1:19888</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/data/mr-history/tmp</value>
        <description>历史信息在HDFS的记录临时路径</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/data/mr-history/done</value>
        <description>历史信息在HDFS的记录路径</description>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
        <description>MapReduce HOME 设置为HADOOP_HOME</description>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
        <description>MapReduce HOME设置为HADOOP_HOME</description>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
        <description>MapReduce HOME设置为HADOOP_HOME</description>
    </property>
</configuration>

7. yarn-env.sh

bash 复制代码
vim /export/server/hadoop/etc/hadoop/yarn-env.sh
bash 复制代码
# 增加内容
# 设置JDK 环境变量
JAVA_HOME=/export/server/jdk
# HADOOP_HOME环境变量
export HADOOP_HOME=/export/server/hadoop
# 配置文件路径的环境变量
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 设置日志文件路径的环境变量
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
# java9以上的bug
export HADOOP_OPTS="$HADOOP_OPTS --add-opens java.base/java.lang=ALL-UNNAMED"

8. yarn-site.xml

bash 复制代码
vim /export/server/hadoop/etc/hadoop/yarn-site.xml
xml 复制代码
<?xml version="1.0"?>

<configuration>

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>feilink1</value>
        <description>ResourceManager设置在node1节点</description>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/data/nm-local</value>
        <description>NodeManager中间数据本地存储路径</description>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/data/nm-log</value>
        <description>NodeManager数据日志本地存储路径</description>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>为MapReduce程序开启Shuffle服务</description>
    </property>
    <property>
        <name>yarn.log.server.url</name>
        <value>http://feilink1:19888/jobhistory/logs</value>
        <description>历史服务器URL</description>
    </property>
    <property>
        <name>yarn.web-proxy.address</name>
        <value>feilink1:8089</value>
        <description>代理服务器主机和端口</description>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
        <description>开启日志聚合</description>
    </property>
    <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/tmp/logs</value>
        <description>程序日志HDFS的存储路径</description>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
        <description>选择公平调度器</description>
    </property>

</configuration>

六、分发文件

bash 复制代码
cd /export/server
scp -r hadoop feilink2:`pwd`/
scp -r hadoop feilink3:`pwd`/

七、集群配置

1. 创建存储目录

三台一起执行

bash 复制代码
su root
bash 复制代码
mkdir -p /data/nn
mkdir -p /data/dn

2. 修改环境变量

三台一起执行

bash 复制代码
vim /etc/profile
bash 复制代码
# 新增以下内容
# Hadoop
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
bash 复制代码
source /etc/profile

3. hadoop用户授权

三台一起执行

bash 复制代码
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export
chown -R hadoop:hadoop /tmp

4. 格式化HDFS

在feilink1上执行

要以hadoop用户执行

bash 复制代码
# 切换用户
su hadoop
# 格式化namenode
hadoop namenode -format

八、启动Hadoop

1. HDFS

一键启动HDFS集群

bash 复制代码
start-dfs.sh

一键关闭HDFS集群

bash 复制代码
stop-dfs.sh

单独控制服务启停

bash 复制代码
hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)

2. YARN

一键启动YARN集群

bash 复制代码
start-yarn.sh

一键关闭YARN集群

bash 复制代码
stop-yarn.sh

当前机器单独启停进程

bash 复制代码
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver

3. MapReduce

历史服务器启动和停止

bash 复制代码
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver

4. 一键启停除history以外所有服务

bash 复制代码
start-all.sh
bash 复制代码
stop-all.sh

九、安装成功

十、Web页面

1. HDFS

http://192.168.10.101:9870

2. YARN

http://192.168.10.101:8088/

相关推荐
kaoa0005 小时前
Linux入门攻坚——62、memcached使用入门
linux·运维·memcached
码农水水5 小时前
国家电网Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·网络·分布式·面试·wpf
InterestOriented5 小时前
破解银发学习痛点 兴趣岛 “普惠 + 品质” 模式打造积极老龄化范本
大数据·人工智能·学习
model20055 小时前
alibaba linux3 系统盘清理
linux·运维·服务器
WG_176 小时前
Linux:动态库加载总结_进程间通信+进程池 + 进程IPC(27/28/29/30/31/32)
linux·运维·服务器
小赵还有头发6 小时前
安装 RealSense SDK (驱动层)
linux
Root_Hacker7 小时前
include文件包含个人笔记及c底层调试
android·linux·服务器·c语言·笔记·安全·php
微学AI8 小时前
内网穿透的应用-告别局域网束缚!MonkeyCode+cpolar 解锁 AI 编程新体验
linux·服务器·网络
pingao1413788 小时前
太阳总辐射传感器:能源、气象领域的关键测量工具
大数据·能源
百***78758 小时前
Grok-4.1技术深度解析:双版本架构突破与Python API快速集成指南
大数据·python·架构