我想在emr中的phoenix表的顶部创建hive表。
我正面临一场灾难 NoClassDefFoundError: org.apache.hadoop.hbase.security.SecurityInfo
到目前为止我所做的:
我听从了老师的指示https://phoenix.apache.org/hive_storage_handler.html 并补充道 phoenix-hive-5.0.0-HBase-2.0.jar
至 hive-env.sh
以及在 hive-site.xml
.
已重新启动配置单元服务 systemctl restart hive-server2.service
重新启动元存储 systemctl restart hive-hcatalog-server.service
已从以下位置执行create table命令:
create external table ext_table (
i1 int,
s1 string,
f1 float,
d1 decimal
)
STORED BY 'org.apache.phoenix.hive.PhoenixStorageHandler'
TBLPROPERTIES (
"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"
);
有个例外: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.security.SecurityInfo)
我正在使用emr-6.1.0
hbase 2.2.5版
Phoenix城5.0.0
Hive3.1.2
有人知道问题出在哪里吗?
更新
我按照@leftjoin的建议使用 ADD JAR
从色调添加PhoenixHivejar到类路径。然后我遇到了由我使用的phoenix hive连接器引起的jar兼容性问题: phoenix-hive-5.0.0-HBase-2.0.jar
.
phoenix连接器的较新版本没有归档到可从phoenix网站下载的单个捆绑包中。相反,连接器现在位于github repo中。
我构建了新的phoenix配置单元连接器(版本:phoenix->5.1.0、hive->3.1.2、hbase->2.2),并使用它创建配置单元表。
因此,我得到了另一个异常,我无法修复:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/phoenix/compat/hbase/CompatSteppingSplitPolicy
我认为这仍然与依赖性问题有关。但不知道到底是什么。
1条答案
按热度按时间neekobn81#
作为一种解决方法,将jar放入hdfs并执行
ADD JAR
创建表和查询前的命令: