云计算论文集, Spark, 数据描述语言, 运维工具集
https://antkillerfarm.github.io/
云計(jì)算論文集
這里列出一些在這個(gè)領(lǐng)域產(chǎn)生重大影響的論文。僅作備忘,肯定不全,Google是其中的絕對(duì)主力。
CAP
《Towards Robust Distributed Systems》(2000)
作者:Eric Brewer是University of California, Berkeley的計(jì)算機(jī)科學(xué)教授,在Google擔(dān)任基礎(chǔ)設(shè)施方面的VP。他的研究興趣包括云計(jì)算、可伸縮的服務(wù)器、傳感器網(wǎng)絡(luò),還有適合發(fā)展中地區(qū)應(yīng)用的技術(shù)。他還幫助建立了美國聯(lián)邦政府的門戶網(wǎng)站USA.gov。Brewer從MIT獲得電子工程和計(jì)算機(jī)科學(xué)的博士學(xué)位。他是National Academy of Engineering的院士。
GFS
《The Google File System》(2003)
開源實(shí)現(xiàn):Hadoop HDFS
作者:Sanjay Ghemawat,Ph.D. in Computer Science from MIT,2009年當(dāng)選美國國家工程學(xué)院院士。
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)
開源實(shí)現(xiàn):Hadoop MapReduce
作者:Jeffrey Dean,University of Washington,Ph.D. Computer Science (1996),2009年當(dāng)選美國國家工程學(xué)院院士。
Sanjay Ghemawat。
Bigtable
開源實(shí)現(xiàn):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的“交互式”數(shù)據(jù)分析系統(tǒng)。可以組建成規(guī)模上千的集群,處理PB級(jí)別的數(shù)據(jù),是MapReduce的有力補(bǔ)充。
《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)
開源實(shí)現(xiàn):Zookeeper
作者:Mike Burrows,1963年生,英國計(jì)算機(jī)學(xué)家。劍橋大學(xué)博士。2013年當(dāng)選皇家學(xué)會(huì)會(huì)員。
Spark
官網(wǎng):
http://spark.apache.org/
RDD
Resilient Distributed Datasets是一個(gè)只讀的,可分區(qū)的分布式數(shù)據(jù)集,這個(gè)數(shù)據(jù)集的全部或部分可以緩存在內(nèi)存中,在多次計(jì)算間重用。RDD克服了傳統(tǒng)的MapReduce所進(jìn)行大量的磁盤IO操作。
我的理解:RDD將計(jì)算包括中間結(jié)果,全部放到內(nèi)存中,以節(jié)省磁盤IO操作。
http://www.infoq.com/cn/articles/spark-core-rdd
http://f.dataguru.cn/thread-475874-1-1.html
DataFrame和DataSet
http://www.jianshu.com/p/c0181667daa0
http://www.csdn.net/article/2015-02-17/2823997
https://www.iteblog.com/pdf/1675
transformation & action
transformation是得到一個(gè)新的RDD,方式很多,比如從數(shù)據(jù)源生成一個(gè)新的RDD,從RDD生成一個(gè)新的RDD。
action是得到一個(gè)值,或者一個(gè)結(jié)果(直接將RDDcache到內(nèi)存中)。
所有的transformation都是采用的懶策略,就是如果只是將transformation提交是不會(huì)執(zhí)行計(jì)算的,計(jì)算只有在action被提交的時(shí)候才被觸發(fā)。
Spark部署
Spark沒有服務(wù)程序,因此無須部署,只需要在集群中的某臺(tái)機(jī)器上安裝spark,進(jìn)行任務(wù)提交即可。Spark的并行執(zhí)行主要依賴Hadoop YARN。
參見:
http://blog.csdn.net/book_mmicky/article/details/25714287
Spark雖然對(duì)Hadoop的版本有一定的要求,但是并不是太嚴(yán)重的問題。比如,目前最新的Spark 2.0.1(2016.10)仍然支持Hadoop 2.3,而后者是2014年2月出的版本。
shuffle
上圖描述了MapReduce算法的整個(gè)流程,其中shuffle phase就是介于Map phase和Reduce phase之間的那一堆連線。很顯然,shuffle雖然是MapReduce算法提出的概念,但在各類分布式計(jì)算框架中普遍存在,也是影響計(jì)算效率的關(guān)鍵點(diǎn)和框架設(shè)計(jì)的難點(diǎn)之一。
參考:
http://jerryshao.me/architecture/2014/01/04/spark-shuffle-detail-investigation/
控制日志輸出等級(jí)
有的時(shí)候?yàn)榱朔乐箍刂婆_(tái)的日志輸出過多,淹沒了程序的正常輸出,可以采用如下方法:
SparkContext sc = SparkContext.getOrCreate(conf); sc.setLogLevel("WARN");基本統(tǒng)計(jì)操作
1.統(tǒng)計(jì)列中不相同值的個(gè)數(shù)。
方法一:
比如在觀眾觀影的表格中,找出觀眾的數(shù)量或電影的數(shù)量。
Dataset<Row> df = session.sql("SELECT userId FROM Movie group by userId");//df.count() is the count of different values
方法二:
Spark中有個(gè)org.apache.spark.sql.functions類,專門針對(duì)數(shù)據(jù)集進(jìn)行各種運(yùn)算操作。其中的countDistinct方法可實(shí)現(xiàn)該功能。片段示例如下:
Dataset<Row> df2 = df.agg(functions.countDistinct("userId"));df2.show();
參考
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性能優(yōu)化指南:高級(jí)篇
https://www.zhihu.com/question/23079001
內(nèi)存有限的情況下,Spark如何處理T級(jí)別的數(shù)據(jù)
https://www.zhihu.com/question/26568496
與Hadoop對(duì)比,如何看待Spark技術(shù)?
http://www.csdn.net/article/1970-01-01/2825748
如何利用“圖計(jì)算”實(shí)現(xiàn)大規(guī)模實(shí)時(shí)預(yù)測分析
http://www.cnblogs.com/bluejoe/p/5115846.html
學(xué)習(xí)GraphX
http://www.cnblogs.com/bluejoe/p/5115845.html
Hive體系結(jié)構(gòu)介紹
數(shù)據(jù)描述語言
JSON
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。 易于人閱讀和編寫。同時(shí)也易于機(jī)器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。
其官網(wǎng)為:
http://json.org/
官網(wǎng)上列出了各種語言的JSON解析庫。其中C語言的解析庫中以json-c最為流行,其官網(wǎng)為:
https://github.com/json-c/json-c
和XML Path類似,JSON也定義了自己的JSON Path。參見:
http://goessner.net/articles/JsonPath/
參考:
https://addons.mozilla.org/zh-CN/firefox/addon/jsonview/
jsonview是一個(gè)用于檢驗(yàn)JSON格式是否合法的Firefox插件。
http://www.bejson.com/
一個(gè)在線驗(yàn)證JSON語法的庫。
Jackson
Jackson是常用的Java語言的JSON庫。
Maven安裝:
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.6.4</version> </dependency>Jackson提供了三種處理方法:
流式API:(也稱為”增量分析/生成”)讀取和寫入 JSON 內(nèi)容作為離散事件。類似于XML SAX。
com.fasterxml.jackson.JsonParser讀,com.fasterxml.jackson.JsonGenerator寫。
樹模型:提供一個(gè)JSON文檔可變內(nèi)存樹的表示形式。類似于XML DOM。
com.fasterxml.jackson.databind.ObjectMapper生成樹;樹組成JsonNode節(jié)點(diǎn)集。
數(shù)據(jù)綁定:JSON和POJO相互轉(zhuǎn)換,基于屬性訪問器規(guī)約或注解。
Jackson不支持JSON Path,可以使用以下項(xiàng)目:
https://github.com/jayway/JsonPath
這個(gè)項(xiàng)目的后端可以選擇Jackson或Gson。
BSON
Binary JSON是在JSON的基礎(chǔ)上,添加了索引及數(shù)據(jù)類型的一種二進(jìn)制格式。相比JSON,它犧牲了可閱讀性,得到了可遍歷性和高效性。
BSON最早由MongoDB項(xiàng)目提出并使用,它的官網(wǎng)為:
http://bsonspec.org/
從中可以看出大多數(shù)語言的BSON解析庫,都是MongoDB項(xiàng)目提供的。
YAML
YAML(Yet Another Markup Language)是JSON的超集。它沒有JSON那么流行,主要被用于科學(xué)計(jì)算領(lǐng)域,比如OpenCV項(xiàng)目。它的官網(wǎng)為:
http://yaml.org/
這個(gè)網(wǎng)站很有特色,它本身就是一個(gè)YAML文件。
Protocol Buffers
Protocol Buffers是Google公司開發(fā)的一種數(shù)據(jù)描述語言。它的官網(wǎng)為:
https://github.com/google/protobuf
這是一種注重效率,而可閱讀性幾乎為零的二進(jìn)制格式。其效率超過BSON,但除非有相關(guān)格式文件,否則完全無法閱讀。而BSON作為JSON的擴(kuò)展,只有擴(kuò)展的那部分不可讀,其余部分仍保留JSON的可讀性。
格式文件是Protocol Buffers中的重要概念,也是和JSON等格式在使用思路上最大的區(qū)別。
JSON采用的是,不同的語言提供不同的庫來解析的方式。
而Protocol Buffers使用同一個(gè)格式文件,為不同語言生成相應(yīng)的代碼。這和CORBA的做法很類似。
與Protocol Buffers類似的方案,還有Facebook提出的Thrift、ZeroC提出的Slice和Hadoop Avro。
運(yùn)維工具集
Zabbix
zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。
http://www.zabbix.com/
Cacti
Cacti是一套基于PHP,MySQL,SNMP及RRDTool開發(fā)的網(wǎng)絡(luò)流量監(jiān)測圖形分析工具。
http://cacti.net/
Nagios
Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)備,打印機(jī)等。
https://www.nagios.org/
Ganglia
Ganglia是伯克利開發(fā)的一個(gè)集群監(jiān)控軟件。可以監(jiān)視和顯示集群中的節(jié)點(diǎn)的各種狀態(tài)信息,比如如:cpu 、mem、硬盤利用率, I/O負(fù)載、網(wǎng)絡(luò)流量情況等,同時(shí)可以將歷史數(shù)據(jù)以曲線方式通過php頁面呈現(xiàn)。
官網(wǎng):
http://ganglia.sourceforge.net/
Jenkins
Jenkins是一個(gè)開源軟件項(xiàng)目,旨在提供一個(gè)開放易用的軟件平臺(tái),使軟件的持續(xù)集成變成可能。
https://jenkins.io/index.html
自動(dòng)化部署的其中一種方案:
gitlab管理代碼版本,觸發(fā)jenkins自動(dòng)構(gòu)建+測試,然后走迭代或者發(fā)布,全部環(huán)境都在docker內(nèi)。
Walle
Walle一個(gè)web部署系統(tǒng)工具,配置簡單、功能完善、界面流暢、開箱即用!支持git、svn版本管理,支持各種web代碼發(fā)布,PHP,Python,JAVA等代碼的發(fā)布、回滾,可以通過web來一鍵完成。
https://walle-web.io/
JMeter
Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對(duì)軟件做壓力測試,它最初被設(shè)計(jì)用于Web應(yīng)用測試,但后來擴(kuò)展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動(dòng)態(tài)資源,例如靜態(tài)文件、Java 小服務(wù)程序、CGI 腳本、Java 對(duì)象、數(shù)據(jù)庫、FTP 服務(wù)器, 等等。JMeter 可以用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,來自不同壓力類別下測試它們的強(qiáng)度和分析整體性能。
http://jmeter.apache.org/
總結(jié)
以上是生活随笔為你收集整理的云计算论文集, Spark, 数据描述语言, 运维工具集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop, Hbase
- 下一篇: 网络杂谈, Docker, MongoD