如何将下面linux下的程序改成windows下可通过
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将下面linux下的程序改成windows下可通过相关的知识,希望对你有一定的参考价值。
Linux下是SHELL脚本,windows下是DOS批处理文件,两个使用的命令有些不一样,你可以在下面这个网站找到对应关系,然后替换就好了 参考技术A msys2里有gcc编译器,你试试可以编译不?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,使任何用户都具有访问该文件的权限。
亲自尝试,可以成功
以上是关于如何将下面linux下的程序改成windows下可通过的主要内容,如果未能解决你的问题,请参考以下文章
如何将在windows下写的程序编译成linux下的可执行程序文件?