hive与elasticsearch的数据交互

来源:互联网 发布:淘宝数据统计工具 编辑:程序博客网 时间:2024/05/12 09:05

版本:elasticsearch-2.4.1

一、使用hive向elasticsearch中写数据

第一步、创建你想要的索引curl -XPOST "http://000.000.000.000:9200/test_tag" 
第二步、创建hive外部表:
--关闭Hive推测执行,执行INSERTSET hive.mapred.reduce.tasks.speculative.execution = false;SET mapreduce.map.speculative = false;SET mapreduce.reduce.speculative = false;

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'='000.000.000.000','es.resource' = 'test_tag/defect_recommend_tag');--es.resource斜线前面为索引(这里索引与hive表同名),斜线后面为mapping名称。mapping可以不用事先建好(建议自定义一个),当数据插入时会自动根据数据类型创建mapping。insert overwrite table app.test_tagselect complaint_id,tag_name,classification,sub_classification from app.src_test_tag;"

程序执行完毕,就可以在es里看到数据了。

二、使用elasticsearch向hive中写数据

第一步、创建hive外部表:
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'='000.000.000.000','es.resource' = 'test_tag/defect_recommend_tag');--es.resource斜线前面为索引(这里索引与hive表同名),斜线后面为mapping名称。mapping可以不用事先建好(建议自定义一个),当数据插入时会自动根据数据类型创建mapping。
必须指出明确的字段 select complaint_id from app.test_tag; 不可以使用 select * from app.test_tag;










0 0
原创粉丝点击