执行 MapReduce 作业
打包作业,我们需要将我们的 MapReduce 程序打成 jar 包。
清单 17. 打包作业
- mvn package -Dmaven.test.skip=true
将 jar 包复制到 hadoop 机器上。
boys and girls, i’m glad to meet you here. at first i’ll introduce myself. my first name is wang, so you can call me mr .ss: wang.t: ok. now please show me a hand and say hello to mr wang. hello。其最底部是 hadoop distributed file system(hdfs),它存储 hadoop 集群中所有存储节点上的文件。sqoop是一个从结构化传说大量数据到hdfs. 使用它,既可以从一个外部的关系型将数据导入到hdfs, hive, 或者 hbase, 也可以hadoop 集群导出到一个关系型或者数据仓库.。
执行 jar。
清单 18. 执行作业
- hadoop jar mr-test-1.0-SNAPSHOT.jar cn.itweknow.mr.CharCountDriver /mr/input/ /mr/output/out.txt
查看结果。
我们先看看输出目录,结果如下,最终输出的结果就存放在/mr/output/part-r-00000 文件中。
图 1. MapReduce 作业输出目录


然后我们再看看输出文件中的具体内容,如下所示:
图 2. MapReduce 作业输出结果

MapReduce 运行原理
我们可以将一个 MapReduce 作业的运行过程简单的拆分成 6 个过程,分别是作业的提交、作业初始化、任务分配、任务执行、进度和状态的更新、作业完成。下面我就一起来具体了解下这么几个步骤。
作业的提交
当我们调用 job.submit()或者 job.waitForCompletion()方法(其内部也会调用 submit()方法)的时候,会创建一个 JobSubmitter 对象,在 JobSubmitter 内部所实现的作业提交过程如下:
向资源管理器请求新的应用 ID 作为 MapReduce 作业的作业 ID。
检查作业的输出目录,如果没有指定输出目录或者输出目录已经存在就会抛出错误,这也就是为啥我们在执行 MapReduce 作业时为啥需要保证指定的输出目录不存在。
java -jar wls_121200.jar -silent -responsefile file -invptrloc file-response file:响应文件-invptrloc file:初始化环境文件具体例子:java -jar wls_121200.jar -silent -responsefile /home/exampleuser/response/wls.rsp -invptrloc /home/exampleuser/orainst.loc文件详解:1.创建 orainst.loc 文件,内容如下inventory_loc=/home/weblogic/orainventory1 产品清单目录#用户的组名称,根据实际的修改inst_group=weblogic 组名称用来保存安装时的一些临时文件,和默认安装的组名称如果原来安装过oracle的产品那么这步可以省略,不需要指定orainventory1 目录命令能够简写如下:java -jar wls_121200.jar -silent -responsefile /home/exampleuser/response/wls.rsp2.创建wls.rsp响应文件这个文件你可以在图形界面安装时,点击保存生产该文件。第三种是 jstl 标签,如果你用的是myeclipse,会自动包你加包,否则的话,你需要自己去找一个jstl.jar ,然后copy到lib去,然后在jsp的头部加入一句:<%@ taglib uri="" prefix="c"%>。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-94214-7.html
核潜艇国之利器
那蛆就绝对不会只“傻呼呼的”呆在一个“房子”里
没发现一个有用的观点或论据