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 slave1.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 slave1.3 防火墙与SELinux
确保防火墙允许Hadoop相关端口通信:
sudo ufw allow 22 sudo ufw allow 9000 sudo ufw allow 50070 sudo ufw enable2. JDK安装与配置
Hadoop运行依赖Java环境,推荐使用OpenJDK 8:
2.1 安装OpenJDK
sudo apt update sudo apt install -y openjdk-8-jdk2.2 环境变量配置
编辑/etc/profile文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin使配置立即生效:
source /etc/profile验证安装:
java -version3. 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/hadoop3.2 环境变量配置
在/etc/profile中添加Hadoop环境变量:
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin3.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/workers4.2 格式化HDFS
首次启动前需要格式化NameNode:
hdfs namenode -format4.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 leave5.4 连接超时问题
错误现象:
Retrying connect to server: slave/192.168.1.101:41589解决方案: 检查网络连接和防火墙设置,确保所有节点间的通信端口开放。