从windows到ubuntu提交mapreduce作业到hadoop 2.2时出现UnsatisfiedLinkError(NativeIO $ Windows.access0)

pad*_*com 11 java windows ubuntu hadoop

我将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变量中.

Vij*_*jay 2

出现此错误的原因通常是 %HADOOP_HOME%\bin 文件夹中的二进制文件不匹配。因此,您需要做的是获取专门针对您的 hadoop 版本的 hadoop.dll 和 winutils.exe。

获取适用于您的特定 hadoop 版本的 hadoop.dll 和 winutils.exe,并将它们复制到您的 %HADOOP_HOME%\bin 文件夹中。