在Java开发环境中运行wordcount程序

本文详细介绍了如何在Java开发环境中配置Hadoop,包括MapReduce的原理、官方WordCount源码解析以及Java开发环境的配置步骤,如设置系统变量、添加插件和配置Hadoop安装目录。此外,还提供了WordCount案例的实现和测试,包括需求分析、程序编写、本地测试和集群测试。最后总结了配置和运行中可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

1 MapReduce介绍


  • 1.1 MapReduce定义

MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自身默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。


  • 1.2 MapReduce核心思想

(1)分布式的运算程序往往需要分成至少2个阶段。
(2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。
(3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。
(4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。


  • 1.3 MapReduce进程

一个完整的MapReducer程序在分布式运行时有三类实例进程:①MrAppMaster:负责整个程序的过程调度以及状态协调。②MapTask:负责Map阶段的整个数据处理流程。
③ReduceTask:负责Reduce阶段的整个数据处理流程。

2 官方WordCount源码


  • 2.1 WordCount案例的实质

采用反编译工具反编译源码,发现WordCount案例有Map类、Reduce类和驱动类。且数据的类型是Hadoop自身封装的序列化类型。


  • 2.2 常用数据序列化类型

表1-1 常用的数据类型对应的Hadoop数据序列化类型

Java类型 Hadoop Writable类型
boolean BooleanWritable
byte ByteWritable
int IntWritable
float FloatWritable
long LongWritable
double DoubleWritable
String Text
map MapWritable
array ArrayWritable

  • 2.3 MapReduce编程规范

用户编写的程序分成三个部分:Mapper、Reducer和Driver。
1、Mapper阶段
(1)用户自定义的Mapper要继承自己的父类
(2)Mapper的输入数据是KV键值对的形式(KV的类型可以自定义)
(3)Mapper中的业务逻辑写在map()方法中
(4)Mapper的输出数据是KV键值对的形式(KV的类型可以自定义)
(5)map()方法[MapTask进程]对每一个<K,V>调用一次

2、Reducer阶段
(1)用户自定义的Reducer要继承自己的父类
(2)Reducer的输入数据类型对应Mapper的输出数据类型,也是KV
(3)Reducer的业务逻辑写在reduce()方法中
(4)ReduceTask进程对每一组相同的<K,V>组调用一次reduce()方法

3、Driver阶段
相当于Yarn集群的客户端,用于提交我们整个程序到yarn集群,提交的是封装了MapReduce程序相关运行参数的job对象

3 Java开发环境配置hadoop


  • 3.1 注意事项

1、该Hadoop集群为远程Hadoop集群,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希光之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值