<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          快速搭建你的Spark開發(fā)環(huán)境

          共 3694字,需瀏覽 8分鐘

           ·

          2020-12-28 08:53

          公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字:pyspark,獲取本項(xiàng)目github地址鏈接。

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

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

          注意:僅配置練習(xí)環(huán)境無需安裝hadoop,無需安裝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é)果。

          2,下載解壓spark

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

          百度云盤鏈接: 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,救命方案


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


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


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


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


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

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

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

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

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

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

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

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

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

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

          4, Python安裝findspark和pyspark庫。

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

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

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

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

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

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

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

          答:可以通過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如何添加自己編寫的其它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寫的任務(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?



          如果本書對(duì)你有所幫助,想鼓勵(lì)一下作者,記得給本項(xiàng)目加一顆星星star??,并分享給你的朋友們喔?!

          如果對(duì)本書內(nèi)容理解上有需要進(jìn)一步和作者交流的地方,歡迎在公眾號(hào)"算法美食屋"下留言。作者時(shí)間和精力有限,會(huì)酌情予以回復(fù)。

          也可以在公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字:spark加群,加入spark和大數(shù)據(jù)讀者交流群和大家討論。


          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩欧美精品熟 | 国产人人人操 | 色婷婷综合激情国产日韩 | 国产三级视频 | 18XXX亚洲HD护士JD |