使用hive向elasticsearch中写数据

在某些场景下,咱们须要直接将hive中的数据直接推到elasticsearch。下面我来介绍如何实现。首先你要肯定本身的elasticsearch的版本,版主的是elasticsearch-2.4.1 因此要用2.4.1以上的jar包:elasticsearch-hadoop-2.4.3.jar,这个jar包可在maven库中查到http://mvnrepository.com/
准备工做作好咱们就开始实现了。第一步,建立你想要的索引curl -XPOST "http://192.168.4.217:9200/test_tag"
第二步,建立hive外部表:node

hive -e"
add jar hdfs:/opt/data/jar/elasticsearch-hadoop-2.4.3.jar;
add jar hdfs:/opt/data/jar/org.apache.commons.httpclient_3.1.0.v201012070820.jar;
--org.apache.commons.httpclient_3.1.0.v201012070820.jar这个jar包通常是不用加的,除非在报httpclient相关错误的时候才加

use ods;
create external table if not exists app.test_tag(
complaint_id string,
tag_name string,
classification string,
sub_classification string
) 
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' 
TBLPROPERTIES('es.nodes'='192.168.4.217','es.resource' = 'test_tag/defect_recommend_tag');
--es.resource斜线前面为索引,斜线后面为mapping名称。mapping能够不用事先建好,当数据插入时会自动根据数据类型建立mapping。

insert overwrite table app.test_tag
select complaint_id,tag_name,classification,sub_classification from app.src_test_tag;"

程序执行完毕,就能够在es里看到数据了。apache

相关文章
相关标签/搜索