网易大数据平台的Spark技术实践
网易大数据平台的Spark技术实践
作者 王健宗
网易的实时计算需求
对于大多数的大数据而言,实时性是其所应具备的重要属性,信息的到达和获取应满足实时性的要求,而信息的价值需在其到达那刻展现才能利益最大化,例如电商网站,网站推荐系统期望能实时根据顾客的点击行为分析其购买意愿,做到精准营销。
实时计算指针对只读(Read Only)数据进行即时数据的获取和计算,也可以成为在线计算,在线计算的实时级别分为三类:Real-Time(msec/sec级)、Near Real-Time(min/hours)以及Batch(days)。 在批处理方面,MapReduce(MR)已经证明其为最有效的工具,随着MR的开源实现Hadoop为代表的大数据分析技术的普及,其在大处理方面的能 力已经得到认可,但是它更适用于对集群上大数据的批处理,并不适用于实时处理大规模流数据。为了满足实时性的要求,基于数据仓库所构建的流计算和实时性计 算框架也不断涌现,相关围绕MR的实时性优化技术也蓬勃发展,比较代表性的系统Google Dremel、Twitter Storm以及Yahoo S4等。
大数据的应用类型主要分为:批处理(Batch Processing)和流处理(Stream Processing)两方面。批处理是先存储后处理(Store-Then-Process),流处理是直接处理(Straight-Through- Processing),为提高商业智能的反映时间,目前广泛所采取的大数据处理框架,例如MR和Dryad所面向的主要是大规模数据分析,以批处理计算 为主,其实时性需求得不到满足。常用的应用有在线推荐、网页点击分析、传感网络、交通分析以及金融中的高频交易,对实时分析处理(Real Time Analytic Processing, RTAP)的需求越来显著,网易公司作为国内最大的门户网站之一,实时性也是公司目前互联网产品所应具备的重要属性。
网易大数据Spark技术应用
Spark技术代表未来数据处理的新方向,Spark是UC Berkeley AMP lab开源的类Hadoop MapReduce的通用并行计算框架,Spark基于MapReduce实现分布式计算,拥有Hadoop MapReduce具有的优点。不同于MapReduce的是,Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好 地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
在网易大数据平台中,数据存储在HDFS之后,提供Hive的数据仓库计算和查询,要提高数据处理的性能并达到实时级别,网易公司采用的是 Impala和Shark结合的混合实时技术。Cloudera Impala是基于Hadoop的实时检索引擎开源项目,其效率比Hive提高3-90倍,其本质是Google Dremel的模仿,但在SQL功能上青出于蓝胜于蓝。Shark是基于Spark的SQL实现,Shark可以比 Hive 快40倍(其论文所描述), 如果执行机器学习程序,可以快 25倍,并完全和Hive兼容。
图1和图2分别测试的计算能力和实时查询性能经过初步测试,在网易的实时计算平台,在大数据实时查询系统中,Impala在数据处理方面的速度可以 相比HIVE达到3倍到30倍的加速比,Shark可以相比HIVE达到 1.5到15倍的加速比,相比较Impala和Shark引擎,通常Impala会比Shark快一倍,这里可能会引出思考,既然Impala实时性如此 好,为何还需要Shark呢?
在设计大数据平台的时候,我们发现Impala性能不错,但是其对旧Hive的数据不兼容,因为目前的大数据应用中很多都是Hive的组织方式,而 Shark可以完全兼容旧的数据,因此在目前的数据结构中必须采用混合的数据处理模式。Hive和Impala会协同存在一段时间, Hive主要为Predefined Queries,并主要处理批处理相关作业,而Impala则处理交互的查询(AD-HOC Queries),使得大数据系统既支持OLTP,也支持OLAP,以达到实时分析处理(Real Time Analytic Processing, RTAP)的水平。

图1 网易大数据平台性能测试(Count/Sum/Avg操作)

