1、问题描述

impala执行查询:select * from stmta_raw limit 10;

报错信息如下:

Query: select * from sfmta_raw limit 10
Query submitted at: 2018-04-11 14:46:29 (Coordinator: http://mrj001:25000)
ERROR: AnalysisException: Failed to load metadata for table: 'sfmta_raw'
CAUSED BY: TableLoadingException: Failed to load metadata for table: test.sfmta_raw. Running 'invalidate metadata test.sfmta_raw' may resolve this problem.
CAUSED BY: NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem
CAUSED BY: ClassNotFoundException: org.apache.hadoop.fs.adl.AdlFileSystem

2、集群环境

【操作系统】Centos6.5

【hadoop版本】2.7.1

【impala版本】2.10.0-cdh5.14.0

3、报错分析

3.1、使用日志提示解决方案

#根据日志提示执行
invalidate metadata test.sfmta_raw

3.2、检查依赖lib包依赖

#检查依赖,看是否有依赖没有引入
cd /usr/lib/impala/lib

#检查是否存在依赖包
ls -s | grep azure

3.3、检查core-site.xml配置

#进入impala配置目录
cd /etc/impala/conf

#检查配置文件
cat core-site.xml

#查看下面引入的是否有下面属性,如果没有则添加

    fs.AbstractFileSystem.adl.impl
    org.apache.hadoop.fs.adl.Adl


    fs.adl.impl
    org.apache.hadoop.fs.adl.AdlFileSystem

3.4、检查hadoop lib目录

#进入impala配置目录
cd $HADOOP_HOME/lib

#检查配置文件
ls -l | grep azure

#如果上一步有对应jar包,则查找下面jar包(该包包括缺失的class实现类)
ls -l | grep hadoop-azure-datalake

3.5、检查hadoop lib目录

        如果3.2、3.3、3.4中均缺失相应jar包,则代表当前版本hadoop中不支持AdlFileSystem的实现,需要更新hadoop版本;本人使用了apache hadoop2.7.1,经过检查发现确实没有这个子类。经过hadoop官网查询验证

hadoop疑难问题解决_NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem插图

hadoop2.9.0版本有这个子类;问题终于找到 

hadoop疑难问题解决_NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem插图(1)

3.6、更新hadoop版本

    检查环境兼容性,更新hadoop版本至2.9.0或更高版本

本站无任何商业行为
个人在线分享 » hadoop疑难问题解决_NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem
E-->