Hadoop 3.2.3 分布式集群部署:Ubuntu 20.04 双节点 5 步配置与 4 大常见错误排查

Hadoop 3.2.3 分布式集群部署:Ubuntu 20.04 双节点 5 步配置与 4 大常见错误排查

1. 环境准备与系统配置

在开始部署Hadoop集群之前,需要确保两台Ubuntu 20.04服务器已正确配置。以下是基础环境准备的关键步骤:

1.1 主机名与hosts配置

首先需要为两台服务器分别设置主机名(如master和slave),并确保它们能够通过主机名互相解析:

# 在master节点执行 sudo hostnamectl set-hostname master # 在slave节点执行 sudo hostnamectl set-hostname slave

接着修改所有节点的/etc/hosts文件,添加IP与主机名的映射关系:

192.168.1.100 master 192.168.1.101 slave

1.2 SSH免密登录配置

Hadoop集群管理需要主节点能够无密码访问所有从节点。以下是配置步骤:

# 在master节点生成密钥对 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 将公钥复制到本地和slave节点 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh-copy-id -i ~/.ssh/id_rsa.pub slave

1.3 防火墙与SELinux

确保防火墙允许Hadoop相关端口通信:

sudo ufw allow 22 sudo ufw allow 9000 sudo ufw allow 50070 sudo ufw enable

2. JDK安装与配置

Hadoop运行依赖Java环境,推荐使用OpenJDK 8:

2.1 安装OpenJDK

sudo apt update sudo apt install -y openjdk-8-jdk

2.2 环境变量配置

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

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin

使配置立即生效:

source /etc/profile

验证安装:

java -version

3. Hadoop安装与基础配置

3.1 下载与解压

从Apache官网下载Hadoop 3.2.3并解压:

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.2.3/hadoop-3.2.3.tar.gz tar -xzvf hadoop-3.2.3.tar.gz -C /usr/local/ mv /usr/local/hadoop-3.2.3 /usr/local/hadoop

3.2 环境变量配置

在/etc/profile中添加Hadoop环境变量:

export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3.3 核心配置文件修改

Hadoop的核心配置文件位于$HADOOP_HOME/etc/hadoop目录下:

core-site.xml配置:

<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>

hdfs-site.xml配置:

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data</value> </property> </configuration>

4. 集群部署与启动

4.1 配置workers文件

在master节点上配置从节点列表:

echo "slave" > $HADOOP_HOME/etc/hadoop/workers

4.2 格式化HDFS

首次启动前需要格式化NameNode:

hdfs namenode -format

4.3 启动集群

使用以下命令启动HDFS和YARN:

start-dfs.sh start-yarn.sh

验证集群状态:

jps # 应在master看到NameNode、ResourceManager等进程

5. 常见错误排查

5.1 NativeCodeLoader警告

错误现象:

WARN util.NativeCodeLoader: Unable to load native-hadoop library

解决方案:

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

5.2 MRAppMaster类加载失败

错误现象:

Class org.apache.hadoop.mapreduce.v2.app.MRAppMaster not found

解决方案: 在yarn-site.xml中添加:

<property> <name>yarn.application.classpath</name> <value>$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*</value> </property>

5.3 安全模式问题

错误现象:

Name node is in safe mode

解决方案:

hdfs dfsadmin -safemode leave

5.4 连接超时问题

错误现象:

Retrying connect to server: slave/192.168.1.101:41589

解决方案: 检查网络连接和防火墙设置,确保所有节点间的通信端口开放。