搭建Hadoop-2.9.2集群
准备
在安装 Hadoop 之前,请确认集群的每台机器上均安装 JDK,以及搭配环境变量。
- 添加Java环境变量
vim ~/.bash_profile
# Java Environment
JAVA_HOME=/usr/java/latest
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH=${JAVA_HOME}/bin:$PATH
PATH=$PATH:$HOME/bin
export PATH
```
- 生效
source ~/.bash_profile
### 在三台机器/etc/hosts写入对应机器,修改对应 hostname
172.29.32.21 openshift1
172.29.32.22 openshift2
172.29.32.23 openshift3
### 配置ssh无密码登陆(见之前文章)
### CentOS7关闭防火墙
- 查看防火墙状态
firewall-cmd --state
- 停止firewall
systemctl stop firewalld.service
- 禁止firewall开机启动
systemctl disable firewalld.service
## 下载二进制文件
cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
tar -zxvf hadoop-2.9.2.tar.gz -C .
## 修改配置文件
vim /etc/profile
Flink Environment
export HADOOP_HOME=/opt/hadoop-2.9.2
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
### core-site.xml
指定 NameNode 的 IP 地址和端口号
### hdfs-site.xml
dfs.replication 指定备份数目为 3,dfs.name.dir 指定 NameNode 的文件存储路径,dfs.data.dir 指定 DataNode 的文件存储路径。
### mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
然后修改mapred-site.xml的内容
### yarn-site.xml
### slaves
添加 slave 节点的 hostname 到该文件中
### 设置环境变量
修改hadoop-env.sh
## 分发配置文件
## 启动集群
### 格式化 HDFS
hdfs namenode -format
### 启动集群
start-dfs.sh
start-yarn.sh
### 使用 jps 命令查看服务运行情况
- master节点中运行的服务
25928 SecondaryNameNode
25742 NameNode
26387 Jps
26078 ResourceManager
- slave节点中运行的服务
24002 NodeManager
23899 DataNode
24179 Jps
### 提交示例任务
## 坑
### 多次NameNode执行format后DataNode启动不了解决方案
1.问题
执行start-dfs.sh后在进程中查看jps,发现NameNode启动,但DataNode没有
2.原因
在失败的.log文件中看到datanode的clusterID 和 namenode的clusterID 不一致
原因可能是多次Hadoop namenode -format导致clusterID不一致
3.解决方法
1)先去hadoop路径下的配置文件hdfs-site.xml可知dfs.namenode.name.dir的地址和dfs.datanode.data.dir的地址
默认:file://${hadoop.tmp.dir}/dfs/name、file://${hadoop.tmp.dir}/dfs/data
(/opt/module/hadoop-2.7.2/data/tmp/dfs/name、/opt/module/hadoop-2.7.2/data/tmp/dfs/data)
2)在.../name/current/VERSION 中获得clusterID
3)将clusterID修改到.../dfs/data/current/VERSION(所有启动不了DataNode的节点都要改)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!