由于impala的配置文件是依赖于hadoop和hive的,所以在部署impala时,会在之前配置好的hadoop配置文件的基础上再进行修改。
本次报错主要体现在 修改了hdfs-site.xml
dfs.domain.socket.path /var/run/hdfs-sockets/dn
配置后,启动hadoop,datanode启动失败,查看日志文件发现错误
WARN org.apache.hadoop.hdfs.server.datanode.DataNode: File descriptor passing is disabled because libhadoop cannot be loaded. 2022-03-20 16:59:53,115 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain java.lang.RuntimeException: Although a UNIX domain socket path is configured as /var/lib/hadoop-hdfs/dn_socket, we cannot start a localDataXceiverServer because libhadoop cannot be loaded.
但是不知道具体的错误原因,故开启debug模式,查看具体报错的信息。
vi /etc/bashrc //我的环境变量都是在这个文件中,根据自身环境变量修改位置编辑 export HADOOP_ROOT_LOGGER=DEBUG,console //添加这一行 source /etc/bashrc //记得生效
在datanode机器
hadoop dfs -ls /
之后即可出现调试信息,看到最后一行
DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedlinkError: /home/leader/tools/hadoop-2.6.5/lib/native/libhadoop.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/leader/tools/hadoop-2.6.5/lib/native/libhadoop.so)
由此可知,日志文件中提到未加载成功的libhadoop必须建立于GLIBC_2.14
通过以下指令查看当前的系统版本 是GLIBC_2.12,版本过低。需升级
#strings /lib64/libc.so.6 |grep GLIBC_ GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_PRIVATE
升级方法在另一篇博文中:cento6.8 升级glibc库 glibc2.14教程及glibc2.14压缩包_yaya_en的博客-CSDN博客



