Hadoop单机部署全攻略:从入门到实践
2025.09.17 11:04浏览量:0简介:本文详细解析Hadoop单机部署的全流程,涵盖环境准备、安装配置、启动验证及常见问题处理,助力开发者快速搭建本地Hadoop开发环境。
Hadoop单机部署全攻略:从入门到实践
一、为什么选择Hadoop单机部署?
Hadoop作为分布式计算的标杆框架,通常以集群形式运行。但对于开发者而言,单机部署具有不可替代的价值:降低学习门槛(无需多台服务器)、快速验证功能(如MapReduce作业调试)、开发环境隔离(避免影响生产集群)。单机模式通过伪分布式配置模拟集群行为,核心组件(HDFS、YARN、MapReduce)均可独立运行,是学习Hadoop原理和开发API的理想环境。
二、环境准备:硬件与软件要求
1. 硬件配置建议
- 操作系统:Linux(推荐Ubuntu 20.04/CentOS 7+)或Windows(需WSL2或Cygwin模拟环境)
- 内存:至少8GB(建议16GB+,避免OOM错误)
- 磁盘空间:至少20GB可用空间(HDFS默认存储路径需预留)
- Java环境:JDK 8或11(Hadoop 3.x不再支持JDK 7)
2. 软件依赖安装
# Ubuntu示例:安装OpenJDK 11
sudo apt update
sudo apt install openjdk-11-jdk -y
# 验证Java版本
java -version
# 应输出:openjdk version "11.0.xx"
三、Hadoop安装与配置详解
1. 下载与解压
从Apache官网下载稳定版(如3.3.6),解压至/opt/hadoop
:
sudo wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /opt/
sudo ln -s /opt/hadoop-3.3.6 /opt/hadoop # 创建软链接
2. 核心配置文件修改
(1)hadoop-env.sh
:设置Java路径
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(2)core-site.xml
:定义HDFS默认路径
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(3)hdfs-site.xml
:配置NameNode数据目录
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机模式设为1 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value>
</property>
</configuration>
(4)mapred-site.xml
:启用YARN资源管理
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)yarn-site.xml
:配置ResourceManager
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
</configuration>
四、启动与验证流程
1. 格式化HDFS(首次运行必需)
hdfs namenode -format
# 输出"Storage directory ... has been successfully formatted"即为成功
2. 启动Hadoop服务
# 启动HDFS和YARN
start-dfs.sh
start-yarn.sh
# 或使用伪分布式启动脚本(Hadoop 3.x推荐)
/opt/hadoop/sbin/start-all.sh
3. 验证服务状态
# 检查进程
jps
# 应看到:NameNode、DataNode、ResourceManager、NodeManager、SecondaryNameNode
# 访问Web UI
# HDFS: http://localhost:9870
# YARN: http://localhost:8088
五、实战:运行WordCount示例
1. 准备输入文件
echo "Hello Hadoop World" > input.txt
hdfs dfs -mkdir /input
hdfs dfs -put input.txt /input
2. 编译并运行MapReduce作业
# 编译示例(需Maven或直接使用Hadoop jar)
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output
# 查看结果
hdfs dfs -cat /output/part-r-00000
# 应输出:Hello 1, Hadoop 1, World 1
六、常见问题与解决方案
1. 端口冲突
- 现象:启动时报
Address already in use
- 解决:修改
core-site.xml
中的端口(如9000→9001),或终止占用进程:sudo netstat -tulnp | grep 9000
sudo kill -9 <PID>
2. 权限不足
- 现象:
Permission denied
错误 - 解决:
sudo chown -R $USER:$USER /opt/hadoop/data
chmod 755 /opt/hadoop/bin/*
3. 内存溢出
- 现象:
OutOfMemoryError
- 解决:修改
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>
七、进阶优化建议
- 日志管理:配置
log4j.properties
将日志输出至文件 - 数据压缩:在
mapred-site.xml
中启用Snappy压缩:<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
- 环境变量持久化:将
export HADOOP_HOME=/opt/hadoop
等命令添加至~/.bashrc
八、总结与展望
Hadoop单机部署是掌握大数据技术的第一步。通过本文的配置,开发者已具备:
- 本地运行MapReduce作业的能力
- 调试HDFS文件操作的基础
- 理解YARN资源调度的原理
下一步可探索:
- 部署HBase/Hive等生态组件
- 编写自定义MapReduce程序
- 迁移至真实集群环境
提示:生产环境务必使用集群模式,单机部署仅限开发和测试场景。
发表评论
登录后可评论,请前往 登录 或 注册