日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Spark篇】---Spark初始

發布時間:2025/7/25 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Spark篇】---Spark初始 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前述

Spark是基于內存的計算框架,性能要優于Mapreduce,可以實現hadoop生態圈中的多個組件,是一個非常優秀的大數據框架,是Apache的頂級項目。One stack? rule? them all? 霸氣。

但不同于MapReduce的是Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數據挖掘與機器學習等需要迭代的MapReduce的算法

二、具體細節

1、Spark與MapReduce的區別

?都是分布式計算框架,Spark基于內存,MR基于HDFS。Spark處理數據的能力一般是MR的十倍以上,Spark中除了基于內存計算外,還有DAG有向無環圖來切分任務的執行先后順序。

2、Spark運行模式

  • Local

???????????? 多用于本地測試,如在eclipse,idea中寫程序測試等。

  • Standalone

????????????? StandaloneSpark自帶的一個資源調度框架,它支持完全分布式。

  • Yarn

????? ? ? ? ?? Hadoop生態圈里面的一個資源調度框架Spark也是可以基于Yarn來計算的。

  • Mesos

????????? 資源調度框架。

注意:要基于Yarn來進行資源調度,必須實現AppalicationMaster接口,Spark實現了這個接口,所以可以基于Yarn

3、SparkCore

概念

RDD(Resilient Distributed Dateset),彈性分布式數據集。

RDD的五大特性:(比較重要)

  • RDD是由一系列的partition組成的。
  • 函數是作用在每一個partition(split)上的。
  • RDD之間有一系列的依賴關系。
  • 分區器是作用在K,V格式的RDD上。
  • RDD提供一系列最佳的計算位置。Partiotion對外提供數據處理的本地化,計算移動,數據不移動。
  • ?

    ?

    備注:

    1、textFile方法底層封裝的是讀取MR讀取文件的方式,讀取文件之前先split,默認split大小是一個block大小。每個split對應一個partition。

    ?

    2、RDD實際上不存儲數據,存儲的是計算邏輯這里方便理解,暫時理解為存儲數據。

    ?

    3、什么是K,V格式的RDD?

    • 如果RDD里面存儲的數據都是二元組對象,那么這個RDD我們就叫做K,V格式的RDD。

    4、 哪里體現RDD的彈性(容錯)?

    • partition數量,大小沒有限制,體現了RDD的彈性。Partiotion個數可以控制。可以提高并行度。
    • RDD之間依賴關系,可以基于上一個RDD重新計算出RDD。

    5、哪里體現RDD的分布式?

    • RDD是由Partition組成,partition是分布在不同節點上的。 RDD提供計算最佳位置,體現了數據本地化。體現了大數據中“計算移動數據不移動”的理念。

    4、Spark任務執行原理

    ?

    以上圖中有四個機器節點,Driver和Worker是啟動在節點上的進程,運行在JVM中的進程。

    • Driver與集群節點之間有頻繁的通信。
    • Driver負責任務(tasks)的分發和結果的回收任務的調度。如果task的計算結果非常大就不要回收了。會造成oom。
    • Worker是Standalone資源調度框架里面資源管理的從節點。也是JVM進程。
    • Master是Standalone資源調度框架里面資源管理的主節點。也是JVM進程。

    5、Spark代碼流程

    ?? 1、創建SparkConf對象

    ?

    ?????? SparkConf conf = new SparkConf().setMaster("local").setAppName("xxx")

    • 1.設置運行模式
    • 2.設置application name
    • 3.設置spark運行參數

    ?? 2、創建SparkContext對象

    ????????? 集群的唯一入口

    ?

    ?? 3、基于Spark的上下文創建一個RDD,對RDD進行處理。

    ????????? 由SparkContext創建RDD

    ?

    ?? 4、應用程序中要有Action類算子來觸發Transformation類算子執行。

    ?? 5、關閉Spark上下文對象SparkContext。

    ?

    轉載于:https://www.cnblogs.com/LHWorldBlog/p/8401148.html

    總結

    以上是生活随笔為你收集整理的【Spark篇】---Spark初始的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。