程学旗:关于中国大数据生态系统的基础问题思考

当然,我们既要抬头看路,更要脚踏实地。因此,在大数据概念满天飞的时候,我们既要抓住时机,挖掘价值,还要思考本质,不在混乱的时候迷失方向

白硕:智慧变价值,还有个从“集”到“散”的环节吧?

程学旗:对,“集”产生智慧,“智慧”分散支撑更广泛的“价值”

@大潘:对数据的思路,最终还是要靠系统来实现

@wuyj:有没有从量增到质变?

程学旗:@wuyj所以说从量增到质变、从“还原论”到“系统论”,类似的道理

程学旗:从业界来看,当前大数据系统有三个明显的特点与我们2013年底发布的十大趋势相关

【1】大数据的高效深度分析需要专用化的系统

在应用数据快速增长的背景下,为了降低成本获得更好的能效,大数据系统需要逐渐摆脱传统的通用技术体系,趋向专用化的架构和处理技术。这方面,国内百度、阿里巴巴和腾讯三大互联网巨头做出了尝试并取得了很好的效果。众所周知,百度的大数据典型应用是中文搜索,阿里巴巴的大数据典型应用是基于交易日志分析的数据服务,腾讯的大数据典型应用是图片数据存储和基于用户行为的广告实时推荐。百度去年底成立专门的大数据部门,旨在深度挖掘大数据的价值。阿里巴巴已将不同业务部门的大数据技术整合在一起为数据产品提供统一的服务。腾讯的数据平台部正在将全公司的数据纳入统一管理平台。阿里巴巴在技术上与开源社区结合得最为紧密;腾讯大数据目前正在向开源技术靠拢;百度在技术层面偏好自行研发,包括软硬件定制化方案也是最先投入实用。技术上,他们的共同之处是,不再依赖传统的IOE,而基于开源系统(如Hadoop等)开发面向典型应用的大规模、高通量、低成本、强扩展的专用化系统。

【2】大数据处理架构多样化模式并存

当前,克隆了Google的GFS和MapReduce的ApacheHadoop自2008年以来逐渐被互联网企业所广泛接纳,并成为大数据处理领域的事实标准。但2013年出现的Spark作为一匹黑马终结了这一神话,大数据技术不再一家独大。由于应用不同导致Hadoop一套软件系统不可能满足所有需求,在全面兼容Hadoop的基础上,Spark通过更多的利用内存处理大幅提高系统性能。此外,Scribe、Flume、Kafka、Storm、Drill、Impala、TEZ/Stinger、Presto、Spark/Shark等的出现并不是取代Hadoop,而是扩大了大数据技术的生态环境,促使生态环境向良性化和完整化发展。今后在非易失存储层面、网络通信层面、易失存储层面和计算框架层面还会出现更多、更好和更专用化的软件系统。

【3】实时计算逐步受到业界关注

Google于2010年推出了Dremel,引领业界向实时计算迈进。实时计算是针对MapReduce这种批量计算的性能问题提出的,可分为流式计算和交互式分析计算两种模式。在大数据背景下,流式计算源于服务器日志的实时采集,如Facebook开源的Scribe是分布式日志收集系统,ApacheFlume是类似的系统。ApacheKafka是高吞吐率的分布式消息系统,特点是高通量和容错。Storm是容错的分布式实时计算系统,可以可靠的处理流式数据并进行实时处理,单机性能可达到百万记录每秒。Storm可集成ApacheKafka作为其队列系统。作为批量计算的补充,交互式分析计算的目标是将PB级数据的处理时间缩短到秒级。ApacheDrill是开源的Dremel实现,虽已有应用但尚不成熟。由Cloudera主导的Impala也参照Dremel实现,同时还参考了MPP的设计思想,目前已经接近实用阶段。Hortonworks主导开发了TEZ/Stinger,TEZ是运行在YARN(Hadoop2.0的资源管理框架)上的DAG计算框架,而Stinger是下一代的Hive。2013年底,由Facebook开源的Presto分布式SQL查询引擎可对250PB以上的数据进行交互式分析,比Hive的性能高出10倍。类似的Shark是Spark上的SQL执行引擎,得益于Shark的列存储和Spark的内存处理等特性,Shark号称可以比Hive的性能提高100倍。

白硕:实时计算、流式数据、复杂事件处理

程学旗:这些过于技术细节了。大数据系统的三个特点就是“引擎专用化”、“平台多样化”、“计算实时化”

@大潘:大数据处理技术还不会相对稳定,最近几年一定还会有多样化的技术和系统出现。

白硕:未进入稳定期的另一个说法就是处在机遇期

@有良心和良知的人:算法是问题吗?