[博学谷学习记录]超强总结,用心分享|Hive导入数据到ES

一 下载 es-hadoop.jar 放到HDFS上, es-hadoop版本要跟 ElasticSearch版本对应

二 创建外部表

create external table if not exists tags_ec_userprofile.ec_tbl_logs(
      -- 字段名字
    ) 
        stored by 'org.elasticsearch.hadoop.hive.EsStorageHandler'
    tblproperties('es.resource'='ec_tbl_logs',   -- index的名字
    'es.nodes'='up01:9200',     -- es机器节点信息
    'es.index.auto.create'='TRUE',   -- 索引自动创建
    'es.index.refresh_interval' = '-1',  -- 定时refresh关闭, 减少refresh次数, 加快导数据过程
    'es.index.number_of_replicas' = '0',  -- es8 可以设置number_of_replicas 副本数量为0 目的加快导数据速度
    'es.batch.write.retry.count' = '6',   -- 重试次数
    'es.batch.write.retry.wait' = '60s'   -- 等待超时时间
    'es.mapping.names'='' -- 如果hive字段信息和ES字段有区别, 可以通过这个配置进行修改 hive字段名字:es字段名字, 
                  -- 如果字段不需要修改的话, 这个可以不配置
                  -- hive表字段名 跟 es表的字段名字不一致需要配置这个mapping names
     -- 注意这些配置信息, 不要手敲, 如果写错了不报错, 只是没有效果             
    );
    -- 使用外部表的原因, 数据实际上没在HDFS上 是在ES集群里, 创建这个外部表实际上就是给es-hadoop传参

三 add jar 把es-hadoopjar包添加到hive classpath下边 add jar 后面接.jar的路径

add jar hdfs:///libs/es-hadoop/elasticsearch-hadoop-7.10.2.jar;

四 把数据从数仓Hive表中查询出来, 插入到刚创建的外部表中(导入到ES中)

insert overwrite table tags_ec_userprofile.ec_tbl_users select *  from tags_dat2.tbl_users;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值