怎么快速搭建Spark開(kāi)發(fā)環(huán)境

怎么快速搭建Spark開(kāi)發(fā)環(huán)境,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

寶應(yīng)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

一,搭建本地pyspark單機(jī)練習(xí)環(huán)境

以下過(guò)程本地單機(jī)版pyspark練習(xí)編程環(huán)境的配置方法。

注意:僅配置練習(xí)環(huán)境無(wú)需安裝hadoop,無(wú)需安裝scala.

1,安裝Java8

下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注意避免安裝其它版本的jdk否則可能會(huì)有不兼容spark的情況。注意設(shè)置JAVA_HOME,并添加它到默認(rèn)路徑PATH中

WINDOWS下安裝jdk8詳細(xì)教程可以參考:

https://www.cnblogs.com/heqiyoujing/p/9502726.html

安裝成功后,在命令行中輸入 java -version,可以看到類似如下的結(jié)果。

怎么快速搭建Spark開(kāi)發(fā)環(huán)境

2,下載解壓spark

spark官網(wǎng)下載: http://spark.apache.org/downloads.html

百度云盤(pán)鏈接: https://pan.baidu.com/s/1mUMavclShgvigjaKwoSF_A  密碼:fixh

下載后解壓放入到一個(gè)常用軟件的安裝路徑,如:

/Users/liangyun/ProgramFiles/spark-3.0.1-bin-hadoop3.2

對(duì)于Linux用戶,和mac用戶,建議像如下方式在~/.bashrc中設(shè)置環(huán)境變量,以便可以啟動(dòng)spark-submit和spark-shell。

windows用戶可以忽略以下設(shè)置。


export PYTHONPATH=$/Users/liangyun/anaconda3/bin/python
export PATH="/Users/liangyun/anaconda3/bin:${PATH}"

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
export SPARK_HOME="/Users/liangyun/ProgramFiles/spark-3.0.1-bin-hadoop3.2"

export PYSPARK_PYTHON=$PYTHONPATH
export PYSPARK_DRIVER_PYTHON=$PYTHONPATH
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

 

3,安裝findspark

安裝成功后可以在jupyter中運(yùn)行如下代碼

import findspark

#指定spark_home為剛才的解壓路徑,指定python路徑
spark_home = "/Users/liangyun/ProgramFiles/spark-3.0.1-bin-hadoop3.2"
python_path = "/Users/liangyun/anaconda3/bin/python"
findspark.init(spark_home,python_path)

 
import pyspark 
from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("test").setMaster("local[4]")
sc = SparkContext(conf=conf)

print("spark version:",pyspark.__version__)
rdd = sc.parallelize(["hello","spark"])
print(rdd.reduce(lambda x,y:x+' '+y))

 
spark version: 3.0.1
hello spark
 

4,救命方案


如果以上過(guò)程由于java環(huán)境配置等因素沒(méi)能成功安裝pyspark。

可以在和鯨社區(qū)的云端notebook環(huán)境中直接學(xué)習(xí)pyspark。

和鯨社區(qū)的云端notebook環(huán)境中已經(jīng)安裝好了pyspark。

https://www.kesci.com/home/column/5fe6aa955e24ed00302304e0

怎么快速搭建Spark開(kāi)發(fā)環(huán)境

 

二,運(yùn)行pyspark的各種方式

pyspark主要通過(guò)以下一些方式運(yùn)行。

1,通過(guò)pyspark進(jìn)入pyspark單機(jī)交互式環(huán)境。

這種方式一般用來(lái)測(cè)試代碼。

也可以指定jupyter或者ipython為交互環(huán)境。

2,通過(guò)spark-submit提交Spark任務(wù)到集群運(yùn)行。

這種方式可以提交Python腳本或者Jar包到集群上讓成百上千個(gè)機(jī)器運(yùn)行任務(wù)。

這也是工業(yè)界生產(chǎn)中通常使用spark的方式。

3,通過(guò)zepplin notebook交互式執(zhí)行。

zepplin是jupyter notebook的apache對(duì)應(yīng)產(chǎn)品。

4, Python安裝findspark和pyspark庫(kù)。

可以在jupyter和其它Python環(huán)境中像調(diào)用普通庫(kù)一樣地調(diào)用pyspark庫(kù)。

這也是本書(shū)配置pyspark練習(xí)環(huán)境的方式。

 

三,通過(guò)spark-submit提交任務(wù)到集群運(yùn)行常見(jiàn)問(wèn)題

以下為在集群上運(yùn)行pyspark時(shí)相關(guān)的一些問(wèn)題,

1,pyspark是否能夠調(diào)用Scala或者Java開(kāi)發(fā)的jar包?

答:只有Driver中能夠調(diào)用jar包,通過(guò)Py4J進(jìn)行調(diào)用,在excutors中無(wú)法調(diào)用。

2,pyspark如何在excutors中安裝諸如pandas,numpy等包?

答:可以通過(guò)conda建立Python環(huán)境,然后將其壓縮成zip文件上傳到hdfs中,并在提交任務(wù)時(shí)指定環(huán)境。當(dāng)然,最簡(jiǎn)單直接的方案是把你想要的anaconda環(huán)境打包成zip上傳到集群hdfs環(huán)境中。注意,你打包的機(jī)器應(yīng)當(dāng)和集群的機(jī)器具有相同的linux操作系統(tǒng)。

3,pyspark如何添加自己編寫(xiě)的其它Python腳本到excutors中的PYTHONPATH中?

答:可以用py-files參數(shù)設(shè)置,可以添加.py,.egg 或者壓縮成.zip的Python腳本,在excutors中可以import它們。

4,pyspark如何添加一些配置文件到各個(gè)excutors中的工作路徑中?

答:可以用files參數(shù)設(shè)置,不同文件名之間以逗號(hào)分隔,在excutors中用SparkFiles.get(fileName)獲取。

#提交python寫(xiě)的任務(wù)
spark-submit --master yarn \
--deploy-mode cluster \
--executor-memory 12G \
--driver-memory 12G \
--num-executors 100 \
--executor-cores 2 \
--conf spark.yarn.maxAppAttempts=2 \
--conf spark.default.parallelism=1600 \
--conf spark.sql.shuffle.partitions=1600 \
--conf spark.memory.offHeap.enabled=true \
--conf spark.memory.offHeap.size=2g\
--conf spark.task.maxFailures=10 \
--conf spark.stage.maxConsecutiveAttempts=10 \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./anaconda3.zip/anaconda3/bin/python #指定excutors的Python環(huán)境
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON = ./anaconda3.zip/anaconda3/bin/python  #cluster模式時(shí)候設(shè)置
--archives viewfs:///user/hadoop-xxx/yyy/anaconda3.zip #上傳到hdfs的Python環(huán)境
--files  data.csv,profile.txt
--py-files  pkg.py,tqdm.py
pyspark_demo.py 

關(guān)于怎么快速搭建Spark開(kāi)發(fā)環(huán)境問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

當(dāng)前題目:怎么快速搭建Spark開(kāi)發(fā)環(huán)境
分享網(wǎng)址:http://bm7419.com/article6/jjsoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、關(guān)鍵詞優(yōu)化虛擬主機(jī)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)