第一步:首先要保证网络是通的,很多公司里子网遍布,要和运维和工程侧同事确认好网络是通的,es的地址可以通过curl es地址的方式测试一下。
第二步:下载需要的jar包,必须的是es-hadoop的包,可以在https://www.elastic.co/cn/downloads/下载,其他可能还需要,如果没有就等报错然后百度查吧。。。。
第三步:在hive中添加jar包,ADD JAR hdfs://nmcluster/user/root/test/es_hadoop/elasticsearch-hadoop-hive-7.8.0.jar;
第四步:hive中建立es外部表
CREATE EXTERNAL TABLE hive_to_es_test ( user string ) STORED BY ‘org.elasticsearch.hadoop.hive.EsStorageHandler‘ TBLPROPERTIES( ‘es.nodes‘ = ‘es地址‘, ‘es.index.auto.create‘ = ‘true‘, ‘es.resource‘ = ‘索引/类型r‘, ‘es.write.operation‘=‘upsert‘ );
es.nodes表示es的节点,多个用“,”分开;
es.index.auto.create表示如果索引不存在自动创建;
es.resource表示指定的索引和类型;
es.mapping.id表示es的_id对应的字段;
es.mapping.names表示其他字段的对应(可以不写,插入时按顺序依次对应即可);
es.write.operation表示如果id重复就更新数据;
第五步:hive中的需要同步的数据表,准备好,如果不写names配置项,需要和es中的字段顺序对应
第六步:推送数据
INSERT OVERWRITE TABLE hive_to_es_test SELECT * FROM test_app.to_es;
原文:https://www.cnblogs.com/stAr-1/p/13220762.html