<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Submitting Applications 在 script in Spark的 `bin` 目錄中的`spark-submit` 腳本用與在集群上啟動應用程序。它可以通過一個統一的接口使用所有 Spark 支持的 [cluster managers](cluster-overview.html#cluster-manager-types),所以您不需要專門的為每個[cluster managers](cluster-overview.html#cluster-manager-types)配置您的應用程序。 # 打包應用依賴 如果您的代碼依賴了其它的項目,為了分發代碼到 Spark 集群中您將需要將它們和您的應用程序一起打包。為此,創建一個包含您的代碼以及依賴的 assembly jar(或者 “uber” jar)。無論是 [sbt](https://github.com/sbt/sbt-assembly) 還是 [Maven](http://maven.apache.org/plugins/maven-shade-plugin/) 都有 assembly 插件。在創建 assembly jar 時,列出 Spark 和 Hadoop的依賴為`provided`。它們不需要被打包,因為在運行時它們已經被 Cluster Manager 提供了。如果您有一個 assembled jar 您就可以調用 `bin/spark-submit` 腳本(如下所示)來傳遞您的 jar。 對于 Python 來說,您可以使用 `spark-submit` 的 `--py-files` 參數來添加 `.py`,`.zip` 和 `.egg` 文件以與您的應用程序一起分發。如果您依賴了多個 Python 文件我們推薦將它們打包成一個 `.zip` 或者 `.egg` 文件。 # 用 spark-submit 啟動應用 如果用戶的應用程序被打包好了,它可以使用 `bin/spark-submit` 腳本來啟動。這個腳本負責設置 Spark 和它的依賴的 classpath,并且可以支持 Spark 所支持的不同的 Cluster Manager 以及 deploy mode(部署模式): ``` ./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments] ``` 一些常用的 options(選項)有 : * `--class`:您的應用程序的入口點(例如 `org.apache.spark.examples.SparkPi`) * `--master`:集群的 [master URL](#master-urls)(例如 `spark://23.195.26.187:7077`) * `--deploy-mode`:是在 worker 節點(`cluster`)上還是在本地作為一個外部的客戶端(`client`)部署您的 driver(默認:`client`) **?** * `--conf`:按照 key=value 格式任意的 Spark 配置屬性。對于包含空格的 value(值)使用引號包 “key=value” 起來。 * `application-jar`:包括您的應用以及所有依賴的一個打包的 Jar 的路徑。該 URL 在您的集群上必須是全局可見的,例如,一個 `hdfs://` path 或者一個 `file://` 在所有節點是可見的。 * `application-arguments`:傳遞到您的 main class 的 main 方法的參數,如果有的話。 **?** 常見的部署策略是從一臺 gateway 機器物理位置與您 worker 在一起的機器(比如,在 standalone EC2 集群中的 Master 節點上)來提交您的應用。在這種設置中,`client` 模式是合適的。在 `client` 模式中,driver 直接運行在一個充當集群 client 的 `spark-submit` 進程內。應用程序的輸入和輸出直接連到控制臺。因此,這個模式特別適合那些設計 REPL(例如,Spark shell)的應用程序。 另外,如果您從一臺遠離 worker 機器的機器(例如,本地的筆記本電腦上)提交應用程序,通常使用 `cluster` 模式來降低 driver 和 executor 之間的延遲。目前,Standalone 模式不支持 Cluster 模式的 Python 應用。 對于 Python 應用,在 `&lt;application-jar&gt;` 的位置簡單的傳遞一個 `.py` 文件而不是一個 JAR,并且可以用 `--py-files` 添加 Python `.zip`,`.egg` 或者 `.py` 文件到 search path(搜索路徑)。 這里有一些選項可用于特定的 [cluster manager](cluster-overview.html#cluster-manager-types) 中。例如,[Spark standalone cluster](spark-standalone.html) 用 `cluster` 部署模式,您也可以指定 `--supervise` 來確保 driver 在 non-zero exit code 失敗時可以自動重啟。為了列出所有 `spark-submit`,可用的選項,用 `--help`. 來運行它。這里是一些常見選項的例子 : ``` # Run application locally on 8 cores ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[8] \ /path/to/examples.jar \ 100 # Run on a Spark standalone cluster in client deploy mode ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://207.184.161.138:7077 \ --executor-memory 20G \ --total-executor-cores 100 \ /path/to/examples.jar \ 1000 # Run on a Spark standalone cluster in cluster deploy mode with supervise ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://207.184.161.138:7077 \ --deploy-mode cluster \ --supervise \ --executor-memory 20G \ --total-executor-cores 100 \ /path/to/examples.jar \ 1000 # Run on a YARN cluster export HADOOP_CONF_DIR=XXX ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ # can be client for client mode --executor-memory 20G \ --num-executors 50 \ /path/to/examples.jar \ 1000 # Run a Python application on a Spark standalone cluster ./bin/spark-submit \ --master spark://207.184.161.138:7077 \ examples/src/main/python/pi.py \ 1000 # Run on a Mesos cluster in cluster deploy mode with supervise ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master mesos://207.184.161.138:7077 \ --deploy-mode cluster \ --supervise \ --executor-memory 20G \ --total-executor-cores 100 \ http://path/to/examples.jar \ 1000 ``` # Master URLs 傳遞給 Spark 的 master URL 可以使用下列格式中的一種 : | Master URL | Meaning | | --- | --- | | `local` | 使用一個線程本地運行 Spark(即,沒有并行性)。 | | `local[K]` | 使用 K 個 worker 線程本地運行 Spark(理想情況下,設置這個值的數量為您機器的 core 數量)。 | | `local[K,F]` | 使用 K 個 worker 線程本地運行 Spark并允許最多失敗 F次(查閱 [spark.task.maxFailures](configuration.html#scheduling) 以獲取對該變量的解釋)| | `local[*]` | 使用更多的 worker 線程作為邏輯的 core 在您的機器上來本地的運行 Spark。 | | `local[*,F]` | 使用更多的 worker 線程作為邏輯的 core 在您的機器上來本地的運行 Spark并允許最多失敗 F次。 | | `spark://HOST:PORT` | 連接至給定的 [Spark standalone cluster](spark-standalone.html) master. master。該 port(端口)必須有一個作為您的 master 配置來使用,默認是 7077。 | | `spark://HOST1:PORT1,HOST2:PORT2` | 連接至給定的 [Spark standalone cluster with standby masters with Zookeeper](spark-standalone.html#standby-masters-with-zookeeper)。該列表必須包含由zookeeper設置的高可用集群中的所有master主機。該 port(端口)必須有一個作為您的 master 配置來使用,默認是 7077。 | | `mesos://HOST:PORT` | 連接至給定的 [Mesos](running-on-mesos.html) 集群。該 port(端口)必須有一個作為您的配置來使用,默認是 5050。或者,對于使用了 ZooKeeper 的 Mesos cluster 來說,使用 `mesos://zk://...`。使用 `--deploy-mode cluster`,來提交,該 HOST:PORT 應該被配置以連接到 [MesosClusterDispatcher](running-on-mesos.html#cluster-mode)。 | `yarn` | 連接至一個 [YARN](running-on-yarn.html) cluster in `client` or `cluster` mode 取決于 `--deploy-mode`. 的值在 client 或者 cluster 模式中。該 cluster 的位置將根據 `HADOOP_CONF_DIR` 或者 `YARN_CONF_DIR` 變量來找到。 | # 從文件中加載配置 `spark-submit` 腳本可以從一個 properties 文件加載默認的 [Spark configuration values](configuration.html) 并且傳遞它們到您的應用中去。默認情況下,它將從 Spark 目錄下的 `conf/spark-defaults.conf` 讀取配置。更多詳細信息,請看 [加載默認配置](configuration.html#loading-default-configurations)。 加載默認的 Spark 配置,這種方式可以消除某些標記到 `spark-submit` 的必要性。例如,如果 `spark.master` 屬性被設置了,您可以在 `spark-submit` 中安全的省略 `--master` 配置。一般情況下,明確設置在 `SparkConf` 上的配置值的優先級最高,然后是傳遞給 `spark-submit`的值,最后才是 default value(默認文件)中的值。 如果您不是很清楚其中的配置設置來自哪里,您可以通過使用 `--verbose` 選項來運行 `spark-submit` 打印出細粒度的調試信息。 # 高級的依賴管理 在使用 `spark-submit` 時,使用 `--jars` 選項包括的應用程序的 jar 和任何其它的 jar 都將被自動的傳輸到集群。在 `--jars` 后面提供的 URL 必須用逗號分隔。該列表會被包含到 driver 和 executor 的 classpath 中。 `--jars` 不支持目錄的形式。 Spark 使用下面的 URL 格式以允許傳播 jar 時使用不同的策略 : * **file:** - 絕對路徑和 `file:/` URI 通過 driver 的 HTTP file server 提供服務,并且每個 executor 會從 driver 的 HTTP server 拉取這些文件。 * **hdfs:**,**http:**,**https:**,**ftp:** - 如預期的一樣拉取下載文件和 JAR * **local:** - 一個用 local:/ 開頭的 URL 預期作在每個 worker 節點上作為一個本地文件存在。這樣意味著沒有網絡 IO 發生,并且非常適用于那些已經被推送到每個 worker 或通過 NFS,GlusterFS 等共享的大型的 file/JAR。 N 注意,那些 JAR 和文件被復制到 working directory(工作目錄)用于在 executor 節點上的每個 SparkContext。這可以使用最多的空間顯著量隨著時間的推移,將需要清理。在 Spark On YARN 模式中,自動執行清理操作。在 Spark standalone 模式中,可以通過配置 `spark.worker.cleanup.appDataTtl` 屬性來執行自動清理。 用戶也可以通過使用 `--packages`來提供一個逗號分隔的 maven coordinates(maven 坐標)以包含任何其它的依賴。在使用這個命令時所有可傳遞的依賴將被處理。其它的 repository(或者在 SBT 中被解析的)可以使用 `--repositories`該標記添加到一個逗號分隔的樣式中。(注意,對于那些設置了密碼保護的庫,在一些情況下可以在庫URL中提供驗證信息,例如 `https://user:password@host/...`。以這種方式提供驗證信息需要小心。)這些命令可以與 `pyspark`,`spark-shell` 和 `spark-submit` 配置會使用以包含 Spark Packages(Spark 包)。對于 Python 來說,也可以使用 `--py-files` 選項用于分發 `.egg`,`.zip` 和 `.py` libraries 到 executor 中。 # 更多信息 如果您已經部署了您的應用程序,[集群模式概述](cluster-overview.html) 描述了在分布式執行中涉及到的組件,以及如何去監控和調試應用程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看