首页 / 新闻

09.

28

2014

星环TDH:性能大幅领先于开源Hadoop2的技术架构赏析

技术博客

转载自CSDN

摘要:孙元浩在2013年创立星环信息科技之前,曾任Intel数据中心软件部亚太区CTO,从2009年开始开发应用Hadoop。旗下Transwarp Data Hub(TDH)目前是国内落地最多的一站式Hadoop发行版,性能大幅领先于开源Hadoop2。

星环科技的核心开发团队参与部署了国内最早的Hadoop集群,团队领导人孙元浩在国际领先的软件开发领域有多年经验,在英特尔工作期间曾升任至数据中心软件部亚太区CTO。近年来该团队潜心研究大数据和Hadoop的企业级产品,并在电信、金融、交通、政府等领域的落地应用拥有丰富经验,是中国大数据核心技术企业化应用的开拓者和实践者。

Transwarp Data Hub(简称TDH)是国内落地案例最多的一站式Hadoop发行版, 是国内外领先的大数据基础软件,性能大幅领先于开源Hadoop2。TDH应用范围覆盖各种规模和不同数据量的企业。通过内存计算、高效索引、执行优化和高度容错的技术,使得一个平台能够处理10GB到100PB的数据,并且在每个数量级上都能比现有技术提供更快的性能;企业客户不再需要混合架构,TDH可以伴随企业客户的数据增长, 动态不停机扩容,避免MPP或混合架构数据迁移的棘手问题。以下是对星环信息技术(上海)有限公司创始人兼CTO 孙元浩的采访实录。

CSDN:首先请你介绍一下自己、公司及技术团队,目前贵公司关注的重点?

孙元浩:大家好,我叫孙元浩,是星环信息科技(上海)有限公司的联合创始人,之前有10年IT行业从业经验,从事过BIOS、驱动程序、操作系统、编译器和分布式系统的研发。星环科技是一家大数据领域的高科技公司,致力于大数据基础软件的研发,平台产品名为Transwarp Data Hub(简称TDH),是一站式Hadoop和Spark大数据平台,提供完整的SQL支持、丰富的R语言挖掘能力以及更快的性能。之所以说是一站式平台,是因为TDH在处理大中小数据时,性能都可以比传统数据处理技术更快,用户就不需要在多个平台之间迁移,也不需要混合架构了。

星环信息技术(上海)有限公司创始人兼CTO孙元浩

星环科技的技术开发团队来自Intel、Microsoft、IBM, NVidia、百度等知名科技公司,以及南京大学、复旦大学、上海交通大学、中国科学技术大学、美国普林斯顿大学等多个知名学府,也包括放弃海外知名企业优厚待遇回国创业的成员。星环科技的核心团队参与部署了国内最早的企业级Hadoop集群。

目前公司关注的重心在产品研发和团队建设上。研发投入在持续加强,欢迎有激情并且喜欢大数据基础软件研发的青年加入星环。

CSDN:为什么选择大数据行业创业,是看到什么样的市场机会?初衷是什么?有没有背后的故事分享给大家?

孙元浩::IT行业每过5~10年会出现一次技术革命,而分布式系统和大数据技术正在从底向上重构整个数据处理软件的生态系统,并以很快的速度被企业所接受,从早期的互联网公司到今天的各个行业的企业,都在尝试和使用新技术。在过去将Hadoop技术应用到传统企业的过程中,我们也发现Hadoop自身的一些弱点以及企业在应用这些新技术方面的困难,很少企业有财力和实力购置上千台服务器来完成单一的任务,企业需要功能更丰富、性价比更高的技术。

尤其在中国,因为用户数众多,中国企业的数据量普遍要多于国外企业一个数量级;中国企业的应用场景也非常复杂,很少有国外产品不经修改在中国能够不出故障地运行。中国的电信运营商、银行、交通等领域,数据量和复杂程度要远超国外同类企业,急需新一代数据处理技术来解围。这就是我们创立星环科技的初衷,致力于提供优秀的大数据基础软件,来解决这些问题。

另外一个大背景是国内大部分企业的核心数据库系统大都来自国外公司的产品,我们预计在未来的10年内,企业数据中心领域会涌现出一批国内企业和优秀产品,并逐渐取代外国公司的地位。而借助Apache Hadoop和Spark,我们可以和国外公司站在同一个起跑线上,同步开发产品,同时开展竞争,我们有信心和能力做出优秀的产品,为中国客户提供更好的服务。

CSDN:你们的TDH是国内落地案例最多的Hadoop发行版,能否给我们详细谈谈TDH的技术架构,这个版本的构建过程,用到哪些技术?区别国内外其他发行版的优势?

