You've already forked www.colben.cn
update
This commit is contained in:
262
content/post/hdp2.md
Normal file
262
content/post/hdp2.md
Normal file
@@ -0,0 +1,262 @@
|
||||
---
|
||||
title: "hadoop2 集群部署"
|
||||
date: 2023-05-23T10:00:00+08:00
|
||||
lastmod: 2023-05-23T10:00:00+08:00
|
||||
keywords: []
|
||||
tags: ["hadoop"]
|
||||
categories: ["storage"]
|
||||
---
|
||||
|
||||
## 环境
|
||||
操作系统 | 主机名 | 地址 | 数据目录 | 运行组件
|
||||
---- | ---- | ---- | ---- | ----
|
||||
Rocky9 | hdp-nn | 192.168.8.1/24 | /data/hdp-nn | Namenode
|
||||
Rocky9 | hdp-snn | 192.168.8.2/24 | /data/hdp-snn | SecondaryNamenode
|
||||
Rocky9 | hdp-rm | 192.168.8.3/24 | - | ResourceManager
|
||||
Rocky9 | hdp-slave10 | 192.168.8.10/24 | /data/hdp-dn | Datanode, NodeManager
|
||||
Rocky9 | hdp-slave11 | 192.168.8.11/24 | /data/hdp-dn | Datanode, NodeManager
|
||||
|
||||
## 服务器初始配置
|
||||
- 在**全部主机**上执行如下操作
|
||||
- 禁用防火墙
|
||||
- 禁用 selinux
|
||||
- 配置时间同步
|
||||
- 配置主机名解析
|
||||
```bash
|
||||
echo "192.168.8.1 hdp-nn" >> /etc/hosts
|
||||
echo "192.168.8.2 hdp-snn" >> /etc/hosts
|
||||
echo "192.168.8.3 hdp-dn" >> /etc/hosts
|
||||
echo "192.168.8.10 hdp-slave10" >> /etc/hosts
|
||||
echo "192.168.8.11 hdp-slave11" >> /etc/hosts
|
||||
```
|
||||
|
||||
## ssh 免密登录
|
||||
- 配置 **hdp-nn** 可以 ssh 免密登录 hdp-nn、hdp-snn 和 hdp-slaveXX
|
||||
```bash
|
||||
# 在 hdp-nn 上执行如下操作
|
||||
ssh-copy-id hdp-nn
|
||||
ssh-copy-id hdp-snn
|
||||
ssh-copy-id hdp-slave10
|
||||
ssh-copy-id hdp-slave11
|
||||
```
|
||||
|
||||
- 配置 **hdp-rm** 可以 ssh 免密登录 hdp-rm 和 hdp-slaveXX
|
||||
```bash
|
||||
# 在 hdp-rm 上执行如下操作
|
||||
ssh-copy-id hdp-rm
|
||||
ssh-copy-id hdp-slave10
|
||||
ssh-copy-id hdp-slave11
|
||||
```
|
||||
|
||||
## 部署 jdk8 环境
|
||||
- 在**全部主机**上执行如下操作
|
||||
- 上传 jdk-8u311-linux-x64.tar.gz,解压
|
||||
```bash
|
||||
tar zxf jdk-8u311-linux-x64.tar.gz
|
||||
mv jdk1.8.0_311 /opt/jdk
|
||||
```
|
||||
|
||||
- 配置 jdk 环境变量
|
||||
```bash
|
||||
echo 'export JAVA_HOME=/opt/jdk' > /etc/profile.d/jdk.sh
|
||||
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile.d/jdk.sh
|
||||
source /etc/profile.d/jdk.sh
|
||||
```
|
||||
|
||||
## 部署 hadoop 环境
|
||||
- 在**全部主机**上执行如下操作
|
||||
- 下载 hadoop 2.10.2 部署包,解压
|
||||
```bash
|
||||
curl -LO https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz
|
||||
tar zxf hadoop-2.10.2.tar.gz
|
||||
mv hadoop-2.10.2 /opt/hdp
|
||||
```
|
||||
|
||||
- 配置 hadoop 环境变量
|
||||
```bash
|
||||
echo 'export HADOOP_HOME=/opt/hdp' > /etc/profile.d/hdp.sh
|
||||
echo 'export PATH=$HADOOP_HOME/bin:$PATH' >> /etc/profile.d/hdp.sh
|
||||
# 不推荐把 $HADOOP_HOME/sbin 加入环境变量 PATH.
|
||||
source /etc/profile.d/hdp.sh
|
||||
```
|
||||
|
||||
### 修改 hadoop-env.sh
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh,指定 JAVA_HOME 环境变量
|
||||
```bash
|
||||
export JAVA_HOME=/opt/jdk
|
||||
```
|
||||
|
||||
### 修改 core-site.xml
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/core-site.xml,参考内容如下
|
||||
```xml
|
||||
<configuration>
|
||||
<property>
|
||||
<!-- namenode 的 hdfs 协议通信地址 -->
|
||||
<name>fs.defaultFS</name>
|
||||
<value>hdfs://hdp-nn:8020</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- hadoop 集群存储临时文件的目录,datanode 里建议挂载独立盘 -->
|
||||
<name>hadoop.tmp.dir</name>
|
||||
<value>/tmp/hdp</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- hive beeline 登录用户 root -->
|
||||
<name>hadoop.proxyuser.root.hosts</name>
|
||||
<value>*</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- hive beeline 登录用户 root -->
|
||||
<name>hadoop.proxyuser.root.groups</name>
|
||||
<value>*</value>
|
||||
</property>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
### 修改 hdfs-site.xml
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml,参考内容如下
|
||||
```xml
|
||||
<configuration>
|
||||
<property>
|
||||
<!-- namenode 元数据存放位置,可指定多个目录(用逗号分隔)实现容错 -->
|
||||
<name>dfs.namenode.name.dir</name>
|
||||
<value>/data/hdp_nn</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- secondary namenode 镜像数据存放位置,可指定多个目录(用逗号分隔)实现容错 -->
|
||||
<name>dfs.namenode.checkpoint.dir</name>
|
||||
<value>/data/hdp_snn</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- datanode 数据块存放位置,可指定多个目录(用逗号分隔)实现容错 -->
|
||||
<name>dfs.datanode.data.dir</name>
|
||||
<value>/data/hdp_dn</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- namenode 的 Web UI 访问地址 -->
|
||||
<name>dfs.namenode.http-address</name>
|
||||
<value>hdp-nn:9870</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- secondary namenode 的主机和端口 -->
|
||||
<name>dfs.namenode.secondary.http-address</name>
|
||||
<value>hdp-snn:9868</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- hdfs 副本数量,默认3,这里设置为2,保证两个 datanode 时数据有冗余 -->
|
||||
<name>dfs.replication</name>
|
||||
<value>2</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- 启用 webhdfs api -->
|
||||
<name>dfs.webhdfs.enabled</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
### 修改 yarn-site.xml
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml,参考内容如下
|
||||
```xml
|
||||
<configuration>
|
||||
<property>
|
||||
<name>yarn.nodemanager.aux-services</name>
|
||||
<value>mapreduce_shuffle</value>
|
||||
</property>
|
||||
<property>
|
||||
<!--resourcemanager 的主机名-->
|
||||
<name>yarn.resourcemanager.hostname</name>
|
||||
<value>hdp-rm</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- resourcemanager 的 Web UI 访问地址 (默认端口8088) -->
|
||||
<name>yarn.resourcemanager.webapp.address</name>
|
||||
<value>hdp-rm:8088</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- (可选) 开启日志聚集功能,方便在Web UI上查看已完成任务的日志 -->
|
||||
<name>yarn.log-aggregation-enable</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- (可选) 日志保留时间(7天) -->
|
||||
<name>yarn.log-aggregation.retain-seconds</name>
|
||||
<value>604800</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- 使用 tez 时需关闭 yarn 虚拟内存检查 -->
|
||||
<name>yarn.nodemanager.vmem-check-enabled</name>
|
||||
<value>false</value>
|
||||
</property>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
### 修改 mapred-env.sh
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/mapred-env.sh,指定 JAVA_HOME 环境变量
|
||||
```bash
|
||||
export JAVA_HOME=/opt/jdk
|
||||
```
|
||||
|
||||
### 修改 mapred-site.xml
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml,参考内容如下
|
||||
```xml
|
||||
<configuration>
|
||||
<property>
|
||||
<name>mapreduce.framework.name</name>
|
||||
<value>yarn</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- MapReduce JobHistory Server 地址 -->
|
||||
<name>mapreduce.jobhistory.address</name>
|
||||
<value>hdp-rm:10020</value>
|
||||
</property>
|
||||
<property>
|
||||
<!-- MapReduce JobHistory Server Web UI 地址 (默认端口19888) -->
|
||||
<name>mapreduce.jobhistory.webapp.address</name>
|
||||
<value>hdp-rm:19888</value>
|
||||
</property>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
### 修改 slaves
|
||||
- 编辑 $HADOOP_HOME/etc/hadoop/slaves,替换成全部的 slave 主机,参考内容如下
|
||||
```txt
|
||||
hdp-slave10
|
||||
hdp-slave11
|
||||
```
|
||||
|
||||
### 创建临时目录和数据目录
|
||||
- 在 **hdp-nn** 上创建临时目录和数据目录
|
||||
```bash
|
||||
mkdir /tmp/hdp
|
||||
mkdir /data/hdp_nn
|
||||
```
|
||||
|
||||
- 在 **hdp-snn** 上创建临时目录和数据目录
|
||||
```bash
|
||||
mkdir /tmp/hdp
|
||||
mkdir /data/hdp_snn
|
||||
```
|
||||
|
||||
- 在 **hdp-rm** 上创建临时目录
|
||||
```bash
|
||||
mkdir /tmp/hdp
|
||||
```
|
||||
|
||||
- 在 **hdp-slaveXX** 上创建临时目录和数据目录
|
||||
```bash
|
||||
mkdir /tmp/hdp #建议挂载独立盘
|
||||
mkdir /data/hdp_dn #建议挂载独立盘
|
||||
```
|
||||
|
||||
## 启动 hadoop 集群
|
||||
- 在 **hdp-nn** 上启动 dfs 集群
|
||||
```bash
|
||||
/opt/hdp/sbin/start-dfs.sh
|
||||
```
|
||||
|
||||
- 在 **hdp-rm** 上启动 yarn 集群
|
||||
```bash
|
||||
/opt/hdp/sbin/start-yarn.sh
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user