免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

林昊谈 HBase 技术在淘宝中的应用

  • 2011-07-10
  • 本文字数:1648 字

    阅读完需:约 5 分钟

在 7 月 9 日~10 召开的淘宝技术嘉年华期间,InfoQ 编辑有幸采访到淘宝数据平台开发团队的技术专家林昊(新浪微博 @bluedavy ),和他就 HBase 的特性,HBase 在淘宝中的应用,目前数据领域大家讨论的焦点和发展趋势进行了探讨。

InfoQ:HBase 主要有哪些特性,是什么让它备受推崇,让 Facebook 也采用它?

林昊:Facebook 是 Cassandra 的发起者,他们就想在自己的 Message 体系里面应用它,但是研究之后发现,Cassandra 的弱一致性会让它的 Message 体系在应用层上做很多的改造,它觉得付出的成本太大了,所以后来就选择测试了一下 HBase。发现 HBase 的强一致性给他们带来很多的便利,因为 HBase 只需要增加新的机器就可以增加写的吞吐量,对于他们的场景来说会非常的适合的。这也促使它们最终决定采用 HBase。

InfoQ:目前 HBase 主要帮助淘宝解决了哪些主要的问题?

林昊:其实对于很多互联网公司来说,他们对关系型数据库要求并不是那么高,比如 Join、报表的事务等,如果抛弃掉这些特性的话,换成 NoSQL,我们发现整个存储结构会很简单,读写的性能也会好很多。这一点对于我们来说还是很有吸引力的,否则随着数据量的增长,我们不得不疲于奔命去做分库分表等。

举几个简单的场景来说明一下吧。虽然我们现在基于 HBase 上线的产品还不是很多,但是很快大家用到的许多功能都会用到 HBase,比如现在用户经常去淘宝上查看已经买到的宝贝,或者去查过去三个月里自己买了多少东西等。还有就是以后淘宝用户每登录一次,系统都会自动跟踪你的行为,并做出分析,以便更好地为用户服务,这些数据也会被存储到 HBase 里面做实时的分析。包括广告的分析,也会基于 HBase 来做。

InfoQ:在你们使用 HBase 的过程中,遇到了哪些挑战?

林昊:对于我们来说,主要是 HBase 对于很多 Online 的场景支持的不够,比如 Online 项目通常会需要一些查询条件,对于我们来讲会有一些痛苦,所以我们就尝试使用 HBase 的一些三维有序存储来解决这类问题,从现在的测试结果来看还可以。另外就是 Namenode 的单点方案也不是很好用,因为一旦这个点出问题,整个系统可能都会有问题。所以我们现在有成员也在做 Namenode 的多点方案。除此之外,HBase 给运维也带来一些挑战。

InfoQ:如果有其他团队采用 HBase 技术,你会提供什么建议?

林昊:其实现在使用 HBase 的话,对应用层要求还是挺高的,所以如果需要采用 HBase 的话,还是建议要多了解一下 HBase 的特性,比如你的 Row Key 设计要很合理。如果你要做二级索引的话,在应用层也要做一些相应的工作,需要知道 HBase 是三维有序存储的。

InfoQ:根据你的了解,目前在数据领域大家讨论的焦点和趋势是什么?

林昊:其实随着互联网公司发展的年数越来越多,上网的用户也越来越多,最终一定会使数据量会越来越大。对于淘宝来说也是这样,随着数据量的增大,我们的数据存储成本也越来越高,我们会考虑一些简单的方案,更低成本的方案来解决。另外搜索也是很重要的,因为我们要从这么大的数据量里面很快地搜索出我们需要的东西。以前我们可能会用数据库来解决,但随着量越来越大,方案会越来越复杂,最终可能会造成存储和检索会非常的热。

其实从今年也可以看得出,NoSQL 的很多产品还是为了解决海量数据的问题。另外就是分析的问题是一直就存在的,现在的分析基本还是基于 Hadoop、MapReduce 的思想来做,后面的话可能更多地是离线的分析。但是对于实时的分析要求也很高,比如让推荐变成实时,效果会好很多。所以我认为,分析也会是一个大家热衷讨论的话题。

