使用 EsStorageHandler 在 Hive 中创建外部 table 时出错
Error while creating external table in Hive using EsStorageHandler
我在创建外部 Table 以将数据从 Hive 推送到 ElasticSearch 时遇到错误。
到目前为止我做了什么:
1) 成功设置ElasticSearch-1.4.4并且是运行.
2) 成功设置Hadoop1.2.1,所有守护进程都已启动,运行.
3) 成功设置Hive-0.10.0.
4) 在 Hadoop/lib 和 [=35] 中配置了 elasticsearch-hadoop-1.2.0.jar =]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
任何帮助!
终于找到了解决方法...
1) 我使用的“elasticsearch-hadoop-1.2.0.jar”jar 被窃听了。它里面没有任何 hadoop/hive 包。 (在互联网上找到这个 jar 并下载了它)。
现在用 Maven 存储库 "elasticsearch-hadoop-1.3.0.M1.jar".
中的 jar 替换它
2) class "org.elasticsearch.hadoop.hive.**EsStorageHandler**"
已在新的 elasticsearch jar 中重命名为 "org.elasticsearch.hadoop.hive.**ESStorageHandler**"
。请注意 'ES'.
中的大写 'S'
所以创建 External table
的新配置单元命令是:
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');
成功了!
我在创建外部 Table 以将数据从 Hive 推送到 ElasticSearch 时遇到错误。
到目前为止我做了什么:
1) 成功设置ElasticSearch-1.4.4并且是运行.
2) 成功设置Hadoop1.2.1,所有守护进程都已启动,运行.
3) 成功设置Hive-0.10.0.
4) 在 Hadoop/lib 和 [=35] 中配置了 elasticsearch-hadoop-1.2.0.jar =]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
任何帮助!
终于找到了解决方法...
1) 我使用的“elasticsearch-hadoop-1.2.0.jar”jar 被窃听了。它里面没有任何 hadoop/hive 包。 (在互联网上找到这个 jar 并下载了它)。
现在用 Maven 存储库 "elasticsearch-hadoop-1.3.0.M1.jar".
中的 jar 替换它2) class "org.elasticsearch.hadoop.hive.**EsStorageHandler**"
已在新的 elasticsearch jar 中重命名为 "org.elasticsearch.hadoop.hive.**ESStorageHandler**"
。请注意 'ES'.
所以创建 External table
的新配置单元命令是:
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');
成功了!