共計(jì) 3915 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。
這篇文章主要介紹“Spark 應(yīng)用程序怎么部署”,在日常操作中,相信很多人在 Spark 應(yīng)用程序怎么部署問(wèn)題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Spark 應(yīng)用程序怎么部署”的疑惑有所幫助!接下來(lái),請(qǐng)跟著丸趣 TV 小編一起來(lái)學(xué)習(xí)吧!
Spark 應(yīng)用程序的部署
local
spark standalone
hadoop yarn
apache mesos
amazon ec2
spark standalone 集群部署
standalonestandalone ha
SPARK 源碼編譯
SBT 編譯
SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true sbt/sbt assembly
export MAVEN_OPTS= -Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m
mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
Spark 部署包生成命令 make-distribution.sh
–hadoop VERSION:hadoop 版本號(hào) 不加此參數(shù)是 hadoop 版本為 1.0.4
–with-yarn 是否支持 hadoop yarn 不加參數(shù)時(shí)為不支持
–with-hive 是否在 sparksql 中支持 hive 不加此參數(shù)為不支持 hive
–skip-tachyon 是否支持內(nèi)存文件系統(tǒng) Tachyon,不加此參數(shù)時(shí)不生成 tgz 文件,只生成 /dist 目錄
–name NAME 和 -tgz 結(jié)合可以生成 spark-¥VERSION-bin-$NAME.tgz 的部署包,不加此參數(shù)時(shí) NAME 為 hadoop 的版本號(hào)
部署包生成
生成支持 yarn hadoop2.2.0 的部署包
./make-distribution.sh –hadoop 2.2.0 –with-yarn –tgz
生成支持 yarn hive 的部署包
./make-distribution.sh –hadoop 2.2.0 –with-yarn –with-hive –tgz
[root@localhost lib]# ls /root/soft/spark-1.4.0-bin-hadoop2.6/lib/spark-assembly-1.4.0-hadoop2.6.0.jar
/root/soft/spark-1.4.0-bin-hadoop2.6/lib/spark-assembly-1.4.0-hadoop2.6.0.jar
[root@localhost conf]# vi slaves【slave 節(jié)點(diǎn),如果偽分布就是】
localhost
[root@localhost conf]# cp spark-env.sh.template spark-env.sh
[root@localhost conf]# vi spark-env.sh 拷貝到所有節(jié)點(diǎn)
文件 conf/spark-env.sh
export SPARK_MASTER_IP=localhost
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK__WORKER_INSTANCES=1
export SPARK__WORKER_MEMORY=1
[root@localhost conf]# ../sbin/start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /root/soft/spark-1.4.0-bin-hadoop2.6/sbin/../logs/spark-root-org.apache.spark.deploy.master.Master-1-localhost.localdomain.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to /root/soft/spark-1.4.0-bin-hadoop2.6/sbin/../logs/spark-root-org.apache.spark.deploy.worker.Worker-1-localhost.localdomain.out
localhost: failed to launch org.apache.spark.deploy.worker.Worker:
localhost: JAVA_HOME is not set
localhost: full log in /root/soft/spark-1.4.0-bin-hadoop2.6/sbin/../logs/spark-root-org.apache.spark.deploy.worker.Worker-1-localhost.localdomain.out
訪問(wèn) http://192.168.141.10:8080/
[root@localhost conf]# ../bin/spark-shell –master spark://localhost:7077
訪問(wèn) http://192.168.141.10:8080/ 有 application id 生成
sparkstandalone HA 部署
基于文件系統(tǒng)的 HA
spark.deploy.recoveryMode 設(shè)成 FILESYSTEM
spark.deploy.recoveryDirecory Spark 保存恢復(fù)狀態(tài)的目錄
Spark-env.sh 里對(duì) SPARK_DAEMON_JAVA_OPTS 設(shè)置
export SPARK_DAEMON_JAVA_OPTS= -Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirecory=$dir
基于 zookeeper 的 ha
spark.deploy.recoveryMode 設(shè)成 ZOOKEEPER
spark.deploy.zookeeper.url Zookeeper url
spark.deploy.zookeeper.dir Zookeeper 保存恢復(fù)狀態(tài)的目錄缺省為 spark
spark-env 里對(duì) SPARK_DAEMON_JAVA_OPTS 設(shè)置
export SPARK_DAEMON_JAVA_OPTS= -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop1:2181,hadoop2:2181 -D=spark.deploy.zookeeper.dir=$DIR
啟動(dòng) startall
然后在另外一臺(tái)啟動(dòng) start-master
[root@localhost ~]# jps
4609 Jps
4416 SparkSubmit
4079 Master
4291 SparkSubmit
ssh 免密
[root@localhost ~]# ssh-keygen -t rsa -P
[root@localhost ~]# cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
[root@localhost ~]# chmod 600 ~/.ssh/authorized_keys
[root@localhost conf]# ../bin/spark-shell –master spark://localhost:7077 –executor-memory 2g
spark 工具簡(jiǎn)介
spark 交互工具 spark-shell
spark 應(yīng)用程序部署工具 spark-submit
option
–master MASTER_URL spark://host:port mesos://host:port yarn or local
–deploy-mode DEPLOY_MODE driver 運(yùn)行之處 client 運(yùn)行在本機(jī) cluster 運(yùn)行在集群
–class CLASS_NAME 應(yīng)用程序包要運(yùn)行的 class
–name 應(yīng)用程序名稱(chēng)
–jars 用逗號(hào)隔開(kāi)的 driver 本地要運(yùn)行的本地 jar 包以及 executor 類(lèi)路徑
–py-files PY_FILES 用逗號(hào)隔開(kāi)的要放置在每個(gè) executor 工作目錄的文件列表
–properties-file FILE 設(shè)置應(yīng)用程序?qū)傩缘奈募胖梦淖帜J(rèn)是 conf/spark-defaults.conf
–driver-memory MEMDRIVER 內(nèi)存大小默認(rèn) 512m
–driver-java-options driver 的 java 選項(xiàng)
–driver-library-path driver 庫(kù)路徑
–driver-class-path driver 類(lèi)路徑
–executor-memory MEM 設(shè)置內(nèi)存大小默認(rèn) 1G
[root@localhost sbin]# sh start-dfs.sh
scala val rdd=sc.textFile(hdfs://localhost.localdomain:9000/20140824/test-data.csv)
scala val rdd2=rdd.flatMap(_.split()).map(x= (x,1)).reduceByKey(_+_)
到此,關(guān)于“Spark 應(yīng)用程序怎么部署”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!