CentOS环境下单机Hadoop部署全指南
2025.09.17 11:04浏览量:0简介:本文详细介绍在CentOS系统上部署单机版Hadoop的完整流程,涵盖环境准备、安装配置及基础操作验证,帮助开发者快速搭建本地大数据开发环境。
一、部署前环境准备
1.1 系统版本选择
推荐使用CentOS 7或8版本,这两个版本在Hadoop社区中经过充分验证。建议选择最小化安装镜像,避免不必要的服务占用资源。安装完成后执行cat /etc/redhat-release
确认系统版本,使用free -h
和df -h
检查内存(建议≥8GB)和磁盘空间(建议≥50GB)。
1.2 用户权限管理
创建专用用户组和用户:
sudo groupadd hadoop
sudo useradd -g hadoop hduser
sudo passwd hduser # 设置密码
将当前用户加入sudoers(可选但推荐):
sudo usermod -aG wheel hduser # CentOS 7
# 或
sudo usermod -aG wheel $(whoami) # 为当前用户添加权限
1.3 网络与防火墙配置
关闭SELinux临时生效:
sudo setenforce 0
永久禁用需修改/etc/selinux/config
文件。防火墙配置:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
或开放特定端口:
sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent
sudo firewall-cmd --reload
二、Java环境搭建
2.1 OpenJDK安装
Hadoop 3.x推荐使用Java 11:
sudo yum install -y java-11-openjdk-devel
验证安装:
java -version
javac -version
设置JAVA_HOME环境变量:
echo "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))" >> ~/.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc
2.2 版本兼容性说明
Hadoop 2.x支持Java 7/8,Hadoop 3.x建议使用Java 8/11。可通过hadoop checkenvironment
验证Java版本兼容性。
三、Hadoop安装配置
3.1 下载与解压
从Apache官网获取稳定版(推荐3.3.6):
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /opt/
sudo chown -R hduser:hadoop /opt/hadoop-3.3.6
3.2 核心配置文件修改
etc/hadoop/hadoop-env.sh
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-3.3.6/tmp</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机模式设为1 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-3.3.6/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-3.3.6/data/datanode</value>
</property>
</configuration>
3.3 格式化与启动
创建必要目录:
sudo mkdir -p /opt/hadoop-3.3.6/{tmp,data/{namenode,datanode}}
sudo chown -R hduser:hadoop /opt/hadoop-3.3.6
执行格式化(仅首次需要):
hdfs namenode -format
启动HDFS服务:
start-dfs.sh
验证进程:
jps
# 应看到NameNode、DataNode、SecondaryNameNode
四、基础操作验证
4.1 Web界面访问
- NameNode界面:http://localhost:9870
- ResourceManager界面(需启动YARN):http://localhost:8088
4.2 命令行操作
创建HDFS目录:
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hduser
上传测试文件:
echo "Hello Hadoop" > testfile.txt
hdfs dfs -put testfile.txt /user/hduser/
查看文件:
hdfs dfs -ls /user/hduser/
hdfs dfs -cat /user/hduser/testfile.txt
4.3 运行示例MapReduce
编译官方示例:
cd $HADOOP_HOME/share/hadoop/mapreduce
hadoop com.sun.tools.javac.Main *.java
jar cf mr.jar *.class
执行计算:
hadoop jar mr.jar pi 2 5
五、常见问题解决方案
5.1 权限拒绝问题
症状:Permission denied
错误
解决方案:
# 方法1:修改HDFS权限
hdfs dfs -chmod -R 777 /
# 方法2:修改配置文件
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
5.2 端口冲突处理
使用netstat -tulnp
检查端口占用,修改core-site.xml
和mapred-site.xml
中的端口配置。
5.3 日志分析技巧
主要日志位置:
- NameNode日志:
$HADOOP_HOME/logs/hadoop-*-namenode-*.log
- DataNode日志:
$HADOOP_HOME/logs/hadoop-*-datanode-*.log
使用tail -f
实时监控日志变化。
六、性能优化建议
内存配置:修改
mapred-site.xml
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
本地缓存:在
core-site.xml
中设置<property>
<name>io.file.buffer.size</name>
<value>131072</value> <!-- 128KB -->
</property>
垃圾回收优化:在
hadoop-env.sh
中添加JVM参数export HADOOP_OPTS="-XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=35"
通过以上步骤,您可以在CentOS系统上成功部署并运行单机版Hadoop环境。建议定期备份配置文件和数据目录,同时关注Apache Hadoop官方文档获取最新版本更新和安全补丁。
发表评论
登录后可评论,请前往 登录 或 注册