1. 將兩個jar包添加到Hive的 hive.aux.jars.path目錄
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-hadoop</artifactId> <version>6.6.2</version> </dependency> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>
在hive中建立es索引的外聯表
create external table charge_current_frequency_es ( province string, vehicleType string, vin string, chargeType string, chargeCurrentFrequency array<bigint>, statis_time string ) STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' location '/warningplatform.db/ads/charge_current_frequency_es' TBLPROPERTIES ('es.resource' = 'charge_current_frequency/charge_current_frequency', 'es.mapping.names' = 'province:province,vehicleType:vehicleType,vin:vin,chargeType:chargeType,chargeCurrentFrequency:chargeCurrentFrequency,statis_time:time', 'es.nodes' = '192.168.11.29', 'es.port' = '9200' );
- 指定hive與es字段的匹配規則
- hive中的string能夠寫入es的date類型,格式能夠是yyyy-MM-dd HH:mm:ss,可是hive讀取es數據的時候,不能以string類型去接收es中date類型且格式爲yyyy-MM-dd HH:mm:ss的字段。
- 對hive的插入和查詢,即爲對es索引的插入和查詢。
3. 類型匹配