Hive on ES

  ES对于类似数据库的SQL查询很无力,可以使用Hive on ES来实现SQL的查询。2个百万级的索引做关联时,需要大概1分多钟,基于es2.1版本。

 

1.将elasticsearch-hadoop-2.1.1.jar拷贝到hive/lib目录下。

2.创建hive表

   create external table test(

        name string,

        address  ARRAY<STRING>,

       )

      stored by 'org.elasticsearch.hadoop.hive.EsStorageHandler'

       tblproperties(

          'es.cluster.name'  = 'es',

         'es.resource' = 'datatype/mytype',

         'es.node' = '27.10.1.2,27.10.1.3',

         'es.transport.port' = '9300',

        'es.field.names' = 'name ,address '

     );

    上面的例子中,es中的name字段为string,address为多值字段multi_field ,hive中的数据类型为ARRAY<STRING>。es和hive中数据类型对应关系为:

        int int,

        long bigint,

        float  float,

        double   double,

        string   string,

        multi_field  ARRAY<STRING>,

        birthdy   timestamp

3.查询

  select * from person p,contact c where p.telephonenum = c.phonenum;

 

     也可以通过Hive向es中导数据,或者直接读取hdfs数据以scroll bulk方式往es中导数据。

转载于:https://www.cnblogs.com/lnlvinso/p/7077471.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值