网易大数据平台的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 ...
随机推荐
- openpyxl 模块的使用
参考博客:https://www.cnblogs.com/anpengapple/p/6399304.html?utm_source=itdadao&utm_medium=referral 在 ...
- selenium 常见问题之 nknown error: call function result missing ‘value’
运行时候出现错误提示如下: 出现该问题原因:chrome浏览器自动升级.导致和chromedriver支持的版本不匹配. 解决方案有两种(本人采用的是第一种方式解决办法.): 1.下载和当前使用的ch ...
- java如何访问memcache
1 Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的 ...
- BootstrapValidator实现注册校验和登录错误提示效果(转)
使用BootstrapValidator进行注册校验和登录错误提示,具体内容如下 1.介绍 在AdminEAP框架中,使用了BootstrapValidator校验框架,本文以注册校验的用户名.登录名 ...
- tcpdump抓取udp报文
使用tcpdump命令抓取UDP 2000端口报文,并将报文保存到当前目录下的udp.cap文件,命令如下: tcpdump -i 网络接口名称 udp port 2000 -w ./udp.cap ...
- Python datetime对象的方法
- Leetcode704.Binary Search二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: num ...
- 如何用maven tycho构建自己的Eclipse RCP应用
在你写了一个Eclipse插件之后,也许你就会想如何把它变成一个P2的项目或者是一个Java App让大家可以安装到自己的Eclipse上,dangdangdang~~ 这是你就可以利用maven-t ...
- SPSS统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类
https://www.zhihu.com/topic/19582125/top-answershttps://wenku.baidu.com/search?word=spss&ie=utf- ...
- Apache Camel继承Spring Boot 实现文件远程复制和转移
pom.xml <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-f ...