大数据 HADOOP 平台部署教程
本文将分步指导完成 HADOOP 分布式集群的部署,适用于虚拟机测试环境,也可作为生产环境部署的参考蓝本。
一、部署前期准备
1.1 节点规划与硬件配置
本次部署采用 1 主 2 从的集群架构,各节点角色及硬件配置建议如下表所示:
|-------------|------------------|----|
| 节点角色 | 硬件配置建议 | 数量 |
| NameNode(主) | 4 核、8G 内存、30G 硬盘 | 1 |
| DataNode(从) | 2 核、4G 内存、30G 硬盘 | 2 |
1.2 操作系统选择
所有节点统一使用Centos7 系统,该系统相关技术资料丰富,遇到问题时便于检索解决方案。
1.3 系统基础配置
由于为虚拟机测试环境,仅需完成以下基础配置:
- 关闭防火墙
- 关闭 SElinux
1.4 软件与工具准备
1.4.1 核心软件版本
|--------|-------------------------|
| 软件名称 | 软件版本 |
| JAVA | jdk-8u471-linux-x64.tar |
| HADOOP | hadoop-3.1.3.tar |
1.4.2 必备系统工具
|------|-------|
| 工具名称 | 功能 |
| VIM | 文本编辑器 |
| SSH | 远程连接 |
1.5 Hadoop 核心配置文件介绍
Hadoop 的核心配置文件均集中在$HADOOP_HOME/etc/hadoop目录下,需根据集群架构针对性修改,各文件核心配置项如下:
|------------------------|----------------------------------------------------------------------------------------------------------------------------------|
| 配置文件 | 核心配置项 |
| core-site.xml | fs.defaultFS(HDFS 地址,如 hdfs://cluster:9000)、hadoop.tmp.dir(临时目录) |
| hdfs-site.xml | dfs.replication(副本数,生产环境建议 3)、dfs.namenode.secondary.http-address(备 NameNode 地址)、dfs.ha.namenodes(高可用节点) |
| yarn-site.xml | yarn.resourcemanager.address(资源管理器地址)、yarn.nodemanager.aux-services(mapreduce_shuffle)、yarn.resourcemanager.ha.enabled(YARN 高可用) |
| mapred-site.xml | mapreduce.framework.name(yarn)、mapreduce.jobhistory.address(历史服务器) |
| hadoop-env.sh | JAVA_HOME、HADOOP_OPTS(JVM 参数,如 - Xmx10240m)、HADOOP_LOG_DIR(日志目录) |
| workers(slaves) | 所有 DataNode/NodeManager 节点的主机名 / IP |
| capacity-scheduler.xml | 资源调度策略(队列、内存 / CPU 配额,生产环境需定制) |
二、Hadoop 完全分布式安装配置步骤
步骤 1:复制安装包并解压 JDK
- 登录 Master 节点,创建相关目录:
mkdir -p /opt/software
mkdir -p /opt/module
- 从宿主机复制安装包到 Master 的/opt/software目录:
scp /opt/hadoop-3.1.3.tar.gz root@Master:/opt/software/
scp /opt/jdk-8u212-linux-x64.tar.gz root@Master:/opt/software/
- 解压 JDK 到/opt/module目录:
tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
步骤 2:配置 JDK 环境变量并验证
- 编辑/etc/profile文件:
vi /etc/profile
- 在文件末尾添加 JDK 环境变量:
# JDK环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 使环境变量生效:
source /etc/profile
- 验证 JDK 安装,分别执行以下命令并截图留存:
java -version
javac
步骤 3:配置 host 与免密登录,分发 JDK
3.1 配置 hosts 文件
三个节点均需执行以下操作:
- 编辑/etc/hosts文件:
vi /etc/hosts
- 添加如下内容(替换为节点实际 IP):
192.168.x.x master
192.168.x.x slave1
192.168.x.x slave2
3.2 配置免密登录
仅在 Master 节点执行以下命令:
# 生成免密密钥,一路回车无密码
ssh-keygen -t rsa -P ""
# 分发密钥到所有节点
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
3.3 分发 JDK 到从节点
# 先在slave1、slave2创建/opt/module目录
ssh slave1 "mkdir -p /opt/module"
ssh slave2 "mkdir -p /opt/module"
# 复制JDK文件到从节点
scp -r /opt/module/jdk1.8.0_212 root@slave1:/opt/module/
scp -r /opt/module/jdk1.8.0_212 root@slave2:/opt/module/
步骤 4:解压并配置 Hadoop,初始化 namenode
4.1 解压并分发 Hadoop
- 解压 Hadoop 到/opt/module目录:
tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/
- 分发 Hadoop 到 slave1、slave2:
scp -r /opt/module/hadoop-3.1.3 root@slave1:/opt/module/
scp -r /opt/module/hadoop-3.1.3 root@slave2:/opt/module/
4.2 修改 Hadoop 核心配置文件
- 编辑/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data/tmp</value>
</property>
</configuration>
- 编辑/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
- 编辑/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
- 编辑/opt/module/hadoop-3.1.3/etc/hadoop/workers(替换原内容):
master
slave1
slave2
4.3 配置 Hadoop 环境变量
- 编辑/etc/profile文件,添加如下内容:
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使环境变量生效:
source /etc/profile
4.4 创建普通用户运行 Hadoop(推荐)
为保障集群安全性,建议使用普通用户启动 Hadoop 服务,操作如下:
- 创建普通用户及用户组:
# 创建用户组
groupadd hadoop
# 创建用户并指定组,同时创建家目录
useradd -g hadoop -m hadoop
# 设置用户密码(按提示输入密码)
passwd hadoop
- 授权 Hadoop 安装目录权限:
chown -R hadoop:hadoop /usr/local/hadoop # 替换为实际Hadoop安装路径
chmod -R 755 /usr/local/hadoop
- 切换到 hadoop 用户:
su - hadoop # 切换用户并加载对应环境变量
4.5 初始化 namenode
执行以下命令初始化 namenode,并将命令及结果截图留存:
hdfs namenode -format
步骤 5:启动 Hadoop 集群并查看进程
- 启动 HDFS 和 YARN 服务:
start-dfs.sh
start-yarn.sh
- 分别在 Master 和 slave1 节点执行jps命令并截图,验证进程是否正常:
jps
-
- Master 节点正常进程:NameNode、ResourceManager、SecondaryNameNode、Jps
-
- slave1 节点正常进程:DataNode、NodeManager、Jps