Hadoop系列 - 本地调试代码(不使用jar包)

问题

最近学习Hadoop过程中遇到这样一个问题:本地开发mapreduce程序,如果mapreduce到输入和输出都是设置本地,那么是可以进行本地Debug的。但是在我把输入源设成服务器的HDFS,输出设为HBase时,发现应用启动就报某个mapper或Outputformat类找不到;经过几天摸索,终于找到解决办法;

解决方法

项目配置文件mapred-site.xml增加配置:

<property> 
        <name>mapreduce.framework.name</name> 
        <value>local</value>
</property>

配置解读:

一,本地模式(LocalJobRunner实现)

mapreduce.framework.name设置为local,则不会使用YARN集群来分配资源,在本地节点执行。在本地模式运行的任务,无法发挥集群的优势。注:在web UI是查看不到本地模式运行的任务。

二,Yarn模式(YARNRunner实现)

mapreduce.framework.name设置为yarn,当客户端配置mapreduce.framework.name为yarn时, 客户端会使用YARNRunner与服务端通信, 而YARNRunner真正的实现是通过ClientRMProtocol与RM交互, 包括提交Application, 查询状态等功能。

猜你喜欢

转载自blog.csdn.net/weixin_36985855/article/details/84678946