国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

PyFlink 開發環境利器:Zeppelin Notebook

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

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

1.準備工作

2.搭建 PyFlink 環境

3.總結與未來

也許你早就聽說過 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 需要的)
剩下的包可以根據需要來指定:

  1. %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_envchannels:  - conda-forge  - defaultsdependencies:  - Python=3.7  - pip  - pip:    - apache-flink==1.13.1  - jupyter  - grpcio  - protobuf  - matplotlib  - pandasql  - pandas  - scipy  - seaborn  - plotnine " > pyflink_env.yml    mamba env remove -n pyflink_envmamba env create -f pyflink_env.yml 

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

  1. %shrm -rf pyflink_env.tar.gzconda pack --ignore-missing-files -n pyflink_env -o pyflink_env.tar.gzhadoop fs -rmr /tmp/pyflink_env.tar.gzhadoop 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:

  1. echo "name: pyflink_tm_envchannels:  - conda-forge  - defaultsdependencies:  - Python=3.7  - pip  - pip:    - apache-flink==1.13.1  - pandas " > pyflink_tm_env.yml    mamba env remove -n pyflink_tm_envmamba env create -f pyflink_tm_env.yml 

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

  1. %shrm -rf pyflink_tm_env.zipconda pack --ignore-missing-files --zip-symlinks -n pyflink_tm_env -o pyflink_tm_env.ziphadoop fs -rmr /tmp/pyflink_tm_env.ziphadoop 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。

  1. %flink.confflink.execution.mode yarn-applicationyarn.ship-archives /mnt/disk1/jzhang/zeppelin/pyflink_env.tar.gzzeppelin.pyflink.Python pyflink_env.tar.gz/bin/Pythonzeppelin.interpreter.conda.env.name pyflink_env.tar.gzPython.archives hdfs:///tmp/pyflink_tm_env.zipPython.executable  pyflink_tm_env.zip/bin/Python3.7flink.jm.memory 2048flink.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 的大小。

責任編輯:梁菲 來源: 阿里云云棲號
相關推薦

2021-12-09 06:59:24

FlinkSQL 開發

2009-10-15 15:12:39

Equinox服務器端Equinox

2020-04-08 12:03:16

PyFlinkCDN日志

2022-09-21 08:16:18

緩存框架

2015-03-09 09:49:27

2023-10-16 16:05:44

PythonPyCharm編程語言

2025-04-16 10:00:00

跨平臺開發Uniapp開發

2023-02-15 14:02:52

HutoolMapProxy工具包

2021-09-02 07:04:44

Go 開發利器

2025-05-30 07:10:19

2016-08-22 11:06:43

2019-10-14 09:08:33

云原生Kubernetes開發

2021-07-29 10:47:51

Flink on Ze流計算

2020-12-18 08:00:00

Python開發Web

2023-03-31 11:35:25

2020-07-16 10:19:43

程序員技能開發者

2024-03-05 10:41:51

Rollup前端開發

2025-03-19 08:43:17

檢索增強生成RAG大型語言模型

2021-09-26 08:45:09

C++Web前端

2024-03-22 09:45:34

大型語言模型Unity引擎游戲開發
點贊
收藏

51CTO技術棧公眾號

