hive和cassandra集成

mnowg1ta  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(398)

我引用此git项目是为了使用配置单元表集成cassandra数据。我将适当的cassandra jar复制到配置单元库文件夹中。但是,在对cassandra运行查询时,出现以下错误。请帮助我解决此问题。
https://github.com/milliondreams/hive/tree/cas-support-cql/cassandra-handler
配置单元>创建外部表消息(行\键字符串、列1字符串、列2字符串)

STORED BY 'org.apache.hadoop.hive.cassandra.cql.CqlStorageHandler' WITH SERDEPROPERTIES("cql.primarykey" = "row_key")
TBLPROPERTIES ("cassandra.ks.name" = "mycqlks", "cassandra.ks.stratOptions"="'DC':1, 'DC2':1",
"cassandra.ks.strategy"="NetworkTopologyStrategy");

java.lang.nosuchmethoderror:org.apache.hadoop.hive.metastore.metastoreutils.getschema(lorg/apache/hadoop/hive/metastore/api/table;)ljava/util/properties;在org.apache.hadoop.hive.cassandra.cql.cqlmanager.createcolumnfamily(cqlmanager。java:238)在org.apache.hadoop.hive.cassandra.cql.cqlmanager.createcfifnotfound(cqlmanager。java:189)在org.apache.hadoop.hive.cassandra.cql.cqlstoragehandler.precreatetable(cqlstoragehandler。java:247)在org.apache.hadoop.hive.metastore.hivemetastoreclient.createtable(hivemetastoreclient。java:462)位于org.apache.hadoop.hive.metastore.hivemetastoreclient.createtable(hivemetastoreclient。java:455)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:57)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:606)位于org.apache.hadoop.hive.metastore.retryingmetastoreclient.invoke(retryingmetastoreclient。java:74)位于com.sun.proxy.$proxy11.createtable(未知源)org.apache.hadoop.hive.ql.metadata.hive.createtable(配置单元。java:596)位于org.apache.hadoop.hive.ql.exec.ddltask.createtable(ddltask)。java:3776)位于org.apache.hadoop.hive.ql.exec.ddltask.execute(ddltask)。java:256)在org.apache.hadoop.hive.ql.exec.task.executetask(任务。java:144)在org.apache.hadoop.hive.ql.exec.taskrunner.runsequential(taskrunner。java:57)在org.apache.hadoop.hive.ql.driver.launchtask(driver。java:1355)在org.apache.hadoop.hive.ql.driver.execute(driver。java:1139)在org.apache.hadoop.hive.ql.driver.run(driver。java:945)在org.apache.hadoop.hive.cli.clidriver.processlocalcmd(clidriver。java:259)在org.apache.hadoop.hive.cli.clidriver.processcmd(clidriver。java:216)在org.apache.hadoop.hive.cli.clidriver.processline(clidriver。java:413)在org.apache.hadoop.hive.cli.clidriver.run(clidriver。java:756)位于org.apache.hadoop.hive.cli.clidriver.main(clidriver。java:614)位于sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl。java:57)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:606)在org.apache.hadoop.util.runjar.main(runjar。java:160)失败:执行错误,org.apache.hadoop.hive.ql.exec.ddltask返回代码-101

jyztefdp

jyztefdp1#

你用的是哪个版本的Hive?
它必须是Hive0.9根据https://github.com/milliondreams/hive/tree/cas-support-cql/cassandra-handler
我认为您使用的版本>=0.11.0
版本0.9.0:http://svn.apache.org/repos/asf/hive/tags/release-0.9.0/metastore/src/java/org/apache/hadoop/hive/metastore/metastoreutils.java
版本0.10.0:http://svn.apache.org/repos/asf/hive/tags/release-0.10.0/metastore/src/java/org/apache/hadoop/hive/metastore/metastoreutils.java
版本0.11.0:http://svn.apache.org/repos/asf/hive/tags/release-0.11.0/metastore/src/java/org/apache/hadoop/hive/metastore/metastoreutils.java
0.11.0中缺少单参数方法org.apache.hadoop.hive.metastore.metastoreutils.getschema

相关问题