在创建外部表以将数据从Hive推送到ElasticSearch时,我遇到了一个错误。
到目前为止我所做的:
1)成功地设置了ElasticSearch-1.4.4并正在运行。
2)成功地设置了Hadoop1.2.1,所有守护进程都已启动并运行。
3)成功地建立了蜂巢-0.10.0。
4)将elasticsearch-hadoop-1.2.0.jar配置为Hadoop/lib和Hive/lib。
5)在Hive中成功地创建了几个内部表。
执行以下命令时出现错误:
CREATE EXTERNAL TABLE drivers_external (
id BIGINT,
firstname STRING,
lastname STRING,
vehicle STRING,
speed STRING)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.nodes'='localhost','es.resource' = 'drivers/driver');错误是:
Failed with exception org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.org.elasticsearch.hadoop.hive.EsStorageHandler FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
任何帮助!
发布于 2015-06-03 11:13:41
终于找到了决议..。
1)我正在使用的"elasticsearch-hadoop-1.2.0.jar“jar被窃听了一个。它里面没有任何hadoop/hive包。(在网上找到了这个罐子,刚刚下载)。
现在从"elasticsearch-hadoop-1.3.0.M1.jar". Maven存储库中替换为jar
2)在新的elasticsearch中将类"org.elasticsearch.hadoop.hive.**EsStorageHandler**"重命名为"org.elasticsearch.hadoop.hive.**ESStorageHandler**"。注意,大写字母'S'在'ES‘中。
因此,创建External table的新hive命令是:
CREATE EXTERNAL TABLE drivers_external (
id BIGINT,
firstname STRING,
lastname STRING,
vehicle STRING,
speed STRING)
STORED BY 'org.elasticsearch.hadoop.hive.ESStorageHandler'
TBLPROPERTIES('es.nodes'='localhost','es.resource' = 'drivers/driver');啊,真灵!
https://stackoverflow.com/questions/30616756
复制相似问题