最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

Spark 1.4:SparkR发布,钨丝计划锋芒初露

[复制链接]
跳转到指定楼层
楼主
发表于 2015-6-14 16:06:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
摘要:Spark 1.4版本正式发布,在Spark Core、Spark Streaming、Spark SQL(DataFrame)、Spark ML/MLlib等升级之外,新版本还加入了SparkR组件。下面一起看看SparkR和本次更新的介绍。
6月11日(美国时间),Spark 1.4版本正式发布,在Spark Core、Spark Streaming、Spark SQL(DataFrame)、Spark ML/MLlib等升级之外,新版本更加入了数据科学家们望眼欲穿的SparkR组件。长话短说,下面一起看Databricks Blog上关于SparkR的介绍,以及七牛技术总监陈超在ChinaScala微信号上对组件升级的总结。
SparkR简介(Announcing SparkR: R on Spark via Databircks Blog  by Shivaram Venkataraman)项目历史
SparkR源于AMPLab,是将R易用性和Spark扩展性整合的一个探索。在这个前提之下,SparkR开发者预览版最早在2014年1月开源。随后的一年,SparkR在AMPLab得到了飞速发展,而在许多贡献者的努力下,SparkR在性能和可用性上得到了显著提升。最近,SparkR被合并到Spark项目,并在1.4版本中作为alpha组件发布。
SparkR DataFrames
在Spark 1.4中,SparkR 的核心组件是SparkR DataFrames——在Spark上实现的一个分布式data frame。data frame 是R中处理数据的基本数据结构,而当下这个概念已经通过函数库(比如Pandas)扩展到其它所有语言。而像dplyr这样的项目更去除了基于data frames数据操作任务中存在的大量复杂性。在SparkR DataFrames中,一个类似dplyr和原生R data frame的API被发布,同时它还可以依托Spark,对大型数据集进行分布式计算。
下面例子将展示SparkR DataFrames API的一些特性。(你可以在这里看到完整示例)


更全面的 DataFrames介绍参见SparkR编程指南
SparkR整合的好处
在更易用的API之外,SparkR从Spark的紧密整合中继承了诸多好处。这些包括:

  • Data Sources API通过Spark SQL的数据源API,API SparkR可以从包括Hive tables、JSON files、Parquet files等各种来源中读取数据。
  • Data Frame优化:SparkR DataFrames还继承了计算引擎中的大量优化,比如代码生成和内存管理。例如,下面图表是单机R、Python和Scala在1000万整数对上的group-by聚合操作运行时性能对比(使用了相同的数据集,参考这里)。如图所示,在计算引擎中优化可以使SparkR的性能表现类似于Scala和Python。




  • 可便捷地扩展到多核和多主机:SparkR DataFrames 上执行的操作会被自动分配到Spark群集中所有可用的内核和机器上。因此,在配备了数千主机后,SparkR DataFrames 可以被用于TB数据的处理。

在未来的版本中,许多功能已经被计划添加到SparkR:其中包括高级别的机器学习算法支持,并将SparkR DataFrames 打造成Spark密不可分的组件。
Spark Core、Spark Streaming、Spark SQL、Spark ML/MLlib在Spark 1.4中的提升(Spark 1.4 新特性概述 by 陈超)
Spark Core
现在大家最关心什么?无疑就是性能和运维!什么最影响性能?shuffle首当其冲!什么又是运维第一要务?必须是监控呀(就先不扯alert了)!1.4在这两点都做足了功夫。 1.4中,Spark为应用提供了REST API来获取各种信息(jobs / stages / tasks / storage info),使用这个API搭建个自己的监控简直是分分钟的事情,不止于此,DAG现在也能可视化了,不清楚Spark的DAGScheduler怎么运作的同学,现在也能非常轻易地知道DAG细节了。再来说说shuffle,大家都知道,从1.2开始sort-based shuffle已经成为默认的shuffe策略了,基于sort的shuffle不需要同时打开很多文件,并且也能减少中间文件的生成,但是带来的问题是在JVM的heap中留了大量的java对象,1.4开始,shuffle的map阶段的输出会被序列化,这会带来两个好处:1、spill到磁盘上的文件变小了  2、GC效率大增,有人又会说,序列化反序列化会产生额外的cpu开销啊,事实上,shuffle过程往往都是IO密集型的操作,带来的这点cpu开销,是可以接受。
大家期待的钨丝计划(Project Tungsten)也在1.4初露锋芒,引入了新的shuffle manager “UnsafeShuffleManager”,用以提供缓存友好的排序算法,及其它一些改进,目的是降低shuffle过程中的内存使用量,并且加速排序过程。钨丝计划必定会成为接下来两个版本(1.5,1.6)重点关注的地方。
Spark Streaming
Streaming在这个版本中增加了新的UI,简直是Streaming用户的福音,各种详细信息尽收眼底。话说Spark中国峰会上,TD当时坐我旁边review这部分的code,悄悄对说我”this is awesome”。对了,这部分主要是由朱诗雄做的,虽然诗雄在峰会上放了我鸽子,但必须感谢他给我们带来了这么好的特性!另外此版本也支持了0.8.2.x的Kafka版本。
Spark SQL(DataFrame)
支持老牌的ORCFile了,虽然比Parquet年轻,但是人家bug少啊 : ) 1.4提供了类似于Hive中的window function,还是比较实用的。本次对于join的优化还是比较给力的,特别是针对那种比较大的join,大家可以体会下。JDBC Server的用户肯定非常开心了,因为终于有UI可以看了呀。
Spark ML/MLlib
ML pipelines从alpha毕业了,大家对于ML pipelines的热情还真的蛮高的啊。我对Personalized PageRank with GraphX倒是蛮感兴趣的,与之相关的是recommendAll in matrix factorization model。事实上大多数公司还是会在Spark上实现自己的算法。
先写到这,后续会写一写钨丝计划及SparkR的相关文章。对了,求靠谱前端工程师一枚,要求看我置顶微博(@CrazyJvm),同时也招收若干优秀实习生。



楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-3 22:37

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表