Antkillerfarm Hacking V7.0

云计算论文集, Spark

2017-03-03

云计算论文集

这里列出一些在这个领域产生重大影响的论文。仅作备忘,肯定不全,Google是其中的绝对主力。

CAP

《Towards Robust Distributed Systems》(2000)

作者:Eric Brewer是University of California, Berkeley的计算机科学教授,在Google担任基础设施方面的VP。他的研究兴趣包括云计算、可伸缩的服务器、传感器网络,还有适合发展中地区应用的技术。他还帮助建立了美国联邦政府的门户网站USA.gov。Brewer从MIT获得电子工程和计算机科学的博士学位。他是National Academy of Engineering的院士。

GFS

《The Google File System》(2003)

开源实现:Hadoop HDFS

作者:Sanjay Ghemawat,Ph.D. in Computer Science from MIT,2009年当选美国国家工程学院院士。

Howard Gobioff(1971 – 2008),Carnegie Mellon University,Ph.D. Computer Science。

Shun-Tak Leung,University of Washington,Ph.D. Computer Science。

MapReduce

《MapReduce: Simplified Data Processing on Large Clusters》(2004)

开源实现:Hadoop MapReduce

作者:Jeffrey Dean,University of Washington,Ph.D. Computer Science (1996),2009年当选美国国家工程学院院士。

Sanjay Ghemawat。

参考:

https://mp.weixin.qq.com/s/s-_Z_sM7WmyizVDtgW-UYQ

Jeff Dean的激荡人生:我和Sanjay在同一台电脑上写代码

Bigtable

开源实现:Hbase

《Bigtable: A Distributed Storage System for Structured Data》(2006)

作者:Fay W. Chang,Carnegie Mellon University,Ph.D. Computer Science 。

Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber

Spanner

《Spanner: Google’s Globally-Distributed Database》(2012)

作者:James C. Corbett,PhD in Computer Science from the University of Massachusetts at Amherst.

Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh,Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura,David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak,Christopher Taylor, Ruth Wang, Dale Woodford

Dremel

Dremel是Google的“交互式”数据分析系统。可以组建成规模上千的集群,处理PB级别的数据,是MapReduce的有力补充。

《Dremel: Interactive Analysis of WebScaleDatasets》(2006)

作者:Sergey Melnik, Ph.D. in Computer Science from the University of Leipzig, Germany. Microsoft Research (2003-2008), Google(since 2008)

Andrey Gubarev, Jing Jing Long, Geoffrey Romer, Shiva Shivakumar, Matt Tolton, Theo Vassilakis

Chubby Lock

《The Chubby lock service for loosely-coupled distributed systems》(2006)

开源实现:Zookeeper

作者:Mike Burrows,1963年生,英国计算机学家。剑桥大学博士。2013年当选皇家学会会员。

IaaS,PaaS,SaaS

IaaS:基础设施服务,Infrastructure-as-a-service

PaaS:平台服务,Platform-as-a-service

SaaS:软件服务,Software-as-a-service

Openstack属于IaaS。代表厂商是华为云。

而Hadoop属于PaaS。代表厂商是阿里云。

参考:

http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html

IaaS,PaaS,SaaS的区别

Spark

官网:

http://spark.apache.org/

RDD

Resilient Distributed Datasets是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。RDD克服了传统的MapReduce所进行大量的磁盘IO操作。

我的理解:RDD将计算数据(包括中间结果),全部放到内存中,以节省磁盘IO操作。

http://www.infoq.com/cn/articles/spark-core-rdd

理解Spark的核心RDD

http://f.dataguru.cn/thread-475874-1-1.html

Spark RDD详解

DataFrame和DataSet

http://www.jianshu.com/p/c0181667daa0

RDD、DataFrame和DataSet的区别

http://www.csdn.net/article/2015-02-17/2823997

Spark新年福音:一个用于大规模数据科学的API——DataFrame

https://www.iteblog.com/pdf/1675

Spark 2.0介绍:从RDD API迁移到DataSet API

https://www.jianshu.com/p/0fe48bc43a8c

spark程序jar与spark lib jar冲突,加载顺序

transformation & action

transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD。

action是得到一个值,或者一个结果(直接将RDDcache到内存中)。

所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。

Spark部署

Spark没有服务程序,因此无须部署,只需要在集群中的某台机器上安装spark,进行任务提交即可。Spark的并行执行主要依赖Hadoop YARN。

参见:

http://blog.csdn.net/book_mmicky/article/details/25714287

Spark1.0.0 on YARN模式部署

Spark虽然对Hadoop的版本有一定的要求,但是并不是太严重的问题。比如,目前最新的Spark 2.0.1(2016.10)仍然支持Hadoop 2.3,而后者是2014年2月出的版本。

shuffle

上图描述了MapReduce算法的整个流程,其中shuffle phase就是介于Map phase和Reduce phase之间的那一堆连线。很显然,shuffle虽然是MapReduce算法提出的概念,但在各类分布式计算框架中普遍存在,也是影响计算效率的关键点和框架设计的难点之一。

参考:

https://blog.csdn.net/SA14023053/article/details/52024378

详细探究Spark的shuffle实现

https://www.cnblogs.com/ahu-lichang/p/6645074.html

MapReduce的原理及执行过程

https://mp.weixin.qq.com/s/WoqBdKyZzO7Y_hp73z58DA

百花齐放的大数据计算平台演进史

控制日志输出等级

有的时候为了防止控制台的日志输出过多,淹没了程序的正常输出,可以采用如下方法:

SparkContext sc = SparkContext.getOrCreate(conf);
sc.setLogLevel("WARN");

基本统计操作

1.统计列中不相同值的个数。

方法一:

