分享

hive抽取es数据

有些公司是把爬虫的数据放到es上或者solr上,方便查询,建索引……
问题:
        如果要把爬虫数据建成一张维表,比如用做和电商数据关联,就要把es数据抽取到hive表里
解答:

add jar elasticsearch-hadoop-hive-2.4.0.jar;
drop table if exists ec_mapping;
create table ec_mapping(
docid string,
registerTime timestamp ,
pubTime timestamp ,
buyTime timestamp ,
pid string ,
userName string ,
userId string
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES(
'es.nodes' = 'ip:port',
'es.index.auto.create' = 'false',
'es.resource' = 'index/type',
'es.read.metadata' = 'true',
'es.mapping.names' = 'docid:_id,
registerTime:registerTime,
pubTime:pubTime,
buyTime:buyTime,
pid:pid,
userName:userName,
userId:userId');

这样就可以select了,可以建一张外部表,insert overwrite到外部表中,进行es到hive的数据迁移

讨论:es可以,那solr呢,目前我是写了java程序抽取的,然后再落地文件往hive表里load
个人觉得:建映射表跟oracle中dblink差不多,不如java程序抽取的稳定,若是抽到一半断网了,落地的文件也会有一半拿下来了

已有(3)人评论

跳转到指定楼层
leletuo2012 发表于 2017-1-22 15:06:04
借助 StorageHandler 实现SolrStorageHandler
回复

使用道具 举报

langke93 发表于 2017-1-19 21:10:33
可以提高效率,但是需要记录断电相关信息。这样数据准确定可以提高。
回复

使用道具 举报

zhuqitian 发表于 2017-1-20 10:44:02
langke93 发表于 2017-1-19 21:10
可以提高效率,但是需要记录断电相关信息。这样数据准确定可以提高。

多谢,我们这边就是暂时的一个需求,回补数据,大批量的网络io
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条