【此文几天前曾删除过一次,因为并没有真正意义上的的解决如标题所示的问题】

接上一篇文章elasticsearch数据到hive、es-hadoop6.3.0中最后hive的查询任务,某些map长时间执行。

1、查看19888端口历史任务:
hive任务,一些map长时间无法结束
2、8088

24个map长时间执行,96个完成。

24个未完成的map分别在ip11、12、13节点,分别是9、9、6个map
hive任务,一些map长时间无法结束
查看这些失败的任务,发现不存在失败map集中在某一datanode节点的情况

yarn?不,集群yarn状态ok。
hive任务,一些map长时间无法结束

yarn资源的分配?看看log,好吧,我也看不出什么名堂
hive任务,一些map长时间无法结束
留意到这样的日志,但不知意义(SUCCEEDED的map不会有这样的log,也有可能这只是log的中间状态?)
hive任务,一些map长时间无法结束

先放着,明天再弄
后来又折腾了会,还是没能解决这个问题。官网以及英文社区找了一阵,也是没有收获。

疑惑:与数据分布分发有关系吗?
因为ES说建立外部表,按道理数据是写入了HDFS才对,可是几百G的数据,不可能一下子就写入HDFS了啊,但是确实在执行es数据“转入“hive后一会儿,就可以查询到数据。我猜测数据并没有导入到HDFS?但是hive底层是要跑mapreduce任务的啊?

而且执行count表记录数也迟迟不能结束Map任务,并且效果比之前SELECT效果还差:
hive任务,一些map长时间无法结束

HBase、Hive整合,通过Hive读/写HBase中的表

为了尽量解决这个疑惑,基于,将Hive与HBase的那张表整合,使用Hive进行查询。
整合使用的包:
/opt/cloudera/parcels/CDH-5.13.2-1.cdh5.13.2.p0.3/lib/hive/lib/hive-hbase-handler.jar

为什么是整合而不是再次导入数据到Hive?
不通过在HIVE中再次填充数据实现是因为复制数据可能会出现一致性问题。

官网文档:
hive任务,一些map长时间无法结束

最开始我尝试不指定列簇:
(因为我的Hbase表只有一个列簇,所以我尝试不指定列簇,也就是不是family:column,而仅仅是:column)

MetaException(message:Column Family is not defined in hbase table pappers_part)

添加列祖簇后,成功(经实验验证,列簇后面的列名,不区分大小写

完整操作:
CREATE EXTERNAL TABLE hbasepapper(key int,ab string,ad string,addr string,agc array<string>,agt array<string>,an string,au array<string>,cdd string,cdn array<string>,clm string,clmd string,cnlx string,ctd string,ctn array<string>,dc array<string>,ecla string,ft string,ian array<string>,ipc array<string>,ipn array<string>,jpc string,ls string,lsd string,lse string,lso string,lsr string,pa array<string>,pc string,pctf string,pd string,pf string,pfd string,pn string,pr array<string>,qwft array<string>,ti string,upc string,uspc array<string>,wxzt string,xgd string,yxzt string,zszt string,zyft string,docid string,mid string,score string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,pappers_info:ab,pappers_info:AD,pappers_info:ADDR,pappers_info:AGC,pappers_info:AGT,pappers_info:AN,pappers_info:AU,pappers_info:CDD,pappers_info:CDN,pappers_info:CLM,pappers_info:CLMD,pappers_info:CNLX,pappers_info:CTD,pappers_info:CTN,pappers_info:DC,pappers_info:ECLA,pappers_info:FT,pappers_info:IAN,pappers_info:IPC,pappers_info:IPN,pappers_info:JPC,pappers_info:LS,pappers_info:LSD,pappers_info:LSE,pappers_info:LSO,pappers_info:LSR,pappers_info:PA,pappers_info:PC,pappers_info:PCTF,pappers_info:PD,pappers_info:PF,pappers_info:PFD,pappers_info:PN,pappers_info:PR,pappers_info:QWFT,pappers_info:TI,pappers_info:UPC,pappers_info:USPC,pappers_info:WXZT,pappers_info:XGD,pappers_info:YXZT,pappers_info:ZSZT,pappers_info:ZYFT,pappers_info:docid,pappers_info:mid,pappers_info:score") TBLPROPERTIES("hbase.table.name" = "pappers_part");

然后执行之前遇见问题的HQL,map reduce一切正常。。。

这个疑惑,依然没有解决。。。

相关文章: