最近朋友公司在做一些数据的迁移,主要是将一些Hive处理之后的热数据导入到HBase中,但是遇到了一个很奇怪的问题:同样的数据到了HBase中,所占空间竟增长了好几倍!详谈中,笔者建议朋友至少从几点原因入手分析:

  1. HBase中的数据相对于Hive中的数据会新增一些附加信息导致磁盘占用的增加,比如布隆过滤器

  2. Hive中的数据是否进行过压缩,比如snappy,压缩比还是很高的

  3. row key和列族都会占据一定的空间,当数据量较大时,仅二者就会占据很多不必要的空间

  4. 建议将相同查询场景下的几个常用的列的值拼接成一个列,节省KeyValue结构化带来的开销

Hive和HBase都可以作为存储系统,不禁思考引入HBase做数据存储的原因?

  1. 通过scan、get可以批量、单条获取数据,通过bulkload、put可以批量、单条导入数据

  2. 在实际生产环境,通常将计算和存储进行分离,保证集群规模水平可扩展,易于提高整体的吞吐。通过单机性能优化和集群的扩容,确保业务大幅增长时,存储不能没有成为系统的瓶颈

  3. 弱schema的特性能够很好的应对业务数据频繁变化的情况,也能够方便支持一些特殊业务场景的数据逻辑

当然,除了上述原因,还有很多涉及底层的原理环节和实际的业务场景需求,这就要求我们对HBase有足够的了解。

关联文章:

深入探讨HBASE

HBase高级特性、rowkey设计以及热点问题处理

HBase中Memstore存在的意义以及多列族引起的问题和设计


关注微信公众号:大数据学习与分享,获取更对技术干货

最新文章

  1. 人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
  2. crm on premise IFD 部署下提供oauth 2.0 集成自定义应用
  3. 在DCOM 中不存在WORD、EXCEL等OFFICE组件
  4. Myeclipse的使用
  5. 【leetcode】Remove Duplicates from Sorted Array I & II(middle)
  6. coffeeScript学习02
  7. ubuntu下安装 openssl 开发库
  8. preventDefault()方法
  9. TCP/IP FTP/TFTP
  10. asp.net 调用天气所遇到的问题
  11. NetMQ
  12. Linux 编程--三种常用的定时器
  13. 【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan)
  14. 展示博客---Alpha版本展示
  15. 在oracle中创建自动增长字段
  16. [Unity动画]05.Entry & Exit & Any State
  17. AspNetPager 控件使用
  18. java通过POI和easypoi实现Excel的导出
  19. Mac - iPhone屏幕录制
  20. 关于CentOS系统中,文件权限第11位上是一个点的解读

热门文章

  1. Spider_基础总结7_爬虫基本模板(3个类)
  2. 第05组 Alpha冲刺 (2/6)(组长)
  3. 【JVM第八篇--垃圾回收】GC和GC算法
  4. __all__有趣的属性
  5. Windows/Linux 下反弹shell
  6. [原题复现+审计][RoarCTF 2019]Easy Calc(http协议走私、php字符串解析漏洞)
  7. [原题复现][2020i春秋抗疫赛] WEB blanklist(SQL堆叠注入、handler绕过)
  8. Maximum execution time of 30 seconds exceeded in
  9. 在线思维导图Ayoa有哪些比较好用的功能
  10. 对于MySQL数据库四种隔离等级