使用Phoenix handler创建配置单元表NoClassDefFoundError:org.apache.hadoop.hbase.security.SecurityInfo
我想在emr中phoenix表的顶部创建蜂巢表 我面临一个使用Phoenix handler创建配置单元表NoClassDefFoundError:org.apache.hadoop.hbase.security.SecurityInfo,hadoop,hive,hbase,amazon-emr,phoenix,Hadoop,Hive,Hbase,Amazon Emr,Phoenix,我想在emr中phoenix表的顶部创建蜂巢表 我面临一个NoClassDefFoundError:org.apache.hadoop.hbase.security.SecurityInfo 到目前为止我所做的: 我按照中的说明添加了phoenix-hive-5.0.0-HBase-2.0.jar到hive env.sh以及hive site.xml 重新启动配置单元服务systemctl重新启动配置单元服务器2。服务 重新启动metastoresystemctl重新启动配置单元hcatal
NoClassDefFoundError:org.apache.hadoop.hbase.security.SecurityInfo
到目前为止我所做的:
phoenix-hive-5.0.0-HBase-2.0.jar
到hive env.sh
以及hive site.xml
systemctl重新启动配置单元服务器2。服务
systemctl重新启动配置单元hcatalog服务器。服务
创建外部表ext\u表(
i1 int,
s1字符串,
f1浮动,
d1十进制
)
由“org.apache.phoenix.hive.PhoenixStorageHandler”存储
TBLProperty(
“phoenix.table.name”=“ext_table”,
“phoenix.zookeeper.quorum”=“localhost”,
“phoenix.zookeeper.znode.parent”=“/hbase”,
“phoenix.zookeeper.client.port”=“2181”,
“phoenix.rowkeys”=“i1”,
phoenix.column.mapping“=“i1:i1,s1:s1,f1:f1,d1:d1”
);
处理语句时出现异常:错误:失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddlstask返回代码1。MetaException(消息:java.lang.NoClassDefFoundError:无法初始化类org.apache.hadoop.hbase.security.SecurityInfo)
我正在使用emr-6.1.0
HBase 2.2.5
凤凰城5.0.0
蜂巢3.1.2
有人知道会是什么问题吗
更新
我遵循@leftjoin的建议,使用hue中的addjar
将phoenix hive JAR添加到类路径中。然后我遇到了由我使用的phoenix hive连接器引起的jar兼容性问题:
phoenix-hive-5.0.0-HBase-2.0.jar
phoenix connectors的较新版本未归档到可从下载的单个捆绑包中。相反
接头现在位于中
我构建了新的phoenix hive连接器(版本:phoenix->5.1.0,hive->3.1.2,Hbase->2.2),并使用它创建hive表
因此,我得到了另一个异常,我无法修复:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/phoenix/compat/hbase/CompatSteppingSplitPolicy
我认为这仍然与依赖性问题有关。但不知道具体是什么。作为一种解决方法,在创建表和查询之前,将jar放入hdfs并执行
addjar
命令:
ADD JAR hdfs://path/to/your/jar/phoenix-hive-5.0.0-HBase-2.0.jar;
感谢@leftjoin,我这样做了,现在在执行create query之后,在处理语句时得到以下错误
错误:失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddlstask返回代码1。org/apache/phoenix/util/QueryUtil
。您有什么建议吗?@bstent这不是信息,最好提供完整的异常消息