window本地运行mapreduce程序

Posted ljysy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window本地运行mapreduce程序相关的知识,希望对你有一定的参考价值。

 

mapreduce的运行方式一般有两种,一是从本地导出一个jar包,在传到虚拟机上运行,这样调试起来非常的不方便,如果出现错误就需要重新导出jar包。

 

第二种方式是在本地直接运行,但是在运行前需要进行一些准备。我原来一直用的是方式一,由于需要,必须改成方式二,今天进行了相关的操作。

 

首先,需要准备windwos编译下的hadoop包,实际上只需要将linux中的hadoop中的lib目录替换,(还有的说法,如果还是不行的话,还需要将lib包中也替换)

 

由于我的Hadoop版本比较老,是2.4.1,bin目录不是很好找,下边是我早github中找到的链接

https://github.com/srccodes/hadoop-common-2.2.0-bin

直接粘到hadoop中的bin目录替换,然后就是书写mapreduce程序,里边的代码和虚拟机中的代码基本一致,但是,需要在主程序中加入一行代码

         Configuration conf = new Configuration();

 conf.set("fs.defaultFS","hdfs://192.168.252.200:9000");

这两句最好紧挨着,否则会报错。这里边的设置的自己虚拟机上的master节点的ip地址。然后直接运行程序,就可以成功了

 

网上有人说要配置HADOOP_HOME的系统变量,但是本人在运行程序时尝试修改,但是没有成功,可是但运行mapreduce时不会报错,所以这个步骤因该没有用

 

在运行时可能会出  pression denied错误,这是因为你的hdfs中的文件的权限太高,你可以直接将其设置成777,使任何用户都具有访问该文件的权限。

 

亲自尝试,可以成功

以上是关于window本地运行mapreduce程序的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop之 - 剖析 MapReduce 作业的运行机制(MapReduce 2)

window本地运行mapreduce程序

在没有mapred-site.xml的情况下设置hadoop mapreduce大小

手写MapReduce程序详细操作步骤

Hadoop中mapred包和mapreduce包的区别

使用 mapred 或 mapreduce 包创建 Hadoop 作业哪个更好?