elasticsearch + hive環境搭建


一、環境介紹:

elasticsearch:2.3.1

hive:0.12

二、環境搭建

2.1 首先獲取elasticsearc-hadoop的jar包

鏈接地址:http://jcenter.bintray.com/org/elasticsearch/elasticsearch-hadoop/2.3.1/elasticsearch-hadoop-2.3.1.jar,下載即可。需要說明的是你的elasticsearch什么版本,那么elasticsearch-hadoop的jar包就什么版本,否則后果難料

2.2 hive集成elasticsearch

將elasticsearch-hadoop-2.3.1.jar拷貝到hive的默認lib目錄即可。我的目錄是:$HIVE_HOME/auxlib目錄

啟動hive,查看效果:

/home/q/java/default/bin/java -Xmx256m -Djava.net.preferIPv4Stack=true ***  -hiveconf hive.aux.jars.path=file:///home/q/hive/hive-0.12.0-bin/auxlib/elasticsearch-hadoop-2.0.1.jar

只要包含了上面的紅色部分說明集成成功

三、插入數據

3.1 建立數據表

3.1.1 建立view表

CREATE EXTERNAL TABLE user  (id INT, name STRING)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'radiott/artiststt','es.index.auto.create' = 'true','es.nodes' = 'elastisticsearch.*.qunar.com','es.port' = '9222');

有幾個參數,es.nodes是配置的es的url地址,默認是localhost。es.port是端口號碼,默認是9200

3.1.2 建立數據表

CREATE TABLE user_source  (id INT, name STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

3.2 加載數據

3.2.1 加載基礎數據

數據示例,我放在/tmp/user_source.log

1,medcl  
2,lcdem  
3,tom  
4,jack 

加載到user_source表,命令如下:LOAD DATA LOCAL INPATH '/tmp/user_source.log' OVERWRITE INTO TABLE user_source;

3.2.2 加載到es

INSERT OVERWRITE TABLE user  SELECT s.id, s.name FROM user_source s;

查看效果:

 

四、參考文檔:

http://blog.csdn.net/sunflower_cao/article/details/39896189

https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html#_essential_settings


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM