今天使用noah上线单上线,将 hadoop客户端 文件夹 批量 拷贝到 线上机器 的 对应目录。
结果在测试运行时,执行hive命令,select * from rcfile格式的表,会报错:
hive> select * from log_bd_show_info where pdate='2014-06-11' and hour='1145' limit 10;
OK
Failed with exception java.io.EOFException:null
Time taken: 3.506 seconds
其他textfile格式的表,一切正常。
怀疑是 压缩lib包的问题,跟踪 hive的log日志: hive-log4j.properties里面指定的日志文件,发现里面 会有详细的java 警告:
WARN util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(52)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
可见 hive 是 找不到 hadoop的 lzo lzma 压缩库。
故 结合很早前 排查过类似问题,定位原因是: 缺乏 软连接 文件导致。 而线下机器 是正常的,如下图所示:
但线上 机器