Hadoop 集群部署与配置详解

一、环境准备

1. 系统环境

  • 操作系统:CentOS 7 或其他类 Unix 系统

  • Java 环境:JDK 1.8 或以上版本

  • Hadoop 版本:Hadoop 3.x

2. 节点规划

假设我们有以下三个节点:

  • Master:主节点,运行 NameNode 和 ResourceManager

  • Slave1:从节点,运行 DataNode 和 NodeManager

  • Slave2:从节点,运行 DataNode 和 NodeManager

二、JDK 解压与安装

1. 下载 JDK

从 Oracle 官方网站或其他可信源下载 JDK 安装包,如果你已有解压包 跳过此步骤!!!

html 复制代码
wget https://download.oracle.com/otn/java/jdk/8u361-b09/jdk-8u361-linux-x64.tar.gz

2. 解压安装包

bash 复制代码
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /opt/service/
html 复制代码
# tar
# Linux下的归档工具,用于压缩或解压文件。

# -z
# 使用 gzip 解压/压缩(因为文件后缀是 .tar.gz,必须加此参数)。

# -x
# 表示执行解压操作(Extract)。

# -v
# 显示解压过程的详细信息(Verbose),方便观察进度。

# -f
# 指定要操作的文件名(File),这里指向 jdk-8u361-linux-x64.tar.gz。

# -C /opt/service/
# 指定解压的目标目录(Change directory),文件会被解压到 /opt/service/ 下。

# 操作结果
# 解压内容
# 将 jdk-8u361-linux-x64.tar.gz 中的文件解压到 /opt/service/ 目录下。

# 解压后的路径
# 通常会在 /opt/service/ 下生成一个类似 jdk1.8.0_361 的目录,即JDK的安装路径。

# 典型用途
# 这行命令是安装Java环境(JDK 8)的标准步骤,常用于配置开发或生产服务器。

3. 创建软连接

为了方便后续配置和使用,创建一个软连接:

ln -s /opt/service/jdk1.8.0_361 /opt/service/jdk

三、配置 IP 映射

在所有节点上,编辑 /etc/hosts 文件,添加所有节点的 IP 和主机名映射:

bash 复制代码
# 编辑
vi /etc/hosts 

# 示例
192.168.1.100 master    #saster 是 用户名  
192.168.1.101 slave1    # slave1  是 用户名  
192.168.1.102 slave2    # slave2  是 用户名

四、配置环境变量

编辑 /etc/profile 文件,添加以下内容:

bash 复制代码
#编辑 /etc/profile 文件
vi /etc/profile

#  JAVA环境变量配置
export JAVA_HOME=/opt/service/jdk
export PATH=$PATH:$JAVA_HOME/bin

#  HADOOP环境变量配置
export HADOOP_HOME=/opt/service/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

# 后续可以继续在此增添环境变量配置

使配置生效:

bash 复制代码
source /etc/profile

五. 查看 Java 版本

在任意节点上,运行以下命令查看 Java 版本:

bash 复制代码
java -version

该命令会显示当前系统中 Java 的版本信息,确保安装的 JDK 版本符合要求。

六、Hadoop 解压与安装

1. 下载 Hadoop

从 Apache Hadoop 官方网站下载 Hadoop 安装包,例如: 如果有解压包可跳过此步骤!!!

bash 复制代码
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

2. 解压安装包

bash 复制代码
tar -zxvf hadoop-3.3.4.tar.gz -C /opt/service/

3. 创建软连接

为了方便后续配置和使用,创建一个软连接:

bash 复制代码
ln -s /opt/service/hadoop-3.3.4 /opt/service/hadoop

六、配置核心文件

1. 配置 hadoop-env.sh

编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 文件,设置 Java 环境变量:

bash 复制代码
# $HADOOP_HOME/etc/hadoop/hadoop-env.sh
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh

# 添加以下内容:
export JAVA_HOME=/opt/service/jdk
export HADOOP_HOME=/opt/service/hadoop
export HADOOP_HOME_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

2. 配置 core-site.xml

编辑 $HADOOP_HOME/etc/hadoop/core-site.xml 文件,配置 HDFS 的默认文件系统和临时目录:

bash 复制代码
vi $HADOOP_HOME/etc/hadoop/core-site.xml
XML 复制代码
<configuration>
    <!-- 指定 HDFS 的默认文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://Master:9000</value>
    </property>
    <!-- 配置 Hadoop 的临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-tmp</value>
    </property>
</configuration>

3. 配置 hdfs-site.xml

编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 文件,配置 HDFS 的相关参数:

