在运行上述异常时尝试在eclipse中的Windows 7 64位中运行MR程序版本(2.7)。 我验证了使用64位1.8 java版本并观察到所有hadoop守护进程都在运行。
高度赞赏任何建议
答案 0 :(得分:11)
此问题发生在我身上,原因是我忘记在我的环境变量中将%HADOOP_HOME%/bin
附加到PATH
。
答案 1 :(得分:5)
除了其他解决方案,请下载 winutil.exe 和 hadoop.dll 并添加到$ HADOOP_HOME / bin中。它对我有用。
https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin
答案 2 :(得分:1)
我的%HADOOP_HOME%/bin
中已经有PATH
,我的代码以前运行过没有错误。重新启动我的机器使它再次运行。
答案 3 :(得分:1)
将haddop.dll
和winutils
放在hadoop/bin
文件夹中并将hadoop的文件夹添加到PATH
之后,我们还需要将hadoop.dll
放入{{ 1}}文件夹
答案 4 :(得分:1)
尝试以上所有方法后,将 hadoop.dll 放入 windows/System32 后一切正常
答案 5 :(得分:0)
在Intellij的“运行/调试配置”下,打开要尝试运行的应用程序,在“配置”选项卡下,指定确切的工作目录。具有代表工作目录的变量也会产生此问题。当我在配置下更改工作目录时,它再次开始工作。
答案 6 :(得分:0)
对我来说,此问题已解决,方法是从https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin下载winutils.exe和hadoop.dll并将其放在hadoop / bin文件夹中
答案 7 :(得分:0)
是的,当我使用PIGUNITS
实现PIGSCRIPTS
的自动化时,会出现此问题。需要按顺序完成两件事:
将上述两个文件复制到一个位置,然后将其添加到PATH下的环境变量中。
要反映所做的更改,必须重新启动计算机以加载文件。
在JUNIT下,我遇到此错误,这也会对其他人有帮助:
org.apache.pig.impl.logicalLayer.FrontendException:错误1066:无法打开别名XXXXX的迭代器。后端错误:java.lang.IllegalStateException:状态为DEFINE而不是RUNNING的作业 在org.apache.pig.PigServer.openIterator(PigServer.java:925)
答案 8 :(得分:0)
版本错误是此问题的主要原因。将完整的hadoop版本与Java库一起使用将解决此问题,如果仍然遇到问题并使用hadoop 3.1.x版本,请使用此库下载bin
https://github.com/s911415/apache-hadoop-3.1.0-winutils/tree/master/bin
答案 9 :(得分:0)
就我而言,在将依赖项升级到 CDH6
后,在本地机器上运行单元测试时遇到了这个问题。我已经正确配置了 HADOOP_HOME
和 PATH
变量,但我必须按照其他答案中的建议将 hadoop.ddl
复制到 C:\Windows\System32
。