孙元浩:TDH产品已经发展到第三个大版本。目前的TDH3.3由四部分组成, 包括Transwarp Hadoop基础版、Transwarp Inceptor交互式分析引擎、Transwarp Hyperbase实时数据库和Transwarp Stream流处理引擎。下图比较清楚地显示了这个版本的组件。

其中我们对Hadoop的改进主要集中在HDFS和YARN之上,主要提供了高速Erasure Code编码方式,适合near-line storage类应用,可以降低一倍磁盘容量需求,同时提高一倍容错性能。这个功能主要是为拥有PB级别的客户所设计和实现,例如电信业的话单数据、交通/电力行业的传感器数据、银行业的历史交易记录等。在YARN上的主要改进是为了使YARN能够更全面的管理CPU/内存等资源,以及更有效地支持Spark和Map/Reduce应用集群,因为我们的产品是缺省建立在YARN之上的,包括Spark,所以YARN是TDH中最核心的部件之一。

我们在Hadoop之上提供三个产品。其中目前的主打产品是基于Spark的交互式分析和挖掘引擎Inceptor,有三层架构(见下图),最下面是一个分布式缓存(Transwarp Holodesk),可建在内存或者SSD上,中间层是Apache Spark计算引擎层,最上层包括SQL’99和PL/SQL编译器、统计算法库和机器学习算法库,提供完整的R语言访问接口。这个引擎的主要特点是高性能、SQL支持完整、以及很好地支持R语言。

我们对Spark本身以及SQL引擎做了大量的优化。对Spark本身的优化集中在DAG执行调度和Shuffle优化上,使Spark能够处理大数据量;当然Holodesk以及索引的引入也需要对Spark做改进。我们开发的SQL引擎可以自动识别HiveQL,SQL1999和PL/SQL语法。同时我们为SQL引擎开发了各类优化器,包括CBO。与其他发行版的Hadoop相比,当数据在磁盘上时,Inceptor的性能比标准Hadoop快2到5倍。当数据在分布式内存或SSD上时,一般会有5到10倍的加速比。采用流行的报表工具例如Tableau连接Inceptor时,我们通常把要分析的全量数据(通常是TB级别)装载到内存或SSD上,性能非常流畅,可以实现真正的交互式数据分析。

与Cloudera Impala相比,我们的性能互有短长,TPC-DS的99个case中,大部分case我们比Impala快,有9个比Impala慢,但我们的优势是能够处理的SQL要多很多,有些SQL中间结果的聚合率比较低,导致中间结果过大,由于类Dremel架构的缺陷,这种场景Impala还没有高效地处理,这就导致Impala在数据分布发生变化或者数据量变大时会常常无法运行得出结果。

Inceptor支持在SSD固态盘上建列式存储(称为holodesk columnar store),这个分布式缓存跟Tachyon有本质不同,存储格式缺省就是表结构,并且带本地索引。由于内存、SSD和机械硬盘的速度比大致是100:10:1,而同样容量的内存、SSD、硬盘的价格比也是100:10:1。实际测试发现,采用SSD替代内存作为Inceptor的列式缓存,性能没有显著下降,因此可以用同样的价格买到容量大10倍的SSD作为缓存,一方面可以提供跟纯内存缓存接近的性能,另一方面也可比纯内存数据库或者Apache Spark处理大10倍的数据。目前还没有任何一个其他hadoop发行版具备这个功能。

第二个优势是SQL支持比较完整,我们目前支持完整的SQL1999,正在实现更复杂的PL/SQL语法,包括存储过程、函数、游标等功能。Cloudera最新发布的Impala 2.0 roadmap,到2014年底实现的SQL功能我们的Inceptor在今年上半年就已经具备了。SQL支持的完整程度比性能更加重要,大量的数据仓库/数据集市应用中都采用了较为复杂的SQL99语法,没有这些语法支持,要想把现有应用迁移到Hadoop上来是不可行的。

第三个优势是跟R语言进行整合,我们提供R语言的接口直接调用底层的机器学习算法和数据挖掘算法,也可以在分布式数据集上并行运行R语言的现有串行算法。相对于单机版的R语言来说,能够处理的数据量变大了,可以对全量数据进行分析,而不是采样数据。R语言是一个非常强大的数据挖掘和统计语言,本身也包含功能强大的绘图库。我们已经在一些客户中使用R语言建立在线推荐系统,相对于基于SQL统计和协同过滤的传统推荐方法,新算法精确度更高,大家在近期会看到这方面的案例报道。

