hive数据导入elasticsearch

前言:

最近收到一个新的数据统计需求,分析用户打开文件记录,由于每天的记录数有1000w+,且需要统计维度较多,之前采用emr分析结果导出到mysql在展示的方案已经不在适用这个需求,所以决定启用elasticsearch来实现这个需求,刚好后面的搜索需求也会需要用到,这边讲一下在使用过程中遇到的一些问题;

  • 安装elasticsearch和kibana  

https://www.elastic.co/products 从官网下载最新的tar包解压即可、配置ip(默认只有本机可以访问),

访问 5601端口进入kibana控制台,使用dev tools进行测试;

正式环境上直接使用了阿里云的elasticsearch服务;

  • hive数据导入到elasticsearch

首先需要添加elasticsearch-hadoop-xx.jar到hive的lib下;

hive导入elasticsearch可以参考官方文档https://www.elastic.co/guide/en/elasticsearch/hadoop/2.0/hive.html#hive-alias

也比较简单,就是创建外部表、然后插入数据即可;这边比较纳闷的是官方文档中居然没有关于用户身份验证的参数https://www.elastic.co/guide/en/elasticsearch/hadoop/2.0/configuration.html,最后还是在https://yq.aliyun.com/articles/603377?spm=a2c4e.11163080.searchblog.25.5f052ec1Tzk6yj 这篇文章中找到

CREATE EXTERNAL table IF NOT EXISTS employees(
  id BIGINT,
  name STRING,
  birth TIMESTAMP,
  addr STRING
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES(
    'es.resource' = 'tpcds/ss',
    'es.nodes' = '',
    'es.net.http.auth.user' = '',
    'es.net.http.auth.pass' = '',
    'es.nodes.wan.only' = 'true',
    'es.resource' = 'company/employees'
);

到此hive导入elasticsearch就算是完成了,接下去就是kibana的使用了;

你可能感兴趣的:(elasticsearch)