欧洲一区av| 国产日韩欧美一区| 午夜免费福利在线观看| 国产suv精品一区二区6| 欧美日韩三区四区| 国产香蕉视频在线观看 | 亚洲国产成人爱av在线播放| 精品久久蜜桃| av亚洲在线观看| 亚洲91精品在线| aaaaa毛片| 欧美激情中文字幕| 国产成人精品无码播放| 国产精品亚洲人在线观看| 日本在线播放一区| 国产社区精品视频| 日韩欧美资源站| 操你啦视频在线| 欧美一级片在线看| 超碰97免费在线| 成人国产亚洲欧美成人综合网| 日韩一区免费观看| 巨乳诱惑日韩免费av| 欧美国产一二三区| 石原莉奈一区二区三区在线观看| 国产伦精品一区二区三区| av网站网址在线观看| 欧美性大战久久久久久久蜜臀 | 福利一区二区在线| av不卡在线免费观看| 精品亚洲国内自在自线福利| 亚洲欧美久久久久一区二区三区| 日本伊人色综合网| wwwjizzjizzcom| 国产91精品一区二区麻豆网站 | 亚洲天堂免费视频| 久久亚洲精品人成综合网| 中文字幕欧美国产| 国产在线一区二区三区| 福利在线导航136| 国产一区二区三区在线| 99re精彩视频| 在线观看不卡| 欧美成熟毛茸茸复古| 日韩电影在线看| av免费观看大全| 国产精品福利电影一区二区三区四区| 中文字幕高清20页| 欧美视频二区36p| 四虎av在线| 国产精品电影院| 日本1区2区3区中文字幕| 色天天综合色天天久久| 亚洲一区二区三区午夜| 国产精品色呦| 91久久精品国产91性色| 欧美天堂一区二区| 午夜精品一区二区三区在线| 欧美gayvideo| 夜夜嗨av色综合久久久综合网| 日韩毛片免费视频一级特黄| 91黄色8090| 在线高清一区| 91黄色在线看| 一区二区在线观看视频在线观看| 性高潮久久久久久久久| 国产宾馆实践打屁股91| 米奇777在线影院线| 欧美高清视频不卡网| 视频一区日韩| 久久riav| 欧美激情一区二区三区全黄| 成人亚洲性情网站www在线观看| 精品一区二区三区四区在线| 自拍欧美一区| 黄色小视频大全| 狠狠躁夜夜躁人人爽超碰91| 麻豆mv在线观看| 国产精品欧美风情| 国产精品中文字幕一区二区三区| 秋霞福利视频| 亚洲午夜未满十八勿入免费观看全集| 日韩免费视频| 免费观看日韩毛片| 制服丝袜成人动漫| 在线免费日韩| 亚洲人午夜色婷婷| 午夜精品久久| 国产欧美日韩精品丝袜高跟鞋| 奇米影视一区二区三区小说| 国产igao激情在线入口| 亚洲免费成人av电影| 午夜国产欧美理论在线播放| 在线视频日韩一区| 91在线观看高清| 亚洲啪啪av| 亚洲一区二区在线观看视频| 欧美成人ⅴideosxxxxx| 国产一级二级三级精品| 亚洲三级免费电影| 伊人久久精品| 欧美少妇在线观看| 欧美一区二区网站| 91精品观看| 丝袜足控免费网站xx网站| 国产精品免费观看视频| 国产美女高潮在线| 九色综合日本| 狠狠做深爱婷婷久久综合一区| 视频在线观看免费影院欧美meiju| 日韩不卡av| 在线观看欧美精品| 99成人超碰| 有色激情视频免费在线| 色综合视频网站| 亚洲91网站| 7777在线视频| 国产福利视频一区二区三区| 国产色在线 com| 国产精品一区二区三区成人| 国产精品第五页| 国产伦精品一区二区三区免费优势 | 97碰碰碰免费色视频| www.亚洲激情.com| 91视频最新入口| 日韩成人黄色av| 国产精品日本一区二区不卡视频 | 另类小说欧美激情| 超碰在线网址| 国内精品一区二区| 欧美久久久影院| 国产精品一级| 污视频网站在线免费| 天堂av一区二区| 日韩电影第一页| 成人小视频免费在线观看| 成人线上视频| 久久久999视频| 欧美日韩福利视频| 中文av一区特黄| 自拍偷拍精品| 日本ー区在线视频| 久久精品第九区免费观看| 欧美一区二区大片| 精品一区二区三区在线播放| 亚洲成熟丰满熟妇高潮xxxxx| 亚洲乱码一区二区| 成人精品国产一区二区4080| 欧美日韩va| 成人羞羞视频免费看看| 国产精品流白浆视频| 色综合网站在线| 日本不卡中文字幕| jizz欧美| 成人免费在线视频网站| 美女性感视频久久| av高清一区| 99热在线免费| 亚洲一区二区三区久久| 欧美电影影音先锋| 国产高清亚洲一区| 好吊妞视频这里有精品| 在线观看av资源| 神马影院我不卡午夜| 最新国产精品亚洲| 亚洲一区在线视频| 国产精品毛片一区二区三区| 日本电影欧美片| 含羞草激情视频| 好吊色欧美一区二区三区视频| 亚洲精品自拍视频| 国产精品久久久久9999吃药| 亚洲天堂一区二区三区四区| www.在线视频| 波多野结衣作品集| 99理论电影网| 这里精品视频免费| 亚洲成人福利片| 美国三级日本三级久久99 | 婷婷精品进入| 92久久精品| 99reav2| 丝袜美腿玉足3d专区一区| 日韩亚洲第一页| 亚洲女同在线| 美女视频一区| 伊人网在线免费观看| 亚洲午夜精品福利| 欧洲永久精品大片ww免费漫画| 精品一区二区在线免费观看| 欧美影院在线| 不卡在线视频| 宅男噜噜噜66国产免费观看| 亚洲自拍高清视频网站| 一区二区三区黄色| 色婷婷久久久亚洲一区二区三区| 成人成人成人在线视频| 今天的高清视频免费播放成人| 试看120秒一区二区三区| 成人在线免费看黄|