Hadoop之上的第二个产品Hyperbase是建立在Apache HBase基础之上,具备多种索引技术、分布式事务处理、全文实时搜索、图形数据库在内的实时NoSQL数据库。Hyperbase可以高效地支持企业的在线OLTP应用、高并发OLAP应用、批处理应用、全文搜索或高并发图形数据库检索应用。另外一个具有特别优势的地方是我们的Inceptor SQL引擎支持Hyperbase,用户可以用SQL99来访问Hyperbase中的数据,性能与API相比有一定损失,但SQL执行的并发度和性能仍然非常优秀。

我们目前采用Hyperbase为企业创建可扩展在线运营数据库(Operational Database)或者实时分析型数据库(ODS - Operational Data Store)。目前与Hyperbase功能集相类似的产品是硅谷创业公司Splice Machine的基于HBase的数据库产品,技术上他们的SQL引擎是通过Derby改造而来。Salesforce开源的Phoenix也提供了部分SQL功能,不过成熟度还远不足以支撑真实应用。

Hadoop之上的第三个产品是Transwarp Stream实时流处理引擎,这个引擎以Spark Streaming为基础,整合了Kafka分布式队列,提供了丰富的流计算表达能力,支持复杂的应用逻辑。当前的这个版本主要是提供一个稳定的,可7x24小时不间断运行的流处理框架。我们正在开发的功能是利用SQL来描述流处理应用逻辑,使开发人员更容易开发新的流处理应用。与Apache Storm相比,Spark Streaming创新地把流式实时数据按时间切片,对每个短小时间间隔内的数据进行批处理,当这个时间间隔小到100毫秒时,效果跟流处理系统很接近。Spark Streaming的一个巨大优势是可以把复杂分析任务轻易地用在流数据上,甚至可以进行流式的机器学习。这在Storm等以事件驱动为计算模型的流处理系统上是非常难实现的。

CSDN:主要应用场景有哪些?目前在国内的使用情况和客户规模等?能否给我们分享一下实际的应用案例?

孙元浩:自从星环成立以来,我们已经有近百个客户部署了我们的软件,有数十个签约并上线运行的客户,这里不包括我们团队以前服务过的客户。这里我简单举几个应用场景的例子。

1. 运营商流量经营分析:在我们的一个客户中,每天的流量数据在2TB~5TB左右,这些数据被拷贝到HDFS上,通过我们的Inceptor交互式分析引擎产品,运营商能运行几百个复杂的数据清洗和报表业务,总时间比类似硬件配置的小型机集群和DB2快2~3倍。在这个应用中,由于SQL极为复杂,很难翻译转换为开源Hadoop目前支持的SQL,因此星环的Inceptor SQL引擎体现出较大优势,可以轻易地运行这些复杂SQL,并且性能比较突出。
2. 大型网站Web服务器的日志分析:我们为一个CDN厂商建设了一个日志分析系统,这个厂商的缓存设备支持着国内一个大型网站的Web服务器集群,这些Web服务器每5分钟收录的点击日志就高达800GB左右,峰值点击每秒达到900万次。我们每隔5分钟将这些数据装载到内存中,高速计算网站的热点URL,并将这些信息反馈给前端CDN缓存服务器,以提高缓存命中率。命中率提高后为CDN厂商增加了收入。这个系统是7x24小时不间断运行的。
3. 城市交通卡口视频监控信息的实时分析:另一个7x24不间断运行的案例是在智能交通行业,我们采用Transwarp Stream进行全省范围的交通卡口通过视频监控收录的信息进行实时分析、告警和统计(计算实时路况),对全省范围内未年检车辆或套牌车的分析延时在300毫秒左右,可以做出实时告警,所以开车的朋友最好要按时年检。
4. IPTV收视统计与点播推荐:有一个国内著名的IPTV运营商采用我们的产品建设了一个实时收视率统计和点播推荐系统,可以实时收集用户的遥控器操作,提供实时的收视率榜单;并且根据内容推荐和协同过滤算法,实现了点播推荐服务。

CSDN:针对TDH,目前客户关心最多的问题是什么?你们有什么针对的解决措施?

孙元浩:对于目前TDH的客户,对TDH的性能、SQL支持程度和我们的服务是比较满意的,有一些客户不满足于只是用TDH来做SQL统计分析,他们关心用TDH还能做什么全新的应用。这是一个探索新应用的过程,同时也是一个市场教育的过程。针对这种情况,一方面我们成立了一个团队,专门帮助客户去探索全新的应用,例如在离线分析领域,我们在开发更多的统计算法和机器学习算法来支撑新应用,并协助客户应用全新的机器学习算法进行数据的深度分析。另一方面,我们也在建立生态系统,跟更多的合作伙伴合作,支持合作伙伴开发新的应用解决方案。

CSDN:作为分布式架构大师,你在大规模Hadoop集群构建方面有没有好的经验分享给大家?

孙元浩:这个问题比较大,可以写一篇文章了:)我后面再写吧!