hadoop版本 cdh4.3 使用impala创建parquet表后,查询会出错。 [impala:21000] select * from foo;query: select * from fooerror: analysisexception: failed to load metadata for table: default.foocaused by: tableloadingexception: failed to load met
hadoop版本 cdh4.3
使用impala创建parquet表后,查询会出错。
[impala:21000] > select * from foo; query: select * from foo error: analysisexception: failed to load metadata for table: default.foo caused by: tableloadingexception: failed to load metadata for table: foo caused by: metaexception: org.apache.hadoop.hive.serde2.serdeexception serde parquet.hive.serde.parquethiveserde does not exist
原因是hive并没有这些lib,下载它们并放入/opt/cloudera/parcels/cdh/lib/hive/lib目录(我是使用cloudera manager部署的),创建脚本下载
#!/bin/sh
#parquet-pig parquet-scrooge parquet-test-hadoop2 parquet-thrift parquet-avro parquet-cascading
?
for f in parquet-column parquet-common parquet-encoding parquet-generator parquet-hadoop parquet-hive
do
curl -o http://repo1.maven.org/maven2/com/twitter/${f}/1.2.4/${f}-1.2.4.jar
#curl -o http://oss.sonatype.org/service/local/repositories/releases/content/com/twitter/${f}/1.2.4/${f}-1.2.4.jar
done
curl -o http://repo1.maven.org/maven2/com/twitter/parquet-format/1.0.0/parquet-format-1.0.0.jar
然后把他们拷贝进去
cp parquet-* /opt/cloudera/parcels/cdh/lib/hive/lib
可能要重启metastore,然后在impala中刷新metastore
invalidate metadata;
在impala修改parquet表
create table test2 (name string) stored as parquetfile;
插入数据
insert into test2 select * from test;
参考
https://issues.cloudera.org/browse/impala-574
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!