XML 复制代码
<configuration>
    <!-- 设置数据块的副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 配置 NameNode 的 HTTP 地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>Master:9870</value>
    </property>
</configuration>

4. 配置 yarn-site.xml

编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml 文件,配置 YARN 的相关参数:

XML 复制代码
<configuration>
    <!-- 指定 ResourceManager 的主机名 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>Master</value>
    </property>
    <!-- 配置 NodeManager 的本地目录 -->
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/opt/yarn-local</value>
    </property>
    <!-- 配置 ResourceManager 的 Web UI 地址 -->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>Master:8088</value>
    </property>
</configuration>

5. 配置 mapred-site.xml

复制模板文件并编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml 文件,配置 MapReduce 的相关参数:

bash 复制代码
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
XML 复制代码
<configuration>
    <!-- 指定 MapReduce 作业运行在 YARN 上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 配置作业历史服务器的地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>Master:10020</value>
    </property>
    <!-- 配置作业历史服务器的 Web UI 地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>Master:19888</value>
    </property>
</configuration>

6. 配置 workers 文件

编辑 $HADOOP_HOME/etc/hadoop/workers 文件,添加集群中的从节点主机名:

bash 复制代码
Master
Slave1
Slave2

七、创建和设置目录

在所有节点上,创建 Hadoop 所需的目录并设置权限:

bash 复制代码
mkdir -p /opt/hadoop-tmp
mkdir -p /opt/yarn-local
chmod 755 /opt/hadoop-tmp
chmod 755 /opt/yarn-local

八、初始化 NameNode

在 Master 节点上,初始化 HDFS 文件系统:

bash 复制代码
hadoop namenode -format 


# 注意 Hadoop集群未运行前可运行此代码,运行后不能运行,否则以前的操作皆化为零

该命令会初始化 HDFS 的命名空间,并在 /opt/hadoop-tmp/dfs/name 目录下创建相关文件。

九、启动 Hadoop 集群

1. 启动 HDFS

在 Master 节点上,启动 NameNode 和 DataNode:

bash 复制代码
# 启动 HDFS
start-dfs.sh

该脚本会根据 workers 文件中的节点列表,依次在 Master 节点启动 NameNode,在 Slave1 和 Slave2 节点启动 DataNode。

2. 启动 YARN

在 Master 节点上,启动 ResourceManager 和 NodeManager:

bash 复制代码
# 启动 YARN
start-yarn.sh

该脚本会在 Master 节点启动 ResourceManager,在 Slave1 和 Slave2 节点启动 NodeManager。

3. 启动作业历史服务器

在 Master 节点上,启动 MapReduce 作业历史服务器:

bash 复制代码
mr-jobhistory-daemon.sh start historyserver

十、验证安装

1. 检查 HDFS 状态

在 Master 节点上,运行以下命令检查 HDFS 状态:

bash 复制代码
hdfs dfsadmin -report

该命令会显示 HDFS 的摘要信息,包括数据节点数量、存储容量等。

2. 访问 Web UI

通过这些 Web 界面,可以查看 Hadoop 集群的运行状态和资源使用情况。

十一、查看进程 jps

十二、总结

本文详细介绍了 Hadoop 集群的部署与配置过程,包括 JDK 解压与安装、IP 映射配置、环境变量配置、Hadoop 解压与安装、核心文件配置、目录创建、NameNode 初始化、集群启动以及安装验证等步骤。通过按照本文的步骤操作,可以成功搭建一个基础的 Hadoop 集群,为后续的大数据处理和分析奠定基础。在实际部署过程中,可能还需要根据具体的硬件环境和业务需求进行进一步的优化和调整。

相关推荐
时下握今几秒前
Flink术语
大数据
Matrix709 分钟前
Flink-学习路线
大数据·学习·flink
写完这行代码打球去17 分钟前
vscode更新后: 适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新
linux·windows·vscode
winner888135 分钟前
Hive SQL 精进系列:COALESCE 手册
hive·hadoop·sql
阳光九叶草LXGZXJ38 分钟前
达梦数据库-学习-10-SQL 注入 HINT 规则(固定执行计划)
linux·运维·数据库·sql·学习
Pee Wee41 分钟前
shell脚本一键更新部署docker中服务
运维·docker·容器
gallonyin43 分钟前
从WorkTool看RPA技术演进——移动端自动化的未来趋势
运维·自动化·rpa
蘑菇丁1 小时前
starrocks批量启停脚本
大数据
蘑菇丁1 小时前
ranger集成starrock报错
大数据
项目管理打工人1 小时前
项目管理系统在制造企业 IPD 研发管理中的应用实践
大数据·人工智能·科技·汽车·软件工程·团队开发·制造