我将mapreduce作业从在windows上运行的java应用程序提交到在ubuntu上运行的hadoop 2.2集群.在hadoop 1.x中,这按预期工作但在hadoop 2.2上我得到一个奇怪的错误:
java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO $ Windows.access0(Ljava/lang/String; I)Z
我编译了必要的Windows库(hadoop.dll和winutils.exe),可以通过代码访问hdfs并使用hadoop API读取集群信息.只有作业提交不起作用.
任何帮助都是有帮助的.
解决方案:我自己发现了,可以找到windows hadoop二进制文件的路径必须添加到windows的PATH变量中.