怎么配置Hadoop单机模式并运行Wordcount

发布时间:2021-12-10 09:52:44 作者:iii
来源:亿速云 阅读:297
# 怎么配置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

三、配置单机模式

1. 设置环境变量

编辑~/.bashrc文件:

export HADOOP_HOME=/path/to/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin

2. 验证安装

hadoop version
# 应显示版本信息如:
# Hadoop 3.3.6
# Source code repository...

四、运行WordCount示例

1. 准备测试文件

创建输入目录和测试文件:

mkdir input
echo "Hello World Hello Hadoop" > input/file1.txt
echo "Goodbye Hadoop Goodbye MapReduce" > input/file2.txt

2. 运行WordCount程序

Hadoop自带示例JAR包:

hadoop jar \
  $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
  wordcount input output

3. 查看结果

cat output/part-r-00000
# 预期输出:
# Goodbye 2
# Hadoop  2
# Hello   2
# MapReduce   1
# World   1

五、原理解析

1. WordCount执行流程

  1. Input阶段:将文本文件拆分为<行号, 文本行>键值对
  2. Map阶段:生成<单词, 1>的中间结果
  3. Shuffle阶段:按单词分组
  4. Reduce阶段:统计每组的总数

2. 关键代码逻辑

查看示例源码(伪代码):

// 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));
}

六、常见问题解决

1. Java环境问题

错误现象:

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

2. 输出目录已存在

错误现象:

Output directory output already exists

解决方案:

rm -rf output

3. 权限问题

错误现象:

Permission denied: user=root, access=WRITE...

解决方案:

chmod -R 777 /tmp/hadoop-${USER}

七、进阶学习建议

  1. 代码调试

    HADOOP_ROOT_LOGGER=DEBUG,console hadoop jar [jarfile]
    
  2. 性能监控

    # 查看任务日志
    ls $HADOOP_HOME/logs/userlogs/
    
  3. 下一步学习

    • 伪分布式模式配置
    • 使用Maven编译自定义MapReduce程序
    • 学习YARN资源调度机制

提示:单机模式仅用于功能验证,实际开发建议使用伪分布式或完全分布式模式 “`

(全文约1050字,实际字数可能因格式略有差异)

推荐阅读:
  1. hadoop 开发---WordCount
  2. 运行Hadoop自带的wordcount单词统计程序

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hadoop wordcount

上一篇:Hive Index的示例分析

下一篇:如何配置Hadoop单机模式并运行Wordcount

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》