CentOS系统下Hadoop单机模式部署指南
2025.09.12 11:09浏览量:3简介:本文详细介绍在CentOS 7/8系统上以单机模式部署Hadoop 3.x的完整流程,涵盖环境准备、依赖安装、配置文件修改及验证测试等关键环节,适合开发测试与教学场景使用。
CentOS系统下Hadoop单机模式部署指南
一、环境准备与系统要求
在CentOS系统上部署Hadoop单机模式前,需确保系统满足以下基础条件:
- 系统版本:推荐使用CentOS 7或CentOS 8(需关闭SELinux并配置防火墙)
- 硬件配置:至少4GB内存(建议8GB+)、20GB可用磁盘空间
- 网络环境:需配置静态IP地址,确保网络连通性
- 用户权限:建议创建专用用户(如hadoopuser)而非直接使用root
# 创建专用用户示例
sudo useradd -m hadoopuser
sudo passwd hadoopuser
sudo usermod -aG wheel hadoopuser # 授予sudo权限
二、依赖组件安装与配置
1. Java环境配置
Hadoop 3.x要求Java 8或11版本,推荐使用OpenJDK:
# 安装OpenJDK 11
sudo yum install -y java-11-openjdk-devel
# 验证安装
java -version
# 应输出类似:openjdk version "11.0.xx"
配置JAVA_HOME环境变量(修改~/.bashrc
或/etc/profile
):
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
2. SSH免密登录配置
单机模式虽不依赖分布式通信,但Hadoop组件启动时仍需SSH服务:
sudo yum install -y openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
# 生成密钥对(直接回车跳过密码)
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 验证SSH本地登录
ssh localhost
三、Hadoop安装与配置
1. 下载与解压
从Apache官网获取稳定版Hadoop(本文以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 hadoopuser:hadoopuser /opt/hadoop-3.3.6
2. 环境变量配置
修改~/.bashrc
文件:
echo 'export HADOOP_HOME=/opt/hadoop-3.3.6' >> ~/.bashrc
echo 'export PATH=$HADOOP_HOME/bin:$PATH' >> ~/.bashrc
echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
source ~/.bashrc
3. 核心配置文件修改
(1) hadoop-env.sh
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
# 取消以下行注释并修改
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export HADOOP_LOG_DIR=/var/log/hadoop
(2) core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-3.3.6/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(3) 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>
四、格式化与启动验证
1. 格式化HDFS文件系统
hdfs namenode -format
# 成功输出应包含"Storage directory ... has been successfully formatted"
2. 启动Hadoop服务
# 启动HDFS(单机模式只需启动NameNode和DataNode)
$HADOOP_HOME/sbin/start-dfs.sh
# 验证进程状态
jps
# 应显示NameNode、DataNode、SecondaryNameNode进程
3. 基础功能测试
(1) Web界面访问
- NameNode UI:http://localhost:9870
- DataNode UI:http://localhost:9864
(2) HDFS操作测试
# 创建测试目录
hdfs dfs -mkdir /test
# 上传本地文件
echo "Hello Hadoop" > test.txt
hdfs dfs -put test.txt /test/
# 查看文件列表
hdfs dfs -ls /test
# 下载文件验证
hdfs dfs -get /test/test.txt test_download.txt
cat test_download.txt
五、常见问题解决方案
1. 权限拒绝错误
现象:Permission denied: user=..., access=WRITE
解决:
# 修改HDFS目录权限
hdfs dfs -chmod -R 777 /
# 或创建专用用户并配置hdfs-site.xml的权限策略
2. 端口冲突问题
现象:Address already in use
解决:
# 修改配置文件中的端口号(如9000→9001)
netstat -tulnp | grep java # 确认占用端口
3. 内存不足错误
现象:Could not reserve enough space for object heap
解决:
修改hadoop-env.sh
中的内存参数:
export HADOOP_HEAPSIZE=1024 # 默认单位MB
export HADOOP_NAMENODE_OPTS="-Xms512m -Xmx1024m"
六、优化建议与扩展应用
- 日志管理:配置log4j.properties实现日志分级存储
- 监控集成:通过Ganglia或Prometheus监控单机运行状态
- 数据备份:定期备份namenode的metadata目录
- 版本升级:关注Apache官网的安全补丁更新
七、卸载清理流程
# 停止所有服务
$HADOOP_HOME/sbin/stop-dfs.sh
# 删除安装目录和数据
rm -rf /opt/hadoop-3.3.6
rm -rf /var/log/hadoop
# 清理环境变量
sed -i '/HADOOP_HOME/d' ~/.bashrc
sed -i '/HADOOP_CONF_DIR/d' ~/.bashrc
通过以上步骤,您可在CentOS系统上快速搭建Hadoop单机环境,该模式特别适用于:
- 开发阶段的单元测试
- 教学演示与原型验证
- 小规模数据处理实验
- 集群部署前的功能验证
建议后续根据实际需求向伪分布式或完全分布式模式迁移,以获得更完整的Hadoop生态体验。
发表评论
登录后可评论,请前往 登录 或 注册