日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PyFlink 开发环境利器:Zeppelin Notebook

發布時間:2024/8/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PyFlink 开发环境利器:Zeppelin Notebook 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:?在 Zeppelin notebook 里利用 Conda 來創建 Python env 自動部署到 Yarn 集群中。

PyFlink 作為 Flink 的 Python 語言入口,其 Python 語言的確很簡單易學,但是 PyFlink 的開發環境卻不容易搭建,稍有不慎,PyFlink 環境就會亂掉,而且很難排查原因。今天給大家介紹一款能夠幫你解決這些問題的 PyFlink 開發環境利器:Zeppelin Notebook。主要內容為:

  • 準備工作
  • 搭建 PyFlink 環境
  • 總結與未來
  • 也許你早就聽說過 Zeppelin,但是之前的文章都偏重講述如何在 Zeppelin 里開發 Flink SQL,今天則來介紹下如何在 Zeppelin 里高效的開發 PyFlink Job,特別是解決 PyFlink 的環境問題。

    一句來總結這篇文章的主題,就是在 Zeppelin notebook 里利用 Conda 來創建 Python env 自動部署到 Yarn 集群中,你無需手動在集群上去安裝任何 PyFlink 的包,并且你可以在一個 Yarn 集群里同時使用互相隔離的多個版本的 PyFlink。最后你能看到的效果就是這樣:

    1. 能夠在 PyFlink 客戶端使用第三方 Python 庫,比如 matplotlib:

    2. 可以在 PyFlink UDF 里使用第三方 Python 庫,如:

    接下來看看如何來實現。

    一、準備工作

    Step 1.

    準備好最新版本的 Zeppelin 的搭建,這個就不在這邊展開了,如果有問題可以加入 Flink on Zeppelin 釘釘群 (34517043) 咨詢。另外需要注意的是,Zeppelin 部署集群需要是 Linux,如果是 Mac 的話,會導致在 Mac 機器上打的 Conda 環境無法在 Yarn 集群里使用 (因為 Conda 包在不同系統間是不兼容的)。

    Step 2.

    下載 Flink 1.13, 需要注意的是,本文的功能只能用在 Flink 1.13 以上版本,然后:

    • 把?flink-Python-*.jar?這個 jar 包 copy 到 Flink 的 lib 文件夾下;
    • 把?opt/Python?這個文件夾 copy 到 Flink 的 lib 文件夾下。

    Step 3.

    安裝以下軟件 (這些軟件是用于創建 Conda env 的):

    • miniconda:https://docs.conda.io/en/latest/miniconda.html
    • conda pack:https://conda.github.io/conda-pack/
    • mamba:https://github.com/mamba-org/mamba

    二、搭建 PyFlink 環境

    接下來就可以在 Zeppelin 里搭建并且使用 PyFlink 了。

    Step 1. 制作 JobManager 上的 PyFlink Conda 環境

    因為 Zeppelin 天生支持 Shell,所以可以在 Zeppelin 里用 Shell 來制作 PyFlink 環境。注意這里的 Python 第三方包是在 PyFlink 客戶端 (JobManager) 需要的包,比如 Matplotlib 這些,并且確保至少安裝了下面這些包:

    • 某個版本的?Python?(這里用的是 3.7)
    • apache-flink?(這里用的是 1.13.1)
    • jupyter,grpcio,protobuf?(這三個包是 Zeppelin 需要的)

    剩下的包可以根據需要來指定:

    %sh# make sure you have conda and momba installed. # install miniconda: https://docs.conda.io/en/latest/miniconda.html # install mamba: https://github.com/mamba-org/mambaecho "name: pyflink_env channels:- conda-forge- defaults dependencies:- Python=3.7- pip- pip:- apache-flink==1.13.1- jupyter- grpcio- protobuf- matplotlib- pandasql- pandas- scipy- seaborn- plotnine" > pyflink_env.ymlmamba env remove -n pyflink_env mamba env create -f pyflink_env.yml

    運行下面的代碼打包 PyFlink 的 Conda 環境并且上傳到 HDFS (注意這里打包出來的文件格式是 tar.gz):

    %shrm -rf pyflink_env.tar.gz conda pack --ignore-missing-files -n pyflink_env -o pyflink_env.tar.gzhadoop fs -rmr /tmp/pyflink_env.tar.gz hadoop fs -put pyflink_env.tar.gz /tmp # The Python conda tar should be public accessible, so need to change permission here. hadoop fs -chmod 644 /tmp/pyflink_env.tar.gz

    Step 2. 制作 TaskManager 上的 PyFlink Conda 環境

    運行下面的代碼來創建 TaskManager 上的 PyFlink Conda 環境,TaskManager 上的 PyFlink 環境至少包含以下 2 個包:

    • 某個版本的?Python?(這里用的是 3.7)
    • apache-flink?(這里用的是 1.13.1)

    剩下的包是 Python UDF 需要依賴的包,比如這里指定了 pandas:

    echo "name: pyflink_tm_env channels:- conda-forge- defaults dependencies:- Python=3.7- pip- pip:- apache-flink==1.13.1- pandas" > pyflink_tm_env.ymlmamba env remove -n pyflink_tm_env mamba env create -f pyflink_tm_env.yml

    運行下面的代碼打包 PyFlink 的 conda 環境并且上傳到 HDFS (注意這里使用的是 zip 格式)

    %shrm -rf pyflink_tm_env.zip conda pack --ignore-missing-files --zip-symlinks -n pyflink_tm_env -o pyflink_tm_env.ziphadoop fs -rmr /tmp/pyflink_tm_env.zip hadoop fs -put pyflink_tm_env.zip /tmp # The Python conda tar should be public accessible, so need to change permission here. hadoop fs -chmod 644 /tmp/pyflink_tm_env.zip

    Step 3. 在 PyFlink 中使用 Conda 環境

    接下來就可以在 Zeppelin 中使用上面創建的 Conda 環境了,首先需要在 Zeppelin 里配置 Flink,主要配置的選項有:

    • flink.execution.mode 為 yarn-application, 本文所講的方法只適用于 yarn-application 模式;
    • 指定 yarn.ship-archives,zeppelin.pyflink.Python 以及 zeppelin.interpreter.conda.env.name 來配置 JobManager 側的 PyFlink Conda 環境;
    • 指定 Python.archives 以及 Python.executable 來指定 TaskManager 側的 PyFlink Conda 環境;
    • 指定其他可選的 Flink 配置,比如這里的 flink.jm.memory 和 flink.tm.memory。
    %flink.confflink.execution.mode yarn-applicationyarn.ship-archives /mnt/disk1/jzhang/zeppelin/pyflink_env.tar.gz zeppelin.pyflink.Python pyflink_env.tar.gz/bin/Python zeppelin.interpreter.conda.env.name pyflink_env.tar.gzPython.archives hdfs:///tmp/pyflink_tm_env.zip Python.executable pyflink_tm_env.zip/bin/Python3.7flink.jm.memory 2048 flink.tm.memory 2048

    接下來就可以如一開始所說的那樣在 Zeppelin 里使用 PyFlink 以及指定的 Conda 環境了。有 2 種場景:

    • 下面的例子里,可以在?PyFlink 客戶端?(JobManager 側) 使用上面創建的 JobManager 側的 Conda 環境,比如下邊使用了 Matplotlib。

    • 下面的例子是在?PyFlink UDF?里使用上面創建的 TaskManager 側 Conda 環境里的庫,比如下面在 UDF 里使用 Pandas。

    三、總結與未來

    本文內容就是在 Zeppelin notebook 里利用 Conda 來創建 Python env 自動部署到 Yarn 集群中,無需手動在集群上去安裝任何 Pyflink 的包,并且可以在一個 Yarn 集群里同時使用多個版本的 PyFlink。

    每個 PyFlink 的環境都是隔離的,而且可以隨時定制更改 Conda 環境。可以下載下面這個 note 并導入到 Zeppelin,就可以復現今天講的內容:http://23.254.161.240/#/notebook/2G8N1WTTS

    此外還有很多可以改進的地方:

    • 目前我們需要創建 2 個 conda env ,原因是 Zeppelin 支持 tar.gz 格式,而 Flink 只支持 zip 格式。等后期兩邊統一之后,只要創建一個 conda env 就可以;
    • apache-flink 現在包含了 Flink 的 jar 包,這就導致打出來的 conda env 特別大,yarn container 在初始化的時候耗時會比較長,這個需要 Flink 社區提供一個輕量級的 Python 包 (不包含 Flink jar 包),就可以大大減小 conda env 的大小。

    原文鏈接

    本文為阿里云原創內容,未經允許不得轉載。

    總結

    以上是生活随笔為你收集整理的PyFlink 开发环境利器:Zeppelin Notebook的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产亚洲欧美一区二区三区 | 免费精品久久 | 天堂久久网| 国产粉嫩在线观看 | 成人国产在线观看 | 精品少妇爆乳无码av无码专区 | 国产精品男人的天堂 | 成人www | 日韩激情在线播放 | 国产网红女主播精品视频 | 神马香蕉久久 | 日韩不卡在线观看 | 中文字幕精品久久久久人妻红杏ⅰ | 国产丝袜在线播放 | 久久99国产精品久久99果冻传媒 | 最新色视频 | 91性| 四虎8848精品成人免费网站 | 精品国产三级片在线观看 | 国产一级黄色电影 | 99久国产 | 怡红院一区二区 | 中国女人一级一次看片 | 91视频免费视频 | 午夜爱爱免费视频 | 国产乱码精品一区二区三区五月婷 | 欧洲亚洲自拍 | 国产免费片 | 饥渴丰满的少妇喷潮 | 亚洲爱爱网站 | 巨乳女教师的诱惑 | 国产毛片久久久 | 好吊视频一区二区三区四区 | 少妇又色又紧又爽又刺激视频 | 在线观看国产黄 | 久久天天东北熟女毛茸茸 | 好吊视频一区二区三区四区 | 无码日韩人妻精品久久蜜桃 | 淫五月| 日韩三级黄色片 | 国产美女又黄又爽又色视频免费 | 国产精品果冻传媒潘 | 成人网在线免费观看 | 又大又硬又爽免费视频 | 国产偷国产偷av亚洲清高 | 阿娇全套94张未删图久久 | 小视频在线免费观看 | 亚洲视频高清 | 精品中文字幕一区二区 | 免费污网站在线观看 | 偷拍一区二区三区四区 | 特黄aaaaaaa片免费视频 | 一区二区三区在线视频观看 | 国产精品免费av一区二区三区 | 免费视频亚洲 | 免费成人在线电影 | 成人久久在线 | 国产伦精品一区二区三区视频黑人 | 国产精品性爱在线 | 91国内精品视频 | 天堂va蜜桃一区二区三区漫画版 | 日韩在线无 | 国产精品一级二级 | 中国黄色一级毛片 | 国产美女视频网站 | 91久久伊人 | 校园春色av | 中文人妻一区二区三区 | 欧美性猛交富婆 | 巨胸爆乳美女露双奶头挤奶 | 女同在线视频 | 国产ts三人妖大战直男 | 欧美18—19性高清hd4k | 国产成人精品久久 | 伊人久久大香线蕉综合网站 | 亚洲色图25p | 亚洲国产三级 | 亚洲色图 欧美 | 特大黑人娇小亚洲女mp4 | 亚洲自拍偷拍区 | 日本大尺度做爰呻吟舌吻 | 超碰97成人 | 嫩草av在线 | 久久免费公开视频 | 第一章豪妇荡乳黄淑珍 | 日本三级韩国三级三级a级按摩 | 亚洲一区二区精品在线观看 | 国产中文网 | 97人妻精品一区二区三区软件 | 国产艳情片 | 日韩在线观看中文字幕 | 久久精品免费网站 | 青青草久久 | 毛片在线观看网站 | 欧美色性视频 | 欧美激情视频在线播放 | 韩日视频在线 | 亚洲欧美日韩一区二区三区在线观看 | 女同亚洲精品一区二区三 |