除了上面谈到的这些问题,InfoQ 还就淘宝在使用 HBase 技术之前所作的调研,对 HBase 的性能测试结果,HBase 需要改进的地方等和林昊进行了深入探讨,在 InfoQ 随后发布的视频文件中会包括这些问题。另外在本次的淘宝技术嘉年华上,InfoQ 还就 HTML5、移动开发、测试、海量数据架构、交互设计等话题采访了相关的专家,并录制了部分演讲视频,整理好后都会发布在 InfoQ 网站上,请大家保持对 InfoQ 的关注,或者关注 InfoQ 新浪微博( @InfoQ ),第一时间了解这些内容的发布情况。

2011-07-10 22:5711843

评论

发布
暂无评论
发现更多内容

等待时间的忍受度

箭上有毒

8月日更

2021Java大厂高频面试题:Redis面试题及答案整理

Geek_f90455

Java 程序员 面试 后端

2021Java面试笔试总结!Flutter中的widget

Geek_f90455

Java 程序员 面试 后端

2021必看!热榜!基于jsp

JVM调优资料

Java 程序员 面试 后端

2021非科班生的Java面试之路,set集合

JVM调优资料

Java 程序员 面试 后端

前端之数据结构(一)

Augus

数据结构 8月日更

12道Java高级面试题:瞧一瞧

Geek_f90455

Java 程序员 面试 后端

15个经典面试问题,如何设计一个百万级用户的抽奖系统?

Geek_f90455

Java 程序员 面试 后端

Github标星5.3K,YGC问题排查,又让我涨姿势了

JVM调优资料

Java 程序员 面试 后端

Gin 介绍

xcbeyond

Go 语言 gin 8月日更

Linux 环境如何使用 kill 命令优雅停止 Java 服务

陈皮的JavaLib

Java Linux 面试 springboot 8月日更

使用 Sequelize 快速构建 PostgreSQL 数据的 CRUD 操作

devpoint

node.js postgresql API 8月日更

IDEA下载及新建第一个Java项目(Helloworld)

Bob

8月日更

小技巧 | Get 到一个 Web 自动化方案,绝了!

星安果

chrome 自动化 Web 插件 chrome扩展

Linux之at命令

入门小站

Linux

编程的世界有点神奇

Nydia

数据缓存历险记(二)--被过期键经理上了一课

卢卡多多

redis Redis键过期监听 8月日更

【翻译】数据包的旅程 - 主机之间通信

luojiahu

计算机网络 OSI模型

graphql计算指令之@skipBy和@includeBy:使用表达式实现简单控制流

杜艮魁

开源 后端 低代码 graphql

2021程序员进阶宝典!Java程序员:

JVM调优资料

Java 程序员 面试 后端

「SQL数据分析系列」16. 分析函数

Databri_AI

sql 函数 分析

Dremio 推出在 AWS 云上运行的数据湖服务

水滴

数据湖 8月日更 Dremio

NLP随笔(四)

毛显新

自然语言处理 神经网络 深度学习

2021Java进阶新篇章,狂刷1个月Java面试题

Geek_f90455

Java 程序员 面试 后端

趁着课余时间学点Python(三)变量,基本数据类型,运算符

ベ布小禅

8月日更

藏在煤箱中的文明:一个会说话的箱子能告诉我们什么?

脑极体

2021Java面试总结!再见笨重的ELK

Geek_f90455

Java 程序员 面试 后端

Vue进阶(五):与 Vuex 的第一次接触

No Silver Bullet

Vue vuex 8月日更

【设计模式】单例模式

Andy阿辉

编程 程序员 后端 设计模式 8月日更

在线手机号码上标生成工具

入门小站

工具

2021年您应该知道的技术之一!MySQL最全整理

Geek_f90455

Java 程序员 面试 后端

林昊谈HBase技术在淘宝中的应用_Java_霍太稳@极客邦科技_InfoQ精选文章