MapReduce程序执行过程和命令格式

来源:互联网 发布:wamp 连接sqlserver 编辑:程序博客网 时间:2024/05/16 12:27

        在hadoop中,MapReduce是该平台的计算组件,主要用于分布式计算一些大型的工作。每个工作任务被描述为一个Job。每Job有一个Config类来配置他。MapReduce的执行过程分为Map阶段和Reduce阶段,如果详细划分,可以加上一个中间结果阶段。

      在Map阶段,主节点JobTracker将一个Job划分为若干个Tasks,交给计算节点TaskTracker来进行执行。每一个task又被分为若干个<key,value>键值对输入到map中,然后同样产生一个<key,value>形式的中间输出,Hadoop函数接收一个 如<key,(list of values)>形式的输入,然后对这个value集合进行处理,每个reduce产生0或1个输出,reduce的输出也 是<key,value>形式的。

计算过程如下图:


在Hadoop中执行java程序,首先需要将java程序进行打包,形成以.jar为后缀的程序执行包,下文以hadoop-examples-1.0.0.jar举例说明。

(1)在运行程序之前,需要先在Hdfs中,新建input目录,执行命令:hadoop dfs -mkdir input即可。

注意:不需要创建output目录,当程序需要输出时,hadoop平台将自动在HDFS的用户下为程序创建该目录。

(2)将hadoop-examples-1.0.0.jar程序包上传到所希望的HDFS路径下。

(3)执行命令:hadoop jar /user/liyubo/input/softjar/hadoop-examples-1.0.0.jar wordcount input output

即可完成示例程序中的词频统计功能。Hadoop命令会启动一个JVM来运行这个MapReduce 程序,并自动获得Hadoop的配置,同时把类的路径(及其依赖关系)加入到Hadoop的库中。


 (4)查看结果

1)查看HDFS上output目录内容

从上图中知道生成了三个文件,我们的结果在" part-r-00000 "中。

2)查看结果输出文件内容

3、WordCount源码分析




0 0
原创粉丝点击