1. 程式人生 > >平臺搭建---Spark Submit提交應用程式

平臺搭建---Spark Submit提交應用程式

本部分來源,也可以到spark官網檢視英文版。
spark-submit 是在spark安裝目錄中bin目錄下的一個shell指令碼檔案,用於在叢集中啟動應用程式(如*.py指令碼);對於spark支援的叢集模式,spark-submit提交應用的時候有統一的介面,不用太多的設定。
使用spark-submit時,應用程式的jar包以及通過—jars選項包含的任意jar檔案都會被自動傳到叢集中。

spark-submit --class   --master  --jars 

1、繫結應用程式依賴

如果程式碼依賴於其它專案,為了將程式碼分發到Spark叢集,就需要將這些依賴一起打包到應用程式中去。sbt和Maven都有裝配外掛,只要在建立整合的jar時列出Spark和Hadoop需要的依賴,而不需要將這些依賴和應用打包,因為在程式執行的時候叢集的master知道如何呼叫和提供這些依賴;但是一旦有整合好的jar包,在執行bin/spark-submit指令碼時就坐傳遞這些jar包了。

對於Python語言來講,可以使用spark-submit的–py-files引數新增.py,.zip,.egg檔案和應用程式一起進行分發,如果應用程式依賴於多個Python檔案,建議將它們打包成.zip或.egg檔案。

2、用spark-submit啟動應用程式

如果打包了應用程式,就可以使用bin/spark-submit指令碼啟動應用程式了,這個指令碼可以設定Spark類路徑(classpath)和應用程式依賴包,並且可以設定不同的Spark所支援的叢集管理和部署模式。提交任務後,無論是Standalone模式還是Spark on Yarn模式,都可以通過Web地址http://:4040來檢視當前執行狀態(具體訪問地址需要檢視spark搭建時的配置檔案)。
spark-submit提交應用的大致格式如下:

./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]

用得較多的引數是:

