数仓开发遇到的那些事(3)

Flume-HDFS Sink的压缩方式

老程序员:小伙子,别用LZO,去把配置文件改成Snappy

我:为啥?(你不会不知道Snappy不能切片吧)

老程序员:LZO压缩率没Snappy高,你不知道?

我:但是LZO能切片啊.(理直气壮)

老程序员:你Flume配置文件里都写了128M滚动一次了,还切啥

我:(茅厕顿开)对对对.思维定式了.骚瑞骚瑞

Hbase手动自动分区

老程序员:上班严禁摸鱼,你维度表创建完了?

我:好了啊,咱们需求这么简单我连RowKey都不用设计,美滋滋

老程序员:分区规划做了吗?

我:(??)不是有自动分区吗,256M它会自己切一次啊

老程序员:(我刀呢)自动分区会不会数据倾斜?快去改.

我:维度数据也没多少啊.问题不大吧...(小声逼逼),而且我们的需求不就是根据id查单条维度数据来进行关联吗

老程序员:(好像说的有点道理,有点没面子)那你也不能摸鱼啊.来来来我来问你个问题

我:康忙

老程序员:Memstore默认的刷写时机?

我:128M或者一个小时

老程序员:那我九点半写一条,十点写一条,其他时间都没写入,啥时候刷写?

我:应该是十一点(不知道为什么)

老程序员:从底层说说看?

我:说句实话,俺不会(理不直气也壮)

老程序员:是有一个变量名字叫lastEdit,可以见名知义了没?

我:就是说最后一次编辑的时间过了一个小时,才会自动刷写.哦,跟我想的差不多

Hbase删除标记

老程序员:(还嘴硬?)那我再问问你,知道Hbase客户端有啥bug吗?

我:客户端中删除某id的某一个列族的某一列的数据,它只会删除当前最大版本的一条数据,不会删除一整列,再次查询竟然能查到小版本的数据,完全是坑人

老程序员:(惊!)还不错,那你怎么解决的?最后发现原因了吗?

我:IDEA用API写了个代码,就搞定了,应该是addDelete类的Column()和addColumns().这两个方法的区别就是一个是删除当前列的最大版本,一个是正儿八经的删除整列的数据.
其实最终的问题就是
删除标记,客户端里虽然我的语法是删除某一列的数据,但是客户端用的却是Delete这个标记,在API中的addColumns()是DeleteColumn标记,很明显客户端的是有bug的

 老程序员:好的,回答的不错,先回去等通知吧.

 我:好的好的,谢谢(好像哪里不对)

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>