this version of libhadoop was built without snappy support. 解决方案

线上遇到该问题,hadoop checknative 显示是支持 Snappy 压缩的

[yarn@Centos hadoop]$ bin/hadoop checknative -a
21/08/20 17:52:39 INFO conf.Configuration: Current hadoop.security.authentication = simple
21/08/20 17:52:39 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
21/08/20 17:52:39 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop:  true /home/yarn/software/hadoop-2.7.2/lib/native/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
snappy:  true /home/yarn/software/hadoop-2.7.2/lib/native/libsnappy.so.1
lz4:     true revision:99
bzip2:   true /lib64/libbz2.so.1
openssl: false Cannot load libcrypto.so (libcrypto.so: cannot open shared object file: No such file or directory)!

对 Map 输出开启snappy 压缩的部分作业,出现以下错误, 但也有部分作业运行正常。由于近期进行了线上灰度升级过程,
在这里插入图片描述
再经观察凡是出现 this version of libhadoop was built without snappy support 的作业,AppMaster 都跑在了升级后的节点上,出问题的 Task 均在 旧版的节点上,而在新版的节点上的作业能跑成功。可以确定,MRAppMaster 在启动任务时添加了某个环境变量导致的。

在 launch_container.sh 中找到
在这里插入图片描述
查看 MRAppMaster 添加该环境变量的代码,发现是由 mapreduce.admin.user.env 配置设置的该值。

解决方案
方案一:提交作业的时候,添加 -Dmapreduce.admin.user.env=‘LD_LIBRARY_PATH=/home/yarn/software/hadoop/lib/native’

方案二:在集群中的 mapred-site.xml 中添加配置

<property>
      <name>mapreduce.admin.user.env</name>
      <value>LD_LIBRARY_PATH=/home/yarn/software/hadoop/lib/native</value>
</property>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值