比如在观众观影的表格中,找出观众的数量或电影的数量。

Dataset<Row> df = session.sql("SELECT userId FROM Movie group by userId");//df.count() is the count of different values

方法二:

Spark中有个org.apache.spark.sql.functions类,专门针对数据集进行各种运算操作。其中的countDistinct方法可实现该功能。片段示例如下:

Dataset<Row> df2 = df.agg(functions.countDistinct("userId"));df2.show();

MLlib

MLlib是Spark的机器学习库。官网:

https://spark.apache.org/mllib/

和Spark的其他部分一样,MLlib也存在RDD API和DataFrame API两套API。其中前者已经停止开发,而后者的设计思想显然来自R语言。RDD API在spark.mllib包中,而DataFrame API在spark.ml包中。

Hive

http://www.cnblogs.com/bluejoe/p/5115845.html

Hive体系结构介绍

https://mp.weixin.qq.com/s/XDqe6iqayJWxJGLUt_9QKA

Hive的基本认识

https://mp.weixin.qq.com/s/qSiYQFgaqaoEgmZUJhbqHw

DDL与DML操作

弹性计算

云计算最初有两个方向,一个是弹性计算,一个是分布式计算,后来成功验证了商业模式的是弹性计算。

但是国内外产业界,包括阿里在内,也就是王坚领导的团队,最初都在分布式计算上使劲。就这样空耗了几年时光和资源。

一直到亚马逊验证了弹性计算才是可行的商业模式,阿里云立刻复制,从分布式计算转型,才有了今天的局面。

参考

http://www.cnblogs.com/zlslch/p/5723857.html

Spark的各种算子

http://mp.weixin.qq.com/s?__biz=MjM5NzAyNTE0Ng==&mid=2649517135&idx=2&sn=7fc02a006b7c5015f3492354d0e298a4&scene=0#rd

Spark性能优化指南:高级篇

https://www.zhihu.com/question/23079001

内存有限的情况下,Spark如何处理T级别的数据

https://www.zhihu.com/question/26568496

与Hadoop对比,如何看待Spark技术?

http://www.csdn.net/article/1970-01-01/2825748

如何利用“图计算”实现大规模实时预测分析

http://www.cnblogs.com/bluejoe/p/5115846.html

学习GraphX

https://mp.weixin.qq.com/s/vM5DM6CEVuKjcWBxZZSbhA

既生Mahout,何生Spark MLlib?

https://mp.weixin.qq.com/s/O_KQxKLFUpJrDXw244nEfQ

Spark资源调优

https://mp.weixin.qq.com/s/gp9MTKWbgHQ7b7QR5pNSnA

Apache Spark中的全新流式引擎Structured Streaming

https://mp.weixin.qq.com/s/g-HgfQ77ExpS0d9QrRcvlg

Python大数据处理库PySpark实战——使用PySpark处理文本多分类问题

https://mp.weixin.qq.com/s/wZlQLAkZ0-pP74vjyS6oDg

手把手实现PySpark机器学习项目-回归算法

http://blog.csdn.net/xiaomin1991222/article/details/50982579

使用Mahout实现协同过滤Spark

https://mp.weixin.qq.com/s/dYCtth0r2Gme5iGSviVmBQ

基于Spark的机器学习痛点,风控和模型优化案例分析!

https://mp.weixin.qq.com/s/8ZEUNIXHu7iF1hHk7e0gdw

Spark机器学习的加速器:Spark on Angel

https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA

苏宁基于Spark Streaming的实时日志分析系统实践

https://mp.weixin.qq.com/s/6UlkU56GJFPOhhNBn7NUOg

基于Apache Spark的深度学习

https://mp.weixin.qq.com/s/xtBQQFfqZKCyETzWaN4AWA

是时候放弃Spark Streaming,转向Structured Streaming了

https://mp.weixin.qq.com/s/Mn9KyKKIBMvbiBUTFxZT6w

30分钟理解Spark的基本原理

https://mp.weixin.qq.com/s/TScPuY_nk3Iqpo2m_0qd5w

如何应对大数据分析工程师面试Spark考察,看这一篇就够了

https://mp.weixin.qq.com/s/UPYiPrpM4A7nRpxpBstyrA

Spark MLlib并行训练原理

https://mp.weixin.qq.com/s/S1Gr18If9Htq-kE89cCa9w

Uber最强机器学习平台是如何使用Spark模型的?

https://mp.weixin.qq.com/s/vTHRSFg15SDYL3qH3dGCvA

关于Spark NLP学习,你需要掌握的LightPipeline

https://mp.weixin.qq.com/s/a6o04KzpkwiIpS7ycP5khw

Spark源码和调优简介Spark Core

https://mp.weixin.qq.com/s/X4nrtI6WODRHYiZ66xRshQ

PySpark和SparkSQL基础:如何利用Python编程执行Spark

https://zhuanlan.zhihu.com/p/108454557

超全spark性能优化总结

https://mp.weixin.qq.com/s/vytVTAgU-6_iRG-drf9eYQ

使用Spark进行大规模图形挖掘

https://mp.weixin.qq.com/s/Nyb9qTYn5_XFhQPa8KZojw

最新Apache Spark平台的NLP库,助你轻松搞定自然语言处理任务

https://mp.weixin.qq.com/s/ExbwHCFavFZhmWnWIK6wlQ

深入浅出Spark:存储系统

https://mp.weixin.qq.com/s/yiqgPqM7nnNlJ1zCp6blTQ

Hive SQL迁移Spark SQL在滴滴的实践

https://mp.weixin.qq.com/s/r-EcujFHXpZwy83o7l3YlA

如何从Pandas迁移到Spark?

Fork me on GitHub