Impala 查询数据报错处理 NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem
错误详情:
可以进入impala,但是无法插入数据查询表数据,出现错误:NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem
[localhost.localdomain:21000] > insert into user_test values('zs');
Query: insert into user_test values('zs')
Query submitted at: 2020-12-17 02:39:24 (Coordinator: http://sunny:25000)
ERROR: AnalysisException: Failed to load metadata for table: test.user_test. Running 'invalidate metadata test.user_test' may resolve this problem.
CAUSED BY: NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem
CAUSED BY: TableLoadingException: Failed to load metadata for table: test.user_test. Running 'invalidate metadata test.user_test' may resolve this problem.
CAUSED BY: NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem
哇 这个错误好坑呀,查了三四个小时,总以为这个类应该在hadoop-common*.jar里面,下载了无数个版本的hadoop-common*.jar ,反编译都没有结果,结果在安装包里搜 AdlFileSystem.这个类,发现在 hadoop-azure-datalake*.jar
处理方案:
将hadoop里面的这个包软链接到impala 的 lib目录下。
sudo ln -s /data/CDH/hadoop-2.6.0-cdh5.14.0/share/hadoop/tools/lib/hadoop-azure-datalake-2.6.0-cdh5.14.0.jar /usr/lib/impala/lib/hadoop-azure-datalake.jar
其中:/data/CDH/hadoop-2.6.0-cdh5.14.0 是我的hadoop安装目录
然后再重新进入impala就可以啦!!!!!!!!!!
Impala基本命令
impala重启命令:(启动将restart换成start即可)
service impala-state-store restart
service impala-catalog restart
service impala-server restart
重启完成后可以通过命令 ps -ef|grep impala 看看是否有三个后台进程!
访问impalad的管理界面
http://172.20.71.66:25000/
访问statestored的管理界面
http://172.20.71.66:25010/
访问catalog的管理界面
http://172.20.71.66:25020
进入impala: impala-shell
数据库基本操作:
show databases; create database test; show databases; use test; create table user_test(name string) row format delimited fields terminated by ' 01'; insert into user_test values('zs'); select * from user_test;
impala日志文件: /var/log/impala
impala配置文件:/etc/default/impala
/etc/impala/conf (core-site.xml, hdfs-site.xml, hive-site.xml)