如何将下面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下的可执行程序文件?

windows下的eclipse中hdfs用户名默认为windows用户名,怎么改成Linux用户名

Windows项目迁移到Linux总结

linux如何将一个目录下所有的文件都改成775的权限

linux下的程序如何在windows下运行

如何将windows系统下的文件共享到linux