【问题标题】:Automated insertion from Hive to Elasticsearch从 Hive 到 Elasticsearch 的自动插入
【发布时间】:2015-11-25 22:23:43
【问题描述】:

我目前正在尝试找到一种方法来自动将 Hadoop 文本文件中的数据添加到 elasticsearch 中。 我们正在运行 HIVE v0.11、Hadoop v2.0.5、Elasticsearch 1.7.1 和 elasticsearch-hadoop v2.1.0 这些文件存储在名为 year/month/day 的路径 /tmp/test-log/apache2log 下的不同子文件夹中 此表创建适用于从 Hadoop 获取数据:

CREATE EXTERNAL TABLE apache2log(
userIP STRING,
identity STRING,
user STRING,
time STRING,
request STRING,
status STRING,
thread STRING,
link STRING,
callerInformation STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED by '|'
LOCATION '/tmp/test-log/apache2log';

但是当我尝试创建一个表时,将这些数据插入到 elasticsearch 中,创建工作正常,但表是空的。我尝试了以下命令:

CREATE EXTERNAL TABLE apache2log(
userIP STRING,
identity STRING,
user STRING,
time STRING,
request STRING,
status STRING,
thread STRING,
link STRING,
callerInformation STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED by '|'
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
LOCATION '/tmp/test-log/apache2log'
TBLPROPERTIES(
'es.nodes'='1.2.3.4', 
'es.resource'='sam3/apache2',
'es.net.proxy.http.use.system.props'='false');

从默认设置更改的变量:

SET hive.input.dir.recursive=true;
SET hive.mapred.supports.subdirectories = true;
SET hive.supports.subdirectories=true;
SET mapred.input.dir.recursive = true;
SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;

ADD JAR /usr/lib/gphd/hive-0.11.0_gphd_2_1_1_0/lib/elasticsearch-hadoop-2.1.0.jar;

我知道,可以为 elasticsearch 创建第二个表并使用 INSERT 添加数据。但是我需要这个过程是自动化的,所以添加到文件中的数据应该在它到达 hadoop 的时候插入到表中。

【问题讨论】:

    标签: hadoop elasticsearch hive elasticsearch-hadoop


    【解决方案1】:

    我认为没有办法。如果是这样,则无需在单独的外部表中定义表的存储处理程序。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post。 - From Review
    • @ebramtharwat 否定答案答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2015-09-13
    相关资源
    最近更新 更多