您好,登录后才能下订单哦!
# Linux中如何搭建Hadoop单机模式
## 前言
Hadoop作为Apache基金会的开源分布式计算框架,已成为大数据处理领域的基石技术。虽然其核心价值在于分布式集群能力,但单机模式(Local/Standalone Mode)的搭建仍是学习Hadoop的重要起点。本文将详细介绍在Linux系统(以Ubuntu 22.04为例)上搭建Hadoop 3.x单机模式的完整流程,涵盖环境准备、配置优化及验证测试等关键环节。
---
## 一、环境准备
### 1.1 系统要求
- **操作系统**:Linux发行版(推荐Ubuntu/CentOS)
- **内存**:至少4GB(建议8GB)
- **磁盘空间**:20GB以上可用空间
- **Java环境**:JDK 8或11(Hadoop 3.x兼容版本)
### 1.2 安装依赖软件
```bash
# 更新软件包索引
sudo apt update
# 安装SSH和PDKSH(Hadoop脚本依赖)
sudo apt install -y ssh pdsh
# 安装Java开发环境
sudo apt install -y openjdk-11-jdk
# 验证Java安装
java -version
虽然单机模式不严格要求,但为后续伪分布式模式做准备:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh localhost # 测试免密登录
从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 ln -s /opt/hadoop-3.3.6 /opt/hadoop
编辑~/.bashrc
文件:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
使配置生效:
source ~/.bashrc
进入$HADOOP_HOME/etc/hadoop
目录:
echo "export JAVA_HOME=$JAVA_HOME" >> hadoop-env.sh
<configuration>
<property>
<name>fs.defaultFS</name>
<value>file:///</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>local</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
使用Hadoop自带的示例程序:
mkdir input
cp $HADOOP_HOME/etc/hadoop/*.xml input/
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'
cat output/*
预期看到类似输出:
1 dfsadmin
1 dfs.replication
hadoop fs -mkdir /test
hadoop fs -ls /
hadoop fs -put input/*.xml /test
hadoop fs -text /test/core-site.xml
现象:启动时报JAVA_HOME not set
解决:
# 确认Java安装路径
update-alternatives --config java
# 在hadoop-env.sh中显式设置
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
现象:Permission denied
错误
解决:
sudo chown -R $USER:$USER /opt/hadoop*
现象:作业执行被终止
解决:修改mapred-site.xml
:
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
</property>
修改$HADOOP_HOME/etc/hadoop/log4j.properties
:
hadoop.log.dir=/var/log/hadoop
在core-site.xml
中添加:
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
</property>
参数 | 推荐值 | 说明 |
---|---|---|
mapreduce.task.io.sort.mb | 256 | 排序内存大小(MB) |
mapreduce.map.sort.spill.percent | 0.8 | 溢写阈值 |
通过本文的步骤,您已成功在Linux系统上搭建了Hadoop单机模式。虽然此模式不涉及分布式功能,但为后续学习HDFS、YARN等核心组件奠定了基础。建议在掌握单机操作后,继续尝试伪分布式和完全分布式环境的搭建。
学习建议:
1. 使用hadoop --help
查看完整命令列表
2. 阅读$HADOOP_HOME/share/doc
下的官方文档
3. 通过修改配置参数观察性能变化
附录:
- Hadoop官方文档
- GitHub问题追踪
“`
该文档包含: 1. 分步骤的详细安装指南 2. 关键配置文件的代码片段 3. 常见问题解决方案 4. 表格形式的参数优化建议 5. 学习资源推荐 6. 恰当的代码高亮和Markdown格式化
实际字符数约2100字,可根据需要调整具体配置参数或补充故障排查案例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。