1、集群运行模式
(1)将 mapreduce 程序提交给 yarn 集群,分发到很多的节点上并发执行
(2)处理的数据和输出结果应该位于 hdfs 文件系统
(3)提交集群的实现步骤:
将程序打成 JAR 包,然后在集群的任意一个节点上用 hadoop 命令启动
hadoop jar wordcount.jar cn.itcast.bigdata.mrsimple.WordCountDriver args
具体步骤如下:
1.1、将Hadoop(8):MapReduce编程规范及示例编写中的jar包上传的hadoop服务器上
1.2、将要分析的文件上传到指定目录,我这边是 /wordcount/input,根据自己代码中设置的目录进行上传
hadoop fs -put 1.txt 2.txt /wordcount/input
上传后可以在DFS页面上看到
1.3、运行jar包
hadoop jar hadoop2-1.0-SNAPSHOT.jar
可以在yarm页面看到进度
运行提示如下:
1.4完成后可以在yarm页面看到输出结果,如下:
下载下来可以看到分析的结果如下:
2、本地运行模式
(1)mapreduce 程序是被提交给 LocalJobRunner 在本地以单进程的形式运行
(2)而处理的数据及输出结果可以在本地文件系统,也可以在 hdfs 上
(3)怎样实现本地运行?写一个程序,不要带集群的配置文件
本质是程序的conf中是否有mapreduce.framework.name=local以及yarn.resourcemanager.hostname 参数
例如:
将Hadoop(8):MapReduce编程规范及示例编写中的程序中的WordCountDriver添加如下参数:
注意:本地需要安装hadoop
(4)本地模式非常便于进行业务逻辑的 debug,只要在编译器eclipse或者IDEA中打断点即可