--class:應用程式的入口點(例如,org.apache.spark.examples.SparkPi
--master:叢集的master URL
(例如,spark://localhost:7077)
--deploy-mode:將driver部署到worker節點(cluster模式)或者作為外部客戶端部署到本地(client模式),預設情況下是client模式 --conf:用key=value格式強制指定Spark配置屬性,用引號括起來 --application-jar:包含應用程式和所有依賴的jar包的路徑,路徑必須是在叢集中是全域性可見的,例如,hdfs://路徑或者file://路徑 --application-arguments:傳遞給主類中main函式的引數

一般的部署策略是在一個閘道器機器上提交應用程式,這個機器和Worker機器部署在一個網路中(例如,Standalone模式的EC2叢集中的Master節點)。在此部署策略中,client模式更為合適,client模式中的driver直接跟spark-submit程序一起啟動,spark-submit程序在此扮演叢集中一個client的角色。應用程式的輸入輸出依賴於控制檯,如此一來,這種模式就特別適合關於REPL(例如,Spark shell)的應用程式。
另一種部署策略是,應用程式通過一臺遠離Worker節點的機器提交(例如,本地或者便攜裝置),這種情況下,一般使用cluster模式最小化drivers和executors之間的網路延時。注意,cluster模式暫時不支援於Mesos叢集或Python應用程式。

Python應用程式中,簡單地在application-jar處傳遞一個.py檔案而不是JAR檔案,然後用–py-files新增Python.zip,.egg或者.py檔案到搜尋路徑。

還有一些叢集管理器正在使用的可選項。例如,對於Spark Standalone的cluster部署模式,也可以使用–supervise以確定driver在遇到非0(non-zero)退出碼的錯誤時進行自動重啟。
通過執行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-cluster \  # can also be`yarn-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

3、Master URLs

傳遞給Spark的master url可以是以下任意格式之一:

master URL 意義
local 使用1個worker執行緒本地執行Spark(即完全沒有並行化)
local[K] 使用K個worker執行緒本地執行Spark(最好將K設定為機器的CPU核數)
local[*] 根據機器的CPU邏輯核數,儘可能多地使用Worker執行緒
spark://HOST:PORT 連線到給定的Spark Standalone叢集的Master,此埠必須是Master配置的埠,預設為7077
mesos://HOST:PORT 連線到給定的Mesos叢集的Master,此埠必須是Master配置的埠,預設為5050。若Mesos叢集使用ZooKeeper,則master URL使用mesos://zk://……
yarn-client 以client模式連線到YARN叢集,叢集位置將通過HADOOP_CONF_DIR環境變數獲得
yarn-cluster 以cluster模式連線到YARN叢集,叢集位置將通過HADOOP_CONF_DIR環境變數獲得

4、從檔案中載入配置

spark-submit指令碼可以通過屬性檔案載入預設的Spark配置值並將其傳遞給應用程式。預設情況下會讀取Spark目錄中conf/spark-default.conf檔案中的各配置項,詳細資訊參考“載入預設配置”。

載入預設配置可以取消spark-submit命令的某些引數選項。例如,如果設定了spark.master屬性,那麼可以直接省略 –master選項。一般情況下,直接使用SparkConf設定的屬性值具有最高的優先順序,然後是spark-submit命令中傳遞的選項,最後才是預設配置檔案中的值。如果你不清楚配置選項是來自於哪裡,可以執行spark-submit –verbose列印處更細粒度的除錯資訊。

5、高階依賴管理

當使用spark-submit時,應用程式的jar包以及由–jars選向給出的jar會自動上傳到叢集,由–jars給出的jar路徑之間必做用逗號分隔,如果路徑是個目錄的話,–jars的設定無法起作用,必須詳細到abc.jar。
Spark使用了下面的URL格式允許不同的jar包分發策略。
1、檔案file方式:
絕對路徑且file:/URIs是作為driver的HTTP檔案伺服器,且每個executor會從driver的HTTP伺服器拉取檔案;
2、hdfs方式:
http:,https:,ftp:,從這些給定的URI中拉取檔案和JAR包;
3、本地local方式:
以local:/開始的URI應該是每個worker節點的本地檔案,這意味著沒有網路IO開銷,並且推送或通過NFS/GlusterFS等共享到每個worker大檔案/JAR檔案或能很好的工作。

注意:SparkContext的JAR包和檔案都會被複制到每個executor節點的工作目錄下,這將用掉大量的空間,所以需要清理乾淨。
在YARN下,會自動清理。
在Spark Standalone下,可以通過配置spark.worker.cleanup.appDataTtl屬性做到自動清理。
使用者可以用--packages選項提供一個以逗號分隔的maven清單來包含任意其他依賴。
其它的庫(或SBT中的resolvers)可以用--repositories選項新增(同樣用逗號分隔),這些命令都可以用在pyspark,spark-shell和spark-submit中來包含一些Spark包。

對Python而言,–py-files選項可以用來向executors分發.egg,.zip和.py庫。

6、在YARN叢集上執行Spark應用

詳細請參考官網
在Spark獨立叢集模式,–master 所提供的地址是由Spark自身給出,在yarn模式下,Spark資源管理器的地址其實也就是hadoop的master地址,因而–master 的地址應該由yarn來提供。
格式如下:

$ ./bin/spark-submit --class path.to.your.Class --master yarn --deploy-mode cluster [options] <app jar> [app options]

下面是一個更詳細的例子:

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 4g \
    --executor-memory 2g \
    --executor-cores 1 \
    --queue thequeue \
    lib/spark-examples*.jar \
    10

執行的過程大致如下:
上面的應用提交後,會啟動一個yarn客戶端程式,這個程式接著啟動master上的應用程式,SparkPi 再啟動master應用的不同執行緒,yarn客戶端程式會週期性地檢查master應用的狀態,並在控制檯列印這些狀態,程式結束後,yarn客戶端會結束即出。我們可以通過檢視驅動器和執行器的日誌檔案來除錯應用程式。

先放在這裡,有時間再來補上

7、執行 Spark Python 應用

主要是要解決如何將依賴庫一起提交的問題。
方法一:將庫以python檔案的方式提交。
首先要理解的,我們在安裝python外部庫的時候,該庫的功能主要還是靠abc.py這樣的類檔案來實現,當我們用類似from spark_learning.utils.default_utils import setDefaultEncoding的時候,是從這個類檔案中引入了某個函式。所以當我們要將某個庫提交給叢集的時候,可以找到相關的類檔案,然後將這個類檔案提交上去。
可參考下面的格式(可能有錯):

#python程式碼中的import
from spark_learning.utils.default_utils import setDefaultEncoding,initSparkContext,ensureOffset
#submit命令:
bin/spark-submit --jars /home/jabo/software/spark-1.5.2-bin-hadoop2.6/lib/spark-streaming-kafka-assembly_2.10-1.5.2.jar \
--py-files /home/jabo/spark-by-python/spark_learning/utils/default_utils.py \
/home/jabo/spark-by-python/spark_learning/third_day/streaming_kafka_avg.py

下面是比較正規的做法:
來源
用 Java 和 Scala 訪問 Spark 提供了許多優點 : 因為 Spark 它自己執行在 JVM 中,執行在 JVM 內部是平臺無關的,獨立的程式碼包和它打入到 JAR 檔案中的依賴,以及更高的效能。如果您使用 Spark Python API 將會失去這些優勢。

管理依賴並讓它們可用於群集上的 Python Job 是很難的。為了確定哪些依賴在群集上是需要的,您必須瞭解執行在分散式 群集 中的 Spark executor 程序中的 Spark 應用程式的程式碼。如果您定義的 Python 轉換使用的任何的第三方庫,比如 NumPy 或者 nltk,當它們執行在遠端的 executor 上時 Spark executor 需要訪問這些庫。

7.1、獨立的依賴關係

常見的情況中,一個自定義的 Python 包包含了你想要應用到每個 RDD 元素的 功能。下面展示了一個簡單的例子 :

def import_my_special_package(x):
  import my.special.package
  return x

int_rdd = sc.parallelize([1, 2, 3, 4])
int_rdd.map(lambda x: import_my_special_package(x))
int_rdd.collect()

您建立了一個有 4 個元素名為 int_rdd 的簡單的 RDD。然後您應用函式 import_my_special_package 到每個 int_rdd 的元素。這個函式匯入了 my.sepcial.package 並且返回了傳入的原始引數。這樣和使用類或者定義的函式有相同的作用,因為 Spark 需要每個 Spark executor 在需要時匯入 my.special.package。

如果你只需要 my.special.package 內部一個簡單的檔案,您可以通過在您的 spark-submit 命令中使用 –py-files 選項並指定檔案的路徑來直接讓 Spark 的所有 executor 都可以獲取。您也可以以程式設計的方式通過使用 sc.addPyFiles() 函式來指定。如果您使用的功能來自跨越多個檔案的 package,為 package 製作一個 egg,因為 –py-files 標記也接受一個 egg 檔案的路徑。
如果您有一個獨立的依賴關係,您可以使用兩種方式讓需要的 Python 依賴是可用的。

  • 如果您只依賴一個單獨的檔案,您可以使用 –py-files 命令列選項,或者以程式設計的方式用 sc.addPyFiles(path) 兵指定本地 Python 檔案的路徑新增這些檔案到 SparkContext。
  • 如果您有一個獨立模組上的依賴(一個沒有其它依賴的模組),您可以建立一個這些模組的 egg 或者 zip 檔案,使用 –py-files 命令列選項或者以程式設計的方式用 sc.addPyFiles(path) 兵指定本地 Python 檔案的路徑新增這些檔案到 SparkContext。

7.2、複雜的依賴關係

一些操作依賴有許多依賴關係的複雜的 package。例如,下列的程式碼片段匯入了 Python pandas 資料分析庫 :

def import_pandas(x):
 import pandas
 return x

int_rdd = sc.parallelize([1, 2, 3, 4])
int_rdd.map(lambda x: import_pandas(x))
int_rdd.collect()

pandas 依賴 NumPy,SciPi,和許多其它的 package。儘管 pandas 作為一個 *.py 檔案來分發是很複雜的,您可以為它和它的依賴建一個 egg 併發送它們到 executor。

7.3、分發 Egg 檔案的限制

在這兩個獨立的,複雜的依賴關係的情況中,傳送 egg 檔案是有問題的,因為帶有原始碼包必須在其上執行的特定主機進行編譯。當行業業標準的硬體做分散式計算,你必須假設的是,硬體是多樣化的。然而,由於所需的 C 編譯,內建客戶端主機上一個 Python egg 是特定的客戶端的 CPU 架構。因此,分配複雜的 egg,像編譯 NumPy,SciPy 的 package 和 pandas 經常出現故障。相反,分發 egg 檔案,你應該在群集的每個主機上安裝所需的 Python 包,並指定 Python 的二進位制檔案的路徑為 worker 主機使用。
安裝以及保持 Python 環境
安裝和維護的Python環境可能比較複雜,但可以讓你使用完整的Python包生態系統。系統管理員在用您需要的依賴在群集的每臺主機上安裝 Anaconda distribution 或者設定一個 虛擬環境。
如果您使用 Cloudera Manager,您可以使用方法將 Anaconda distribution 作為一個 Parcel 來部署。

最低需要的角色 : 群集管理員(或者管理員)

  • 像 管理 Parcels 中描述的一樣下載,分發,並且啟用 Parcel。

Anaconda 被安裝在 parcel 目錄/Anaconda 中,parcel 目錄預設是 /opt/cloudera/parcels,但是可以在 parcel 配置設定中更改。Anaconda parcel 支援 Continuum Analytics。

如果您沒有使用 Cloudera Manager,您可以在您的群集中安裝一個虛擬環境通過在每臺主機上執行命令 Cluster SSH,Parallel SSH,或者 Fabric。假設每臺主機已經安裝了 Python 和 pip,在一個 RHEL 6 相容的系統中上的虛擬環境中使用下面的命令來安裝標準的資料棧(NumPy,SciPy,scikit-learn,和 pandas)。

# Install python-devel:
yum install python-devel

# Install non-Python dependencies required by SciPy that are not installed by default:
yum install atlas atlas-devel lapack-devel blas-devel

# install virtualenv:
pip install virtualenv

# create a new virtualenv:
virtualenv mynewenv

# activate the virtualenv:
source mynewenv/bin/activate

# install packages in mynewenv:
pip install numpy
pip install scipy
pip install scikit-learn
pip install pandas

7.4、設定 Python 路徑

之後您想要使用的 Python 包在您群集中一致的位置,如下所示設定相應的環境變數路徑到您的 Python 可執行的檔案 :

  • Client 模式 - 用 PYSPARK_PYTHON 設定 executor 路徑,用 PYSPARK_DRIVER_PYTHON 設定 driver 路徑。
  • Cluster 模式 - 用 spark.yarn.appMasterEnv.PYSPARK_PYTHON 設定 executor 路徑,用 spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON 設定 driver 路徑。

為了使這些變數一致,新增相應的 export 語句 :

  • Anaconda parcel - export 變數 /opt/cloudera/parcels/Anaconda/bin/python
  • Virtual environment - export 變數 /path/to/mynewenv/bin/python

到 sparl-env.sh,檢查其他使用者沒有用條件測試的變數,比如 :

if [ -z "${PYSPARK_PYTHON}" ]; then
export PYSPARK_PYTHON=
fi

在 Cloudera Manager 中,如下所示在 spark-env.sh 中設定環境變數 :

最低需求角色 : 配置員(也可以用群集管理員,管理員)

  • 轉到 Spark 服務。
  • 點選 配置 標籤。
  • 搜尋 spark-conf/spark-env.sh 的 Spark 服務高階配置程式碼段(安全閥)。
  • 新增變數到屬性中。
  • 點選 儲存更改 以提交更改。
  • 重啟服務。
  • 部署客戶端配置。

在命令列中,在 /etc/spark/conf/spark-env.sh 中設定環境變數。

8、最終提交spark作業

更詳細可參考文件

8.1、用yarn-client模式提交spark作業

在/usr/local/spark目錄下建立資料夾

vi spark_pi.sh

shell檔案的內容如下:

$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.JavaSparkPi \
--master yarn-client \
--num-executors 1 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \

$SPARK_HOME/lib/spark-examples-1.6.1-hadoop2.6.0.jar \

或者

[[email protected] ~]$  $SPARK_HOME/bin/spark-submit  \
> --class org.apache.spark.examples.JavaSparkPi \
> --master yarn-cluster \
> --num-executors 1 \
> --driver-memory 1g \
> --executor-memory 1g \
> --executor-cores 1 \
>  $SPARK_HOME/lib/spark-examples-1.6.1-hadoop2.6.0.jar

修改該shell文件許可權

chmod 777 spark_pi.sh

然後執行以下程式碼就可啟動應用程式

./spark_pi.sh

當然也可以在linux下設定定時器來定時執行該應用程式。

8.2、用yarn-cluster模式提交spark作業

在/usr/local/spark目錄下建立資料夾

vi spark_pi.sh

shell檔案的內容如下:

$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.JavaSparkPi \
--master yarn-client \
--num-executors 1 \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \

$SPARK_HOME/lib/spark-examples-1.6.1-hadoop2.6.0.jar \

或者

[[email protected] ~]$  $SPARK_HOME/bin/spark-submit  \
> --class org.apache.spark.examples.JavaSparkPi \
> --master yarn-cluster \
> --num-executors 1 \
> --driver-memory 1g \
> --executor-memory 1g \
> --executor-cores 1 \
>  $SPARK_HOME/lib/spark-examples-1.6.1-hadoop2.6.0.jar

修改該shell文件許可權

chmod 777 spark_pi.sh

然後執行以下程式碼就可啟動應用程式

./spark_pi.sh

當然也可以在linux下設定定時器來定時執行該應用程式

相關推薦

平臺搭建---Spark Submit提交應用程式

本部分來源,也可以到spark官網檢視英文版。 spark-submit 是在spark安裝目錄中bin目錄下的一個shell指令碼檔案,用於在叢集中啟動應用程式(如*.py指令碼);對於spark支援的叢集模式,spark-submit提交應用的時候有統一的

idea打jar包與spark-submit提交叢集

一、idea打jar包 project Structure中選擇Aritifacts 選擇+號新建一個要打的jar包 刪除除了 compile output之外的叢集中已經存在的jar包,除非引入了叢集中不存在的jar包 選擇設定主類,再build->

spark-submit 提交任務報錯 java.lang.ClassNotFoundException: Demo02

案例:把sparksql的程式提交到spark的單機模式下執行 package demo01 import org.apache.spark.SparkContext import org.apache.spark.sql.SQLContext import org.apache.spa

spark-submit提交jar包到spark叢集上

一、首先將寫好的程式打包成jar包。在IDEA下使用maven匯出jar包,如下: 在pom.xml中新增以下外掛 <plugin> <groupId>org.apache.maven.plu

spark-submit 提交任務報錯 java.lang.ClassNotFoundException: Demo02

案例:把sparksql的程式提交到spark的單機模式下執行 package demo01 import org.apache.spark.SparkContext import org.apache.spark.sql.SQLContext import org.ap

通過spark-submit提交hadoop配置的方法

通過spark提交的spark開頭的配置在程式啟動後會新增到SparkConf中,但是hadoop相關的配置非spark開頭會被過濾掉,但是隻要在這些配置的key前面新增spark.hadoop.字首,則該key就不會被過濾,會被放置到SparkConf中;最終會儲存在Configuration 

Spark2.x原始碼分析---spark-submit提交流程

本文以spark on yarn的yarn-cluster模式進行原始碼解析,如有不妥之處,歡迎吐槽。 步驟1.spark-submit提交任務指令碼 spark-submit  --class 主類路徑 \ --master yarn \ --deploy-mode c

MapReduce2架構設計(YARN工作流程(MR提交應用程式))

    前言:MapReduce是一種可用於資料處理的程式設計模型。該模型比較簡單,但是要寫出有用的程式缺不太容易。本篇文章主要介紹MapReduce2(YARN),會附帶介紹MapReduce1的架構。    狹義的hadoop包含:HDFS、MapReduce和YARN,

spark submit提交任務報錯Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/stream

1.問題描述 提交spark任務: bin/spark-submit --master local[2] \ --class _0924MoocProject.ImoocStatStreamingApp_product \ /opt/datas/project/scala

使用spark-submit提交jar包到spark standalone叢集(續)

繼續上篇文章利用Intellij Idea在windows搭建spark 開發環境(含打jar包過程)(一) 以及Sparksql處理json日誌[要求sparksql統計json日誌條數存入mysql資料庫]                          本章將把打好

蝸龍徒行-Spark學習筆記【四】Spark叢集中使用spark-submit提交jar任務包實戰經驗

一、所遇問題        由於在IDEA下可以方便快捷地執行scala程式,所以先前並沒有在終端下使用spark-submit提交打包好的jar任務包的習慣,但是其只能在local模式下執行,在網上搜了好多帖子設定VM引數都不能啟動spark叢集,由於實驗任務緊急只能暫時

spark-submit提交任務到叢集

1.引數選取 當我們的程式碼寫完,打好jar,就可以通過bin/spark-submit 提交到叢集,命令如下: ./bin/spark-submit \    --class <main-class>   --master <master-url>

YARN工作流程(MapReduce提交應用程式

首先說工作流程 1:使用者向YARN中提交應用程式,其中包括ApplicationMaster程式、啟動ApplicationMaster的命令、使用者程式等。 2:ResourceManager為該應用程式分配第一個Container,並與對應的Node-Manager

.Net平臺下開發中文語音應用程式

摘要: 語音是人類最自然的互動方式,也是現階段軟體使用者介面發展的最高目標。微軟公司一直積極推動語音技術的發展,並且公佈了語音開發平臺Speech SDK幫助開發人員實現語音應用。 隨著.net技術深入人心,越來越多的程式設計師開始轉到.net平臺上進行開發。然而,在新發

交叉編譯能在arm平臺上執行的Qt應用程式的步驟

        我們的電腦一般來說,現在主流的還是X86平臺(當然,隨著64位機的普及,相信以後格局會變化,暫不討論)。對於Qt應用程式來說,我們在PC機上開發的時候,因為本身我們的開發軟體Qt creator是執行在X86平臺上的,而我們編寫的應用程式也預設是在PC機上執

[轉] spark-submit 提交任務及參數說明

https 不包含 dep apache 沖突 哪裏 mas repo ado 【From】 https://www.cnblogs.com/weiweifeng/p/8073553.html#undefined spark-submit 可以提交任務到 spark

Spark spark-submit 提交的幾種模式

local 模式 程式碼 package com.imooc.spark.Test import org.apache.spark.sql.types.{StringType, StructField, StructType} import org

Spark提交應用程序之Spark-Submit分析

需要 使用 please requested 建議 eas -m rfs export 1.提交應用程序 在提交應用程序的時候,用到 spark-submit 腳本。我們來看下這個腳本: if [ -z "${SPARK_HOME}" ]; then export

Spark On Yarn:提交Spark應用程式到Yarn

Spark On Yarn模式配置非常簡單,只需要下載編譯好的Spark安裝包,在一臺帶有Hadoop Yarn客戶端的機器上解壓,簡單配置之後即可使用。 要把Spark應用程式提交到Yarn執行,首先需要配置HADOOP_CONF_DIR或者YARN_C

spark-submit 應用程式第三方jar檔案

第一種方式:打包到jar應用程式 操作:將第三方jar檔案打包到最終形成的spark應用程式jar檔案中 應用場景:第三方jar檔案比較小,應用的地方比較少 第二種方式:spark-submit 引數 --jars 操作:使用spark-submit提交命令的引數: --jars 要求: 1、使用