图2网易大数据平台性能测试(Join/Ad-hoc查询操作)
总结
如果要评价2012到2013年度IT业界热词,非“大数据”一词莫属。ROI(Return On Investment)投资回报率已经演化为Return On Information,信息的回报率成为互联网公司的一个重要指标,如果所掌握的海量数据都是一堆“垃圾”,没有金矿去挖掘,那大数据也无从谈起,而提 高ROI的一个重要属性就是实时性,提高数据的反应时间需要技术做支撑和保障,网易作为中国顶尖的互联网公司之一,在大数据方面也是最早的先行者,特别实 时计算技术方面,公司很早就开始采用最新的技术来提供服务,例如Impala和Shark等,不难发现,网易的大数据系统可以灵活的选择计算实时引擎,总体上系统在实时处理方面的能力可以提升2到15倍,这对于提升公司的生产效率有显著成效,在后续的工作中期望可以进一步提升实时级别,目前只能做到秒级, 能否达到毫秒级甚至微秒级别是将来的一个研发方向,总之对于海量数据计算、实时性方面有强烈需求的公司应用落地Spark是很好的选择。
参考资料
[1] Storm Distributed and fault-tolerant real time computation
[2] Leonardo Neumeyer, Bruce Robbins, Anish Nair, Anand Kesari. S4: Distributed Stream Computing Platform. 2010 IEEE International Conference on Data Mining Workshops (ICDMW).
[3] Cloudera Impala https://github.com/cloudera/impala
Reynold S. Xin, Josh Rosen, et al. Shark: SQL and rich analytics at scale. SIGMOD Conference 2013.
网易大数据平台的Spark技术实践的更多相关文章
- 成都大数据Hadoop与Spark技术培训班
成都大数据Hadoop与Spark技术培训班 中国信息化培训中心特推出了大数据技术架构及应用实战课程培训班,通过专业的大数据Hadoop与Spark技术架构体系与业界真实案例来全面提升大数据工程师 ...
- 大数据平台搭建-spark集群安装
版本要求 java 版本:1.8.*(1.8.0_60) 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...
- 网易的Spark技术实践
http://www.infoq.com/cn/news/2014/04/netease-spark-practice?utm_source=infoq&utm_medium=popular_ ...
- DataPipeline在大数据平台的数据流实践
文 | 吕鹏 DataPipeline架构师 进入大数据时代,实时作业有着越来越重要的地位.本文将从以下几个部分进行讲解DataPipeline在大数据平台的实时数据流实践. 一.企业级数据面临的主要 ...
- Spark大型项目实战:电商用户行为分析大数据平台
本项目主要讲解了一套应用于互联网电商企业中,使用Java.Spark等技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为.页面跳转行为.购物行为.广告点击行为等)进行复杂的分析.用统计分 ...
- 大数据平台的技术演化之路 诸葛io平台设计实例
如今,数据分析能力正逐渐成为企业发展的标配,企业通过数据分析的过程将数据中的信息提取出来,进行处理.识别.加工.呈现,最后成为指导企业业务发展的知识和智慧.而处理.识别.加工.呈现的过程从本质上来讲, ...
- AI加持的阿里云飞天大数据平台技术揭秘
摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...
- 大数据平台迁移实践 | Apache DolphinScheduler 在当贝大数据环境中的应用
大家下午好,我是来自当贝网络科技大数据平台的基础开发工程师 王昱翔,感谢社区的邀请来参与这次分享,关于 Apache DolphinScheduler 在当贝网络科技大数据环境中的应用. 本次演讲主要 ...
- 大数据平台搭建(hadoop+spark)
大数据平台搭建(hadoop+spark) 一.基本信息 1. 服务器基本信息 主机名 ip地址 安装服务 spark-master 172.16.200.81 jdk.hadoop.spark.sc ...
随机推荐
- eclipse修改中文注释的字体(亲测有用!)
Window –> Preferences –> General –> Appearance –> Colors and Fonts –> Basic –> Tex ...
- python-None
今天偶然间,有人问了一个问题,项目中出现了一个这样的错误. 看到后,就想到是前后数据类型不一致.当时他定义了一些默认初始值为None(刚接触python代码,之前是c,java),然后就后边出现了这样 ...
- DirectX11笔记(八)--Direct3D渲染4--VERTEX SHADER
原文:DirectX11笔记(八)--Direct3D渲染4--VERTEX SHADER 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u0103 ...
- Leetcode696.Count Binary Substrings计算二进制字串
给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的. 重复出现的子串要计算它们出现的次数. 示例 1 : 输入: "0 ...
- 如何建一个Liferay 7的theme
首先附上原文链接Creating theme and Deploying in liferay 7 by using Eclipse 1.第一步:建一个Liferay module 项目,选择them ...
- elastic search book [ ElasticSearch book es book]
谁在使用ELK 维基百科, github都使用 ELK (ElasticSearch es book) ElasticSearch入门 Elasticsearch入门,这一篇就够了==>http ...
- oracle-600错误
event='10841 trace name context forever' 可以屏蔽这个ORA-00600错误. SQL> show parameter event NAME TYPE V ...
- 探索云数据库最佳实践 阿里云开发者大会数据库专场邀你一起Code up!
盛夏.魔都.科技 三者在一起有什么惊喜? 7月24日,阿里云峰会·上海——开发者大会将在上海世博中心盛大启程,与未来世界的开发者们分享数据库.云原生.开源大数据等领域的技术干货,共同探讨前沿科技趋势, ...
- poj3532 Round Numbers
题意:给出l.r,求区间[l,r]内二进制中0的个数大于等于1的个数的数字有多少个. 简单的数位dp. //Serene #include<algorithm> #include< ...
- VS2008中为控件添加属性(比如前景色,背景色)
VS2008中没有classwizard,但不要伤心,到了VS2010,classwizard又回来了. 可以参照这篇博客:http://blog.csdn.net/candyliuxj/articl ...