Oozie 设置 LD_LIBRARY_PATH
Posted
技术标签:
【中文标题】Oozie 设置 LD_LIBRARY_PATH【英文标题】:Oozie setting LD_LIBRARY_PATH 【发布时间】:2018-03-16 21:14:33 【问题描述】:我正在通过 oozie 运行一个 java 程序(不是 MR)。这是指一些本机库,我尝试设置以下内容
<configuration>
<property>
<name>mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/tableau/</value>
</property>
<property>
<name>mapreduce.child.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/tableau/</value>
</property>
<property>
<name>mapreduce.admin.user.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/tableau/</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/tableau/</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Djava.library.path=/usr/lib/tableau/</value>
</property>
</configuration>
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/tableau/
无论如何我的程序似乎没有读取这些路径,我得到了错误
java.lang.UnsatisfiedLinkError: Unable to load library 'TableauHyperExtract': libTableauHyperExtract.so: cannot open shared object file: No such file or directory
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:194)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:283)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:244)
at com.sun.jna.Native.register(Native.java:1065)
at com.tableausoftware.hyperextract.ExtractAPI.<clinit>(Unknown Source)
【问题讨论】:
1. 您确定 Tableau 已安装在所有群集节点上吗? 2. 您是否知道 Oozie 启动器会忽略标准 Hadoop 属性并仅强制使用前缀为oozie.launcher.
的道具? (没有记录,唉……但 *** 上有很多关于此的帖子) ?
参见。以***.com/questions/32438052/… 为例
@SamsonScharfrichter - 添加 oozie.launcher 有效。这很困难,因为我找不到这方面的文档。感谢您指出这一点。
【参考方案1】:
按照@SamsonScharfrichter 的建议,我在属性前面加上了 oozie.launcher,它运行良好。
<property>
<name>oozie.launcher.mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/tableau/</value>
</property>
【讨论】:
以上是关于Oozie 设置 LD_LIBRARY_PATH的主要内容,如果未能解决你的问题,请参考以下文章