Hadoop Linux 单机部署全攻略:从环境搭建到运行验证
Hadoop Linux 单机部署全攻略:从环境准备到运行验证
一、环境准备:基础条件与软件依赖
1.1 硬件与系统要求
Hadoop单机部署对硬件要求较低,但需满足基础运行条件:
- CPU:双核及以上(推荐Intel/AMD x86架构)
- 内存:至少4GB(建议8GB以上以支持数据缓存)
- 磁盘:20GB以上可用空间(数据存储与日志占用)
- 操作系统:Linux(推荐CentOS 7/8、Ubuntu 20.04 LTS等稳定版本)
关键点:避免使用虚拟化环境(如Docker)直接部署,因Hadoop依赖本地文件系统与网络接口,虚拟化可能引入性能损耗或配置复杂度。
1.2 软件依赖安装
Hadoop依赖Java环境与SSH服务,需提前安装:
# 安装OpenJDK 8(推荐版本)sudo apt-get update && sudo apt-get install openjdk-8-jdk -y # Ubuntusudo yum install java-1.8.0-openjdk-devel -y # CentOS# 验证Java安装java -version # 应输出1.8.x版本# 安装SSH服务(Hadoop依赖本地SSH免密登录)sudo apt-get install openssh-server -y # Ubuntusudo yum install openssh-server -y # CentOSsudo systemctl start sshd && sudo systemctl enable sshd
配置SSH免密登录:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成密钥对cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权列表chmod 600 ~/.ssh/authorized_keys # 修改权限ssh localhost # 测试免密登录
二、Hadoop安装与配置
2.1 下载与解压
从Apache官网下载稳定版Hadoop(以3.3.4为例):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gztar -xzvf hadoop-3.3.4.tar.gz -C /opt/ # 解压到/opt目录sudo chown -R $USER:$USER /opt/hadoop-3.3.4 # 修改权限
2.2 环境变量配置
编辑~/.bashrc文件,添加Hadoop路径:
export HADOOP_HOME=/opt/hadoop-3.3.4export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopsource ~/.bashrc # 使配置生效
2.3 核心配置文件修改
2.3.1 hadoop-env.sh
设置Java路径:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 根据实际路径修改
2.3.2 core-site.xml
配置HDFS默认名称节点与临时目录:
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/tmp/hadoop</value></property></configuration>
2.3.3 hdfs-site.xml
设置副本数为1(单机模式无需冗余):
<configuration><property><name>dfs.replication</name><value>1</value></property></configuration>
2.3.4 mapred-site.xml(可选)
配置MapReduce框架:
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
2.3.5 yarn-site.xml(可选)
配置YARN资源管理:
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>
三、启动与验证
3.1 格式化HDFS
首次启动前需格式化名称节点:
hdfs namenode -format # 输出"successfully formatted"表示成功
3.2 启动服务
start-dfs.sh # 启动HDFS(NameNode+DataNode)start-yarn.sh # 启动YARN(ResourceManager+NodeManager,可选)
验证服务状态:
jps # 应看到NameNode、DataNode、SecondaryNameNode(HDFS)和ResourceManager、NodeManager(YARN)进程
3.3 运行示例程序
测试Hadoop功能:
# 创建HDFS目录hdfs dfs -mkdir /input# 上传本地文件到HDFSecho "Hello Hadoop" > test.txthdfs dfs -put test.txt /input# 运行WordCount示例hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /input /output# 查看结果hdfs dfs -cat /output/part-r-00000
四、常见问题与解决方案
4.1 端口冲突
现象:启动时报Address already in use。
解决:修改配置文件中的端口(如core-site.xml的9000),或终止占用端口的进程:
netstat -tulnp | grep 9000 # 查找占用进程kill -9 <PID> # 终止进程
4.2 权限不足
现象:HDFS操作报Permission denied。
解决:修改HDFS目录权限或以HDFS用户操作:
hdfs dfs -chmod -R 777 / # 临时开放权限(不推荐生产环境)sudo -u hdfs hdfs dfs -ls / # 以hdfs用户操作
4.3 内存不足
现象:启动时报OutOfMemoryError。
解决:调整JVM内存参数(修改hadoop-env.sh):
export HADOOP_HEAPSIZE=1024 # 设置堆内存为1GB
五、优化建议
- 日志管理:配置
log4j.properties文件,将日志输出到单独文件,避免占用控制台。 - 数据备份:定期备份
/tmp/hadoop目录,防止数据丢失。 - 性能调优:根据任务类型调整
mapreduce.map.memory.mb和mapreduce.reduce.memory.mb参数。
六、总结
Hadoop Linux单机部署是学习Hadoop生态的起点,通过本文的步骤,开发者可快速搭建一个功能完整的单机环境,为后续集群部署与复杂任务开发奠定基础。实际生产中需结合集群规模与业务需求进行参数调优与高可用设计。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!