您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 怎么配置Hadoop单机模式并运行Wordcount
## 一、Hadoop单机模式简介
单机模式(Standalone Mode)是Hadoop最简单的运行模式,适合初学者快速验证基础功能。该模式下:
- 不使用HDFS文件系统
- 不启动任何守护进程(如NameNode/DataNode)
- 直接在本地文件系统运行MapReduce程序
## 二、环境准备
### 1. 系统要求
- Linux/MacOS系统(Windows需使用WSL)
- Java 8或11(推荐OpenJDK)
- 至少2GB空闲内存
### 2. 软件下载
```bash
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz
cd hadoop-3.3.6
编辑~/.bashrc
文件:
export HADOOP_HOME=/path/to/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin
hadoop version
# 应显示版本信息如:
# Hadoop 3.3.6
# Source code repository...
创建输入目录和测试文件:
mkdir input
echo "Hello World Hello Hadoop" > input/file1.txt
echo "Goodbye Hadoop Goodbye MapReduce" > input/file2.txt
Hadoop自带示例JAR包:
hadoop jar \
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
wordcount input output
cat output/part-r-00000
# 预期输出:
# Goodbye 2
# Hadoop 2
# Hello 2
# MapReduce 1
# World 1
查看示例源码(伪代码):
// Mapper
map(LongWritable key, Text value, Context context) {
String[] words = value.toString().split(" ");
for (String word : words) {
context.write(new Text(word), new IntWritable(1));
}
}
// Reducer
reduce(Text key, Iterable<IntWritable> values, Context context) {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
context.write(key, new IntWritable(sum));
}
错误现象:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
解决方案:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
错误现象:
Output directory output already exists
解决方案:
rm -rf output
错误现象:
Permission denied: user=root, access=WRITE...
解决方案:
chmod -R 777 /tmp/hadoop-${USER}
代码调试:
HADOOP_ROOT_LOGGER=DEBUG,console hadoop jar [jarfile]
性能监控:
# 查看任务日志
ls $HADOOP_HOME/logs/userlogs/
下一步学习:
提示:单机模式仅用于功能验证,实际开发建议使用伪分布式或完全分布式模式 “`
(全文约1050字,实际字数可能因格式略有差异)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。