hive导入hbase笔记
背景:
需要记录用户最近x天内浏览过和下过单的live房间记录
过程:
从hive捞了一波数据,发现有几亿条,初步选型为hbase,之后的工作可以说是折腾了我三天一夜,特此记录,省的下次再浪费时间
步骤:
1、需要在hive创建数据时建立一列rowkey列用来做导入hbase的rowkey
rowkey设计规则:一般建议定长,就算为了节省空间不是定长,split的前缀必须定长!!!!不然就会导致数据导入不均衡
exp:2wqps ,20G数据,7天ttl的量级数据大概需要至少14个region,如果想要均分到14个region上,我的rowkey一开始设计为(userId%100)8_(userId)_(房间Id)_(pt分区字段)
以userId作为前缀的条件是在当前场景下userId足够散列,并且userId可以作为入参用来生成rowKey,其实如果选择随机数作为前缀更好,但是要考虑到在hive上游生成随机数怎么通过服务端入参给到查询hbase的接口里比较复杂,要设计两端即服务端与hive上游的随机种子和随机算法保证一致之类
hive导入hbase笔记最先出现在Python成神之路。
共有 0 条评论