有些公司是把爬虫的数据放到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程序抽取的稳定,若是抽到一半断网了,落地的文件也会有一半拿下来了
|