编写简单的Mapreduce程序并部署在Hadoop2.2.0上运行

本文介绍了如何在Hadoop2.2.0伪分布式环境中运行自编写的MapReduce程序。首先展示了程序的Maven依赖和代码,接着详细阐述了从编译打包到部署运行的步骤,包括启动Hadoop服务、提交作业、解决ClassNotFoundException问题以及查看运行结果的方法。提供了一个完整的MapReduce程序运行流程。
摘要由CSDN通过智能技术生成

        经过几天的折腾,终于配置好了Hadoop2.2.0(如何配置在Linux平台部署Hadoop请参见本博客《在Fedora上部署Hadoop2.2.0伪分布式平台》),今天主要来说说怎么在Hadoop2.2.0伪分布式上面运行我们写好的Mapreduce程序。先给出这个程序所依赖的Maven包:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
<dependencies>
     <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-mapreduce-client-core</artifactId>
         <version> 2.1 . 1 -beta</version>
     </dependency>
     <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-common</artifactId>
         <version> 2.1 . 1 -beta</version>
     </dependency>
     <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-mapreduce-client-common</artifactId>
         <version> 2.1 . 1 -beta</version>
     </dependency>
     <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
         <version> 2.1 . 1 -beta</version>
     </dependency>
</dependencies>

好了,现在给出程序,代码如下:

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
Python是支持MapReduce编程模式的,但是Hadoop本身是用Java编写的,因此在Hadoop运行MapReduce任务时,Java是官方推荐的开发语言。不过,为了方便其他语言的开发者,Hadoop提供了一个名为Hadoop Streaming的工具,它允许用户使用任何可以读取标准输入和输出的程序作为MapReduce作业的Mapper和Reducer。 以下是使用Python编写MapReduce程序并在Hadoop运行的一般步骤: 1. 准备数据:首先需要准备输入数据,这些数据将被上传到HDFS(Hadoop分布式文件系统)。 2. 编写Python脚本: - 通常需要编写两个脚本,一个用于Map任务,另一个用于Reduce任务。 - Map脚本负责读取输入数据,将输入数据转换成一系列的键值对(key-value pairs)。 - Reduce脚本则对Map阶段输出的中间数据进行排序和汇总,生成最终结果。 3. 使用Hadoop Streaming运行Python脚本: - 在命令行中使用Hadoop Streaming命令提交MapReduce作业。 - 命令格式大致如下: ``` hadoop jar /path/to/hadoop-streaming.jar \ -file /path/to/map.py -mapper /path/to/map.py \ -file /path/to/reduce.py -reducer /path/to/reduce.py \ -input /path/to/input -output /path/to/output ``` - 其中,`-file`参数用于指定MapReduce脚本的位置,`-mapper`和`-reducer`用于指定MapReduce的脚本,`-input`和`-output`用于指定输入输出的HDFS路径。 4. 监控作业运行:通过Hadoop的Web界面或者命令行工具来监控MapReduce作业的运行状态,确保作业顺利完成。 5. 检查结果:作业完成后,可以在指定的输出路径检查结果文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值