操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    Jupyter中運行PySpark

    1.安裝Jupyter筆記本

    $ pip install jupyter

    2.安裝PySpark

    確保您的計算機上安裝了Java 8或更高版本。當(dāng)然,你也需要Python(我推薦使用Anaconda的 Python 3.5 )。

    現(xiàn)在訪問Spark下載頁面。選擇最新的Spark發(fā)行版,這是Hadoop的預(yù)建套件。

    如果你想要Hive支持或更多花哨的東西,你將不得不通過你自己的方式來構(gòu)建你的spark發(fā)行版 - > Build Spark。

    解壓縮并將其移至您的/ opt文件夾中:

    $ tar -xzf spark-2.2.0-bin-hadoop2.6.tgz

    $ mv spark-2.2.0-bin-hadoop2.6 /opt/spark-2.2.0

    創(chuàng)建一個符號鏈接(這將讓你有多個spark版本):

    $ ln -s /opt/spark-2.2.0 / opt / spark

    最后,告訴你的bash(或zsh等)在哪里可以找到spark。為此,請在?/ .bashrc(或?/ .zshrc)文件中添加以下幾行來配置$ PATH變量:

    export SPARK_HOME=/ opt / spark

    export PATH=$ SPARK_HOME / bin:$ PATH

    現(xiàn)在,要在Jupyter中運行PySpark,您需要更新PySpark驅(qū)動程序環(huán)境變量。只需將這些行添加到?/ .bashrc(或?/ .zshrc)文件中:

    export PYSPARK_DRIVER_PYTHON=jupyter

    export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

    重新啟動(我們的來源)您的終端并啟動PySpark:

    $ pyspark

    現(xiàn)在,該命令應(yīng)該在您的Web瀏覽器中啟動Jupyter Notebook。點擊'New'>'Notebooks Python [default]'創(chuàng)建一個新的筆記本。而且,你的計算機中有一個SparkContext和SqlContext(或SparkSession for Spark> 2.x),并且可以在筆記本中運行PySpark(運行一些示例來測試你的環(huán)境)。

    在您最喜愛的IDE上運行PySpark

    有時你需要一個完整的IDE來創(chuàng)建更復(fù)雜的代碼,PySpark默認(rèn)不在sys.path中,但這并不意味著它不能用作常規(guī)庫。您可以通過在運行時將PySpark添加到sys.path來解決此問題。findspark包為你做。

    要安裝findspark,只需輸入:

    $ pip install findspark

    然后在您的IDE(我使用PyCharm)初始化PySpark,只需調(diào)用:

    import findspark

    findspark.init()

    import pyspark

    sc=pyspark.SparkContext(appName=“myAppName”)

    就是這樣。以下是一個獨立應(yīng)用程序的完整示例,用于在本地測試PySpark(使用上面解釋的conf):

    import findspark

    findspark.init("/opt/spark")

    import random

    from pyspark import SparkContext

    sc=SparkContext(appName="EstimatePi")

    def inside(p):

    x, y=random.random(), random.random()

    return x*x + y*y < 1

    NUM_SAMPLES=1000000

    count=sc.parallelize(range(0, NUM_SAMPLES)) \

    .filter(inside).count()

    print("Pi is roughly %f" % (4.0 * count / NUM_SAMPLES))

    sc.stop()

    看起來因為代碼高亮插件的影響, 自動高亮的代碼的格式有點問題…

    后面會來解決這個問題


    目前我們系統(tǒng)的整體架構(gòu)大概是: Spark Standalone Cluster + NFS FileServer. 自然, 這些都是基于Linux系統(tǒng).

    Windows在開發(fā)PySpark程序的時候, 大部分情況都沒有什么問題. 但是有兩種情況就比較蛋疼了:

    • 讀取NFS文件

      Windows底下, 一旦涉及到NFS的文件路徑, 就歇菜了: 因為NFS的文件路徑都是比如 /mnt/nfs/xxx 這種, 而Windows上面完全無法實現(xiàn).

    • 消耗性能

      雖然作為client, 理論上不需要太強悍的性能, 但是有的事情并不合適Spark. 這個時候, 能有一個強力的client, 就美滋滋了!

    關(guān)于NFS的解決方案, 一種很簡單的解決方案就是起一個虛擬機. 我這邊選擇的方案:

    基于Docker的JupyerNotebook 作為pyspark的開發(fā)工具.

    PS: 筆者在這里就不對比兩種方案的優(yōu)劣了. 各位看官可以根據(jù)自己的需求進行選取.

    安裝Docker

    這個網(wǎng)上已經(jīng)很多教程了.

    在這里推薦一個: 安裝· Docker —— 從入門到實踐 – yeasy – GitBook

    基礎(chǔ)環(huán)境

    • 基礎(chǔ)鏡像

      因為我們主力是python語言, 有時候還需要做一些AI/ML Task.

      我選取的是TensorFlow的鏡像: Pull的命令: docker pull tensorflow/tensorflow

    • mount NFS

      首先安裝nfs-common. 以ubuntu為例: apt install -y nfs-common

      mount命令:

      sudo mount -t nfs remote_server:remote_dir /mnt/nfs3

    # 注意: 一定要加上 --net=host --pid=host -e TINI_SUBREAPER=true
    sudo docker run --name spark-learn -d\
    --net=host --pid=host -e TINI_SUBREAPER=true\
    -p 8888:8888 -v /notebooks:/notebooks\
    -v /mnt/nfs3:/mnt/nfs3\
    tensorflow/tensorflow
    • 啟動docker:

    1
    2
    3
    4
    5
    6
    • 否則在后面運行spark腳本之后, 會遇到很詭異的提示”資源不足”

    配置環(huán)境

    這個時候, 已經(jīng)可以直接打開notebook寫python了. 所以,有的操作我就放python代碼了.

    • 修改APT源 (使用163)

    • 安裝JDK

      直接APT安裝openjdk 不要太方便啊, 比手動安裝oracle-jdk 方便多了. 而且目前看來, spark對他的兼容性也是得到保證的.

      !apt-get install openjdk-8-jre -y

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # ipython notebook之中表示執(zhí)行命令
    !cp /etc/apt/sources.list /etc/apt/sources.list.bak
    import os
    source =&#039;&#039;&#039;
    deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
    &#039;&#039;&#039;
    with open(&#039;/etc/apt/sources.list&#039;, &#039;w&#039;) as f :
    f.write(source)
    !apt update
    mkdir_p(pip_config_dir)
    change(&quot;tsinghua&quot;) # 我的網(wǎng)絡(luò)發(fā)現(xiàn)清華的鏡像比阿里云還要快!
    • 安裝Maven

      有時候, pyspark需要依賴其他的包的時候, 需要使用maven下載.

      使用APT安裝還是最方便的 :

      apt-get install maven -y

    • 修改pip源 + 安裝pyspark

    1
    2
    • 因為pyspark比較大, 網(wǎng)絡(luò)不好的同學(xué)建議修改pip源.

      修改pip源, 推薦我的小工具: https://github.com/RangerWolf/pip-ex

      使用很簡單:

      之后pip安裝飛起來了! 安裝pyspark就一句話: pip install pyspark

    其他說明:

    • 實時查看Spark運行日志

      Spark的運行l(wèi)og并不會直接在notebook上面顯示. 需要使用docker logs命令才能看到.

      如果我們需要在命令自動顯示最新的log, 而不需要我們每次手動輸入, 可以使用下面的命令:

      docker logs -f --tail 100 spark-learn

    • 網(wǎng)絡(luò)速度監(jiān)控

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    • 第一次運行Spark程序的時候, 我發(fā)現(xiàn)一個很簡單的命令也沒有執(zhí)行彎成. 以為是網(wǎng)絡(luò)IO太久了.

      想看看是不是網(wǎng)絡(luò)卡, 我發(fā)現(xiàn)下面這個神器:

    # 安裝
    sudo apt-get install speedometer
    # 運行
    speedometer -rx eth0 -tx eth0
    # docker環(huán)境下, 可以多試幾個
    # 可以使用ifconfig 查看
    speedometer -rx docker0 -tx docker0
    speedometer -rx eno0 -tx eno0

    在命令行就直接顯示出這種圖片, 真是太牛了!

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有