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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

spark之12:集群模式概述

發布時間:2024/1/23 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark之12:集群模式概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spark之12:集群模式概述

@(SPARK)[spark, 大數據]

英文原文地址:https://spark.apache.org/docs/latest/cluster-overview.html

  • spark之12集群模式概述
    • 組件
    • 集群管理器的類型
    • 提交應用
    • 監控
    • 作業調度
    • 術語
      • Application
      • Application jar
      • Driver program
      • Cluster manager
      • Deploy mode
      • Worker node
      • Executor
      • Task
      • Job
      • Stage

集群模式概述

本文檔簡單介紹了spark如何在集群中運行,它使得你更容易理解spark相關的組件。關于如何在一個集群中運行spark,請參考application submission guide 。

組件

spark應用以多個進程的形式運行于一個集群中,它使用你所定義的主程序(或者叫驅動程序)中的SparkContext這個對象來協調。當運行于集群時,SparkContext可以運行于多種的集群管理器中(包括spark自帶的standalone集群,以及mesos和yarn),它們都被用于在不同的應用間分配資源。當spark應用連接到了集群管理器后,(1)首先它將從集群中的節點獲取執行器(executor),這些執行器就是用來運行計算或者存儲數據的進程(2)然后,spark會將你的應用代碼(jar包或者python文件)發送給執行器(3)最后,SparkContext將具體的任務(task)發送給執行器運行。

關于上面的架構,有幾點需要注意的:

1、每一個應用都擁有它自己獨立的執行器進程(executor processes),這些進程在應用的整個生命周期中保持運行,且一般會同時運行多個線程。這有利于不同應用的分離,但同時,它也意味著數據不能在不同的spark應用(或者說不同的SparkContext)中共享,除非你先將數據輸出到外部存儲中。

2、spark獨立于底層的cluster manager,只要保證它能夠獲取到executor processes,并且這些進程之間能互相通信。這就很容易將應用運行于不同的cluster manager,如mesos/yarn等,甚至這些cluster manager還能運行其它類型的應用。

3、驅動程序必須在整個生命周期中監聽并接受執行器的連接 (e.g., see spark.driver.port and spark.fileserver.port in the network config section)。因此驅動程序對于工作節點來說,必須可以通過網絡訪問的。

集群管理器的類型

目前spark支持以下幾種集群管理器:

  • Standalone – spark自帶的集群管理器,可以很方便的用于創建集群。
  • Apache Mesos – 一個通過的資源管理器,它可用于運行MR與一些其它應用。
  • Hadoop YARN – hadoop2.x引入的資源管理器。
    此外,spark的EC2 launch scripts 使得你可以很方便的在亞馬遜EC2上運行獨立集群。
  • 提交應用

    可以通過spark-submit向任意類型的集群提交應用。 application submission guide 詳細介紹了如何向spark集群提交應用。

    監控

    每一個驅動程序都有一個web UI(一般在4040端口),它展示了應用的信息,包括運行的任務,執行器以及存儲的使用情況等。在一個瀏覽器中打開 http://:4040 就可訪問到這個UI,monitoring guide詳細介紹了其它監控項。

    作業調度

    spark在不同應用間以及應用內部提供資源分配的控制, job scheduling overview詳細介紹了這些內容。

    術語

    下面總結了你在使用spark中需要用到的術語:

    Application

    用戶創建的spark應用,它由一個驅動程序和多個執行器組成。

    Application jar

    jar包包括了用戶的spark應用,有時候,用戶會創建一個超級包,它包括了這個包的所有依賴,但是不管如何,用戶Jar包不應該包括hadoop和spark的library,它們會在運行時自動加載。

    Driver program

    運行應用main函數的進程,同時它也用于創建SparkContext。

    Cluster manager

    一個用于獲取集群資源的外部服務,如 ( standalone manager, Mesos, YARN)

    Deploy mode

    用于區分在哪里運行驅動程序,在cluster模式中,會在集群內運行驅動程序,而在client模式中,在集群外運行驅動程序。

    Worker node

    集群中可以運行應用代碼的節點

    Executor

    某個應用運行于worker node的進程,它運行多個任務(task),并且在內存或者磁盤中保存數據。每一個應用都有自己的一個或者多個executors

    Task

    在executor中運行的工作單元

    Job

    由多個task組成的并行計算,你會在driver的log中看到這個詞

    Stage

    每一個job會被切分為一個更小的任務集合,這些任務集群被稱為stage,它們之間互相依賴(如MR中的map和reduce),你會在driver的log中看到這個詞。一般而言,以寬依賴作為依據分割stage。

    總結

    以上是生活随笔為你收集整理的spark之12:集群模式概述的全部內容,希望文章能夠幫你解決所遇到的問題。

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