Apache Oozie加载ShareLib失败。

4

i got the following oozie.log :

org.apache.oozie.service.ServiceException: E0104: Could not fully initialize service [org.apache.oozie.service.ShareLibService], Not able to cache sharelib. An Admin needs to install the sharelib with oozie-setup.sh and issue the 'oozie admin' CLI command to update the sharelib

我运行了以下命令:
oozie-setup.sh sharelib create -fs hdfs://localhost:54310
oozied.sh start

hdfs dfs -ls /user/hduser/share/lib
15/02/24 18:05:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x   - hduser supergroup          0 2015-02-24 17:19 /user/hduser/share/lib/lib_20150224171855
drwxr-xr-x   - hduser supergroup          0 2015-02-24 17:19 /user/hduser/share/lib/lib_20150224171908
drwxr-xr-x   - hduser supergroup          0 2015-02-24 17:29 /user/hduser/share/lib/lib_20150224172857 

但是:
oozie admin -shareliblist -oozie http://localhost:11000/oozie
[Available ShareLib]

oozie admin -sharelibupdate -oozie http://localhost:11000/oozie
null

我的oozie-site.xml包含:

<property>
    <name>oozie.service.WorkflowAppService.system.libpath</name>
    <value>/user/${user.name}/share/lib/</value>
</property>

<property>
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
    <value>*=hadoop-conf</value>
</property>

你有没有想法,我犯了什么错误?

你能找到解决方案吗?我也有类似的问题(错误代码[这不应该发生],信息[文件/user/mountain/share/lib不存在])...但是到目前为止还没有找到解决方案。 - Raj
很不幸,我决定不使用Oozie...我重新设计了另一个解决方案。 - seb835
2个回答

10

我为解决同一个错误苦苦挣扎了几天,最终终于解决了。

这个错误与 sharelib 服务有关,它在我的本地文件系统中寻找 sharelib 文件夹,而不是我的 HDFS。

因此,要修复它:

停止 oozie

编辑 conf/oozie-site.xml

<property>        
      <name>oozie.service.HadoopAccessorService.hadoop.configurations</name> 
      <value>*=/usr/local/hadoop/etc/hadoop/</value>
</property>

重新启动Oozie。

大功告成!

该属性的值默认设置为*=hadoop-conf。我仍然不知道hadoop-conf应该指向什么,但在我的情况下,它并不是hadoop配置文件夹,所以我将其更改为*=/usr/local/hadoop/etc/hadoop/。


谢谢!你帮了我很多!我曾经也遇到过相同的问题。 - jk2
可以从 oozie-default.xml 文件中了解到发生了什么。属性 oozie.service.HadoopAccessorService.hadoop.configurations 指定如果值是相对路径,则将从 oozie 安装目录中获取 hadoop 配置 core-site.xml_。默认情况下,_core-site.xml 不包含 fs.defaultFS 属性,这意味着将选择默认值 _file:///_。最常见的用例是在现有的 hadoop 集群安装之上使用 oozie,这意味着您已经有了一些路径到 hadoop conf 目录,这就是应该提供的内容。 - kasur
@Breach: 路径 /usr/local/hadoop/etc/hadoop/ 似乎是本地路径而非 HDFS 路径。在我的情况下,我已将其设置为所有 hadoop *.xml 文件所在的值。仍然出现相同的错误。 - Atish

5
在我的oozie-4.2.0中, 默认设置*hadoop-conf指向子文件夹。
path/to/oozie/conf/hadoop-conf

在我的情况下,有一个名为“core-site.xml”的文件,我认为这应该是配置文件。我在此文件中添加以下属性。
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
</property>

重新启动oozie,问题得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接