当前位置:首页 > PHP教程 > PHP总结归纳

在hive中使用parquet(CDH4.3)

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:)!