开篇:写给致力于大数据技术发展的志同道合者
我们是星环科技的大数据研发部门,是国内专注于大数据平台技术研发的团队,大数据领域平均工作经验超过3年,一支有技术理想的团队。
为什么要创建大数据开放实验室的公众号?
1复杂的大数据技术栈
提到大数据,很多人可能都听说过4V - Big Volume, Big Velocity, Big Variety, Big Value,大数据从业人员的工作内容也都和这4个V中的某些内容密切相关。
相比较传统的数据库技术,大数据的技术栈在过去几年取得非常迅速的发展,尤其是Hadoop和Spark已经构建了一个庞大的技术生态圈。
文件系统方面,除了传统的行式存储,还有新的列式存储格式如ORC,Parquet,以及一些新型的用SSD或者内存加速的存储,如Transwarp Holodesk以及Tachyon。此外,还有Ceph等新型文件系统。
在文件系统之上,各种存储引擎也迅速发展,如NoSQL类的HBase,MongoDB,CouchDB,它们在一些大数据场景下表现的非常出色(如高并发,文档存储等),而放弃另外一些特性,如事务和SQL支持;不过近年也涌现出一些新的NoSQL存储引擎,重新拾起来SQL和事务,如VoltDB,CockroachDB,以及Transwarp Hyperbase。
计算引擎的发展更是日新月异,可以按照批处理/交互式/流式/迭代式做个大体的分类。批处理引擎在大数据领域发展的最快,MapReduce,Spark,Tez等已在大规模商用;交互式分析引擎的代表有Dremel,Presto,Impala等,目前还处于未能完全证明商用能力,但是在快速发展并且验证的阶段;流式引擎这两年发展很快,Spark Streaming/Flink/Storm/Samza是其中的代表;迭代式引擎有Graphx,Pregel,以及Transwarp Graphene等。
数据分析领域,各种工具更是层出纷纭,如Hive,Mahout,MLlib,R,Kylin等,除了开源技术,我们研发的Transwarp Inceptor是国内经过商业检验的比较优秀的大数据分析工具。
数据集成和调度工具也有很多的开源项目涌现出来,如Oozie,Azkaban,Crunch,Sqoop,Flume,Kafka等等。
因为这么复杂的技术栈,以及各种层出不穷的新技术,开发者会面临着极大的学习成本,以及很困难的选型考量。如何选择更合适的技术方案,如何做基于大数据的新的应用的开发,如何去管理和运维大数据产品,这是新技术时代的主要问题。因此,我们希望通过大数据开放实验室,将我们掌握的一些技术/原理等传播给读者,分享我们的经验和教训,共同促进大家对大数据技术的掌握和理解。
为了处理大数据的4个V,大数据的技术栈变得非常繁杂,同时各个技术的发展趋势在过去几年也有一些有意思的变化。如MPP并行计算和分布式批处理计算的方向上分分合合,低延时计算架构的演变,以及NoSQL数据库的演进路线。
传统的并行数据库(如MPP架构)和基于MapReduce/Spark的分布式批处理的计算模式,在2010年左右曾经发生过比较激烈的技术方向辩论(http://database.cs.brown.edu/papers/stonebraker-cacm2010.pdf,
http://www.cs.princeton.edu/courses/archive/spr11/cos448/web/docs/week10_reading2.pdf ),而后几年,Cloudera的分析引擎Impala又将Share Nothing 的MPP(Massive Parallel Processing)处理风格引入,分歧的双方似乎又回到了起点。不过随着Spark等类似的内存计算引擎的兴起以及完善,MPP的技术又被抛弃,并且涌现出来性能和可扩展性更好的数据分析引擎,如Transwarp Inceptor,Presto以及SparkSQL,分布式批处理又再次和MPP技术方向分道扬镳。
为了解决Big Velocity,满足IoT等场景的需求,实时和低延时处理的计算架构在快速的发展过程中,如何处理批处理和交互式分析之间的平衡,也不断推进这计算架构的演进。最经典的莫过于Lambda架构,同时也是使用比较广泛的架构;此外Twitter的SummingBird支持以批处理或者流处理模式,或者混合模式以统一的方式来执行代码,也是个比较新颖的架构。
NoSQL数据库发展也非常有意思,早期因为传统数据库处理速度慢,事务过于复杂,SQL编译过重等原因,不能满足很多场景的需求,各种NoSQL数据库快速发展起来,如HBase,Cassandra,MongoDB等,API编程开始流行。然而随着时间推移,各个NoSQL数据库发现了API编程的缺陷以及功能缺失导致的适用场景首先,又开始走回SQL之路,如Cassandra和MongoDB;此外,不支持事务的架构又不能保证2~3年后是否会因为不满足业务需求而过时,也是NoSQL数据库的一个隐忧。因此,图灵奖得主大神Michael Stonebraker预测NoSQL数据库最终将和SQL数据库融合:SQL数据库们通过增加对非结构化数据的处理,如JSON的支持来提升业务场景的可适应性;而NoSQL数据库则开始加入SQL的支持和分布式事务(参见Michael Stonebraker的演讲 “What Does ‘Big Data’ Mean and Who Will Win?”)。 在这点上,Transwarp Hyperbase早已经开始了这个技术融合,基本完成了SQL支持/分布式事务以及非结构化数据处理能力的打造。
技术的发展趋势往往不是那么一往无前,而是一直不停的迭代,然后论证,然后互相影响,并可能出现一些方向上的变化。大数据技术也同样如此,对于从业人员来说,在设计一个新系统的时候往往需要考虑到今后一定时间的发展趋势,并接合着业务来推进系统的演进。这也是我们创建开发实验室的第二个原因:与广大从业人员一起对大数据发展的历史故事进行梳理,分析对未来技术的趋势的看法,然后在细分领域寻求突破,以更好的适应这个大数据时代。
星环专注于大数据技术超过3年,目前Transwarp Data Hub包含4个组件来分别解决大数据的4-V技术问题。Inceptor解决了Big Volume上的ETL和Analytics的问题,Stream针对Big Velocity提供了基于SQL的解决方案,Hyperbase融合了对结构化数据和非结构化数据的处理能力,从而可以满足Big Variety的需要,Discover帮助用户来挖掘出big data里面的Big Value。
TDH走的是非开源路线,因此在技术传播上没有开源项目对大众影响深远。我们认为技术的共享不应该有边界,因此希望通过这个公众平台,将我们研发的有意思的功能,模型,方案等新技术,通过比较合理的方式与外界共享,并通过这个平台构建一个积极反馈的闭环。
我们的愿景
以技术之名,做一个有价值的大数据技术深度分享的平台;
以原创为主,做一个有深度的创新思维的技术社区;
欢迎有技术理想的朋友们加入我们。
大数据开放实验室由星环信息科技(上海)有限公司运行,专门致力于大数据技术的研究和传播。
若转载请在文章开头明显注明“文章来源于微信订阅号——大数据开放实验室”,并保留作者和账号介绍。