Hadoop Pig、Oozie和HBase-java.io.IOException:scheme:HBase没有文件系统

Hadoop Pig、Oozie和HBase-java.io.IOException:scheme:HBase没有文件系统,hadoop,hbase,apache-pig,hbasestorage,Hadoop,Hbase,Apache Pig,Hbasestorage,我的Pig脚本本身工作正常,直到我将其放入Oozie工作流,在该工作流中我收到以下错误: ERROR 2043: Unexpected error during execution. org.apache.pig.backend.executionengine.ExecException: ERROR 2043: Unexpected error during execution. ... Caused by: java.io.IOException: No FileSystem for sc

我的Pig脚本本身工作正常,直到我将其放入Oozie工作流,在该工作流中我收到以下错误:

ERROR 2043: Unexpected error during execution.

org.apache.pig.backend.executionengine.ExecException: ERROR 2043: Unexpected error during execution.
...
Caused by: java.io.IOException: No FileSystem for scheme: hbase
我成功注册了HBase和Zookeeper JAR,但收到了相同的错误

我还试图通过在Pig脚本中添加以下行的变体来设置Zookeeper仲裁:

SET hbase.zookeeper.quorum 'vm-myhost-001,vm-myhost-002,vm-myhost-003'
internet上的一些搜索指示我将以下内容添加到我的workflow.xml的开头:

SET mapreduce.fileoutputcommitter.marksuccessfuljobs false
这就解决了问题。我甚至可以删除HBase和Zookeeper JAR的注册以及Zookeeper仲裁

现在,在反复检查之后,我注意到我的工作实际上完成了它们的工作:它们按照预期将结果存储在HBase中。但是,Oozie声称失败发生了,而事实并非如此

我认为将
mapreduce.fileoutputcommitter.marksuccessfuljobs
设置为
false
并不构成解决方案


还有其他解决方案吗?

目前似乎没有真正的解决方案


然而,另一个问题似乎表明,最好的解决方法是“手动”创建成功标志。

我在给Cassandra写信时也遇到过同样的问题。问题是Oozie在默认情况下会在完成作业后尝试创建一个成功文件。因此,当您禁用此功能时,作业将正常工作,但如果以后有任何事情依赖于生成的此成功文件,Oozie会将作业标记为失败。在我的例子中,我确保了对Cassandra的书写在其自己的工作流操作中是独立的。不知道这如何转化为HBase。。。