【问题标题】:Indexing data from HDFS to Elasticsearch via Hive通过 Hive 将数据从 HDFS 索引到 Elasticsearch
【发布时间】:2015-10-05 23:06:52
【问题描述】:

我正在使用 Elasticsearch for Hadoop 插件,以便通过 Hive 在 Elasticsearch 中读取和索引文档。

我遵循了此页面中的文档: https://www.elastic.co/guide/en/elasticsearch/hadoop/current/hive.html

为了使用 Hadoop 在 Elasticsearch 中索引文档,您需要在 Hive 中创建一个配置正确的表。 我在将数据插入该配置单元表时遇到了问题。

这是我以前创建的表格编写脚本:

CREATE EXTERNAL TABLE es_names_w
(
 firstname string,
 lastname string
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'hive_test/names', 'es.index.auto.create' = 'true')

然后我尝试插入数据:

INSERT OVERWRITE TABLE es_names_w
SELECT firstname,lastname
FROM tmp_names_source;

我从 hive 得到的错误是: “作业提交失败,出现异常 'org.apache.hadoom.ipc.RemoteExaption(java.lang.RuntimeExeption: org.xml.sax.SAXParseException; systemId: file:////hdfs_data/mapred/jt/jobTracker/job_201506091622_0064.xml ; lineNunber: 607; columnNumber:51; 字符引用“...”

但是,仅当我创建的 hive 表具有多于一列时才会出现此错误。

例如,此代码有效:

CREATE EXTERNAL TABLE es_names_w
(
 firstname string
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'hive_test/names', 'es.index.auto.create' = 'true')

INSERT OVERWRITE TABLE es_names_w
    SELECT firstname
    FROM tmp_names_source;

一切顺利, Hive在elasticsearch中创建了新的索引类型,数据已经在elasticsearch中建立了索引

我真的不知道为什么我的第一次尝试不起作用

我将不胜感激, 谢谢

【问题讨论】:

    标签: hadoop elasticsearch hive elasticsearch-plugin


    【解决方案1】:

    你能把这个添加到 tbl es.mapping.id'='key' 中吗?密钥可以是您的名字。

    【讨论】:

      【解决方案2】:

      试试

      es.index.auto.create' = 'false'
      

      【讨论】:

        【解决方案3】:

        尝试使用 SerDe 会成功的。例如。

         CREATE EXTERNAL TABLE elasticsearch_es (  
         name STRING, id INT, country STRING )  
         ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.EsSerDe'  
         STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'  
         TBLPROPERTIES ('es.resource'='elasticsearch/demo');
        

        另外,请确保在 ES 中创建索引和类型时,您创建的映射与 ES 中的 Hive 列完全相同。

        【讨论】:

          猜你喜欢
          • 2017-03-01
          • 2012-05-18
          • 1970-01-01
          • 2012-07-17
          • 2016-03-31
          • 2011-08-11
          • 2015-12-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多