• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            RDD初探

            Posted on 2015-04-18 22:16 天邊藍 閱讀(455) 評論(0)  編輯 收藏 引用
            RDD初探 RDD(resilient distributed dataset )是Spark提出的一個創新性的概念,它提供了并行計算個階段中數據的有效共享,彌補了MapReduce中的不足。與MapReduce單乏的Map和Reduce相比,在RDD上,Spark提供了豐富的操作,可以讓程序開發人員利用RDD接口非常容易的編寫出復雜的數據處理程序,先見見Spark版本的WordCount程序: 僅僅兩行代碼,相比MapReduce,是不是簡潔了很多? 官網RDD的定義: Spark revolves around the concept of a resilient distributed dataset (RDD), which is a fault-tolerant collection of elements that can be operated on in parallel. There are two ways to create RDDs: parallelizing an existing collection in your driver program, or referencing a dataset in an external storage system, such as a shared filesystem, HDFS, HBase, or any data source offering a Hadoop InputFormat. RDD的特性: 1.分區的數據集 2.只讀的數據集 3.只能從driver程序中已有的集合或外部存儲進行創建 4.容錯的,失敗自動的快速重建 分區 分區,RDD是一個分區的數據集,其分區的多少決定著對這個RDD進行并行計算的粒度,在Spark中,每一個分區的計算在一個單獨的任務中執行。對RDD的分區而言,用戶可以指定其分區的數目;如果沒有,系統將會使用默認值,默認情況下,其分區數為這個程序所分配到的資源的CPU核的數目;如, 指定分區數: 默認分區數: 位置優先 在Spark中,秉性著這么一種思想,“移動數據不如移動計算”,在Spark任務調度的時候,總是盡可能的將任務分配到數據塊存儲的位置。如,對HDFS文件生成的RDD,preferredLocation接口返回其每塊數據所在的機器名或IP,在后續的任務調度中,調度器將盡可能的將計算任務分配到數據存儲的位置,如: RDD依賴關系 可以說,RDD依賴關系是Spark任務調度最根本的依據。 在RDD的轉換過程中,每次轉換都會生成一個新的RDD,在用戶程序中,對于某個RDD往往會有一系列的復雜的轉換,這樣,就形成了一條類似流水線樣的前后依賴關系。 在Spark中,存在兩種類型的依賴,即窄依賴和寬依賴; ?窄依賴:父RDD的每一個分區只被子RDD的一個分區所使用,如:map、filter等; ?寬依賴:父RDD的每一個分區只被子RDD的多個分區所使用,如:groupbyKey等; 區分兩種依賴的原因: 1.窄依賴可以在集群的一個節點上如流水一般的執行,無需物化很多無用的中間RDD,大大提升了計算性能; 2.窄依賴對于節點計算失敗后的恢復會更加有效,只要重新計算其對應父RDD的相應分區即可; RDD操作 RDD支持兩種操作 ?Transformations:從一個已存的RDD生成一個新的RDD,如map操作 ?Action:執行一次計算并將相應的計算結果返回值driver程序,如reduce 在Spark中,所有的Transformation都是惰性的,他們只會記錄其相應的依賴關系,而不會馬上計算其結果,只有在action要求計算結果時才會實際計算RDD的值。 Spark提供了豐富的RDD操作,詳細參考 http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.RDD RDD的持久化 在Spark中,還有一個最重要的特性就是RDD的持久化。當你對一個RDD進行持久化操作時,spark會將該RDD的每個分區的第一次計算結果保存在相應的存儲介質中。之后對該RDD的訪問可以直接訪問其存儲的結果,這樣我們可以將一些訪問比較頻繁的RDD進行持久化到內存中來,加快程序的處理時間(官網提供的數據時通常會加快速度10倍以上) RDD的持久化通過persist() 和 cache() 方法實現;

            Copyright © 天邊藍

            香港aa三级久久三级老师2021国产三级精品三级在| 性做久久久久久久久老女人| 九九精品99久久久香蕉| 99久久www免费人成精品| 久久亚洲高清综合| 国产成人久久精品一区二区三区| 久久er热视频在这里精品| 久久精品中文字幕有码| 久久精品国产亚洲AV久| 91精品国产高清久久久久久国产嫩草| 四虎影视久久久免费观看| 久久亚洲日韩精品一区二区三区| 国产亚州精品女人久久久久久 | 久久精品国产精品亚洲毛片| 青青青青久久精品国产h| 人妻无码精品久久亚瑟影视 | 一本大道久久香蕉成人网| 久久99国产精品99久久| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 久久久久亚洲精品天堂| 婷婷久久综合| 国内精品久久久久久久久电影网| 99久久国产精品免费一区二区| 久久久青草青青国产亚洲免观| 国产欧美久久久精品| 欧美午夜精品久久久久免费视| 日日狠狠久久偷偷色综合免费| 国产91久久综合| 国产精品成人久久久久三级午夜电影| 亚洲精品乱码久久久久久久久久久久 | 精品水蜜桃久久久久久久| 97久久精品无码一区二区| 色综合久久久久无码专区| 久久成人国产精品免费软件| 久久精品免费网站网| 久久久久九九精品影院| 久久久久亚洲AV成人网| 久久久国产一区二区三区| 久久青青草原精品国产软件| 伊人久久大香线蕉AV一区二区 | 亚洲国产精品一区二区久久hs|