cdh5.7.1默认安装无法装载native lib的问题解决(cdh5.5.x好像也有这个问题)
2016-10-30 16:00
375 查看
用CDH5.7.1新装一个测试集群发现执行mapreduce时候无法装载native lib:
WARN [main] org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
具体反映在我在hive shell里面执行一个查询的时候(触发了mapreduce),查看8088 app执行日志时候,发现日志里面打印出来了上面这个警告。
查看yarn的gateway配置信息发现LD_LIBRARY_PATH的默认值是$HADOOP_COMMON_HOME/lib/native:
于是怀疑是不是cloudera manager有BUG,环境变量$HADOOP_COMMON_HOME没有设置。于是在yarn gateway配置中修改了如下配置:
yarn.app.mapreduce.am.admin.user.env=LD_LIBRARY_PATH={{HADOOP_COMMON_HOME}}/lib/native:{{JAVA_LIBRARY_PATH}}; mapreduce.admin.user.env=LD_LIBRARY_PATH={{HADOOP_COMMON_HOME}}/lib/native:{{JAVA_LIBRARY_PATH}};
重新部署客户端配置后,在执行mapreduce,可以找到native lib了。
这个还是有必要配置的,可以优化执行性能,比如会使用native的压缩算法等等。
比如启用了ubertask优化后,会用snappy压缩结果,这时候如果找不到native lib的话,就会报错了。
源代码里面有黑科技啊:
package org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher;中的
ContainerLaunch这个类有个方法:
@VisibleForTestingpublic static String expandEnvironment(String var,Path containerLogDir) {var = var.replace(ApplicationConstants.LOG_DIR_EXPANSION_VAR,containerLogDir.toString());var = var.replace(ApplicationConstants.CLASS_PATH_SEPARATOR,File.pathSeparator);// replace parameter expansion marker. e.g. {{VAR}} on Windows is replaced// as %VAR% and on Linux replaced as "$VAR"if (Shell.WINDOWS) {var = var.replaceAll("(\\{\\{)|(\\}\\})", "%");} else {var = var.replace(ApplicationConstants.PARAMETER_EXPANSION_LEFT, "$");var = var.replace(ApplicationConstants.PARAMETER_EXPANSION_RIGHT, "");}return var;}意思就是遇到{{HADOOP_COMMON_HOME}}这种写法会替换成$HADOOP_COMMON_HOME,而不会替换成$HADOOP_COMMON_HOME所具体指向的值。
因为我发现生成的launch_container.sh这个脚本里面其实是有export HADOOP_COMMON_HOME这个环境变量的。所以改成如上写法。
相关文章推荐
- 关于安装mysql 5.7时遇到的默认root无法登陆或者找不到data文件夹的问题的一些解决办法
- 解决安装VS2008无法更改默认路径的问题
- 解决XP下不能安装驱动的问题(签名问题等等)——“无法安装这个硬件”“INF中的服务安装段落无效”
- yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
- 安装Ubuntu之后默认英文,选简体中文,正常来说这样装好就应该能用的,可是这个时候又出现了错误,說:broken package database. 请用apt-get install -f解决问题
- office2003安全模式启动,默认模板问题/打开word就显示“无法装载这个对象”
- 在VMWare WorkStation 5.5中安装Red hat linux 9后网卡无法激活的问题解决
- 解决首次访问jenkins,输入初始化默认密码之后,一直卡住问题,无法进行jenkins工具安装
- 解决"window无法安装到这个磁盘。选中的磁盘采用GPT分区形式“的问题
- 解决SQL2000安装时提示序列号无法验证的问题
- 解决无法安装 VS2003 .net 系统必备的问题
- sql sever无法安装的问题的解决方法
- 解决sql2000挂起无法安装的问题
- 解决FC3下默认浏览器无法出来的问题
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- 解决sql2000挂起无法安装的问题
- 解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”
- 安装VS2005 SP1出现这样问题“windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。”
- 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
- Exchange安装东亚语言解决存储无法挂载问题 推荐