跳轉到主要內容
工程的博客

新磚為Jupyter橋梁集成本地和遠程的工作流

你當地的Jupyter筆記本融入磚工作區

2019年12月3日 工程的博客

分享這篇文章

介紹

多年以來,數據科學家開發出具體的工作流前提使用本地文件係統層次結構,源代碼修改係統和CI / CD流程。

另一方麵,可用的數據呈指數級增長和新功能需要進行數據分析和建模,例如,輕易可伸縮的存儲、分布式計算等新技術係統或特殊硬件gpu深度學習。

這些功能是很難提供在一個靈活的前提。所以企業越來越多的利用雲解決方案和數據科學家們挑戰結合當地現有的工作流與這些新的基於雲的能力。

這個項目JupyterLab集成發表在磚實驗室,這兩個世界的橋梁。數據科學家可以利用他們熟悉當地環境和JupyterLab工作與遠程數據和遠程集群隻需選擇一個內核。

示例場景通過從當地JupyterLab JupyterLab集成:

  • 執行單獨的節點數據科學Jupyter筆記本在遠程集群由磚與遠程數據訪問的湖。
  • 深入學習代碼磚GPU集群
  • 運行遠程火花工作提供一個集成的用戶體驗(進度條,DBFS瀏覽器,…)。
  • 容易跟隨深度學習教程的設置是基於Jupyter或JupyterLab磚集群上運行的代碼。
  • 鏡子遠程本地集群環境(python和庫版本)和本地和遠程執行之間無縫切換隻需選擇Jupyter內核。

這篇文章從一個快速概述如何使用遠程數據磚集群從當地JupyterLab樣子。然後提供一個端到端處理JupyterLab集成的例子解釋的差異磚連接。如果你想試一試自己,最後一節解釋了安裝。

使用遠程集群從本地Jupyterlab

JupyterLab集成遵循Jupyter / JupyterLab的標準方法和允許您創建Jupyter內核為遠程數據磚集群(這在下一節中解釋)。工作與你開始JupyterLab JupyterLab集成標準命令:

美元jupyter實驗室

在筆記本上,從菜單中選擇遠程內核連接到遠程磚集群和火花的會話與Python代碼如下:

databrickslabs_jupyterlab.connect進口dbcontextdbcontext ()

下麵的視頻展示了這個過程的一些特點JupyterLab集成。

https://www.youtube.com/watch?v=VUqA8hp9bnk

Databricks-JupyterLab——一個端到端集成的例子

集群配置數據磚JupyterLab集成之前,讓我們了解如何識別:磚集群運行在雲磚數據科學的工作區。這些工作可以從本地終端的維護磚CLI。磚CLI存儲URL和個人訪問令牌在本地工作區配置文件在一個可選擇的配置文件名。JupyterLab集成使用這個配置文件名稱來引用數據磚工作區,e。g演示工作區demo.cloud.m.eheci.com。

配置遠程JupyterLab內核

假設JupyterLab集成已經安裝和配置鏡像遠程集群命名bernhard - 5.5毫升(安裝在這篇博客的詳細信息)。

第一步是創建一個內核Jupyter規範遠程集群,例如在工作區配置文件名演示:

(bernhard - 6.1毫升)別名dj = databrickslabs-jupyterlab美元(bernhard - 6.1毫升)dj演示- k美元

以下向導允許您選擇工作區中的遠程集群演示時,司機IP地址存儲在本地ssh配置文件和安裝一些必要的運行時庫在遠程司機:

Databrick-JupyterLab集成向導允許您選擇工作區中的遠程集群演示時,司機IP地址存儲在本地ssh配置文件和安裝一些必要的運行時庫在遠程驅動程序。

結束時,一個新的內核SSH 1104 - 182503 trust65演示:bernhard - 6.1毫升可用在JupyterLab(遠程集群id的名稱是一個組合1104 - 182503 trust65磚CLI配置文件名演示,遠程集群名稱bernhard - 6.1毫升,選擇當地conda環境名稱)。

開始與磚JupyterLab集成

現在我們有兩個選擇JupyterLab開始,第一個通常的方式:

(bernhard - 6.1毫升)美元jupyter實驗室

這將工作完美,當遠程集群已經啟動並運行及其本地配置是最新的。然而,首選的方式開始JupyterLab JupyterLab集成

美元(bernhard - 6.1毫升)dj演示- l - c

這個命令將自動啟動遠程集群(如果終止),安裝運行時庫“ipykernel”和“ipywidgets”司機和保存遠程本地司機的IP地址。作為一個副作用,國旗- c的個人訪問令牌自動複製到剪貼板。你需要筆記本的令牌在下一步來驗證遠程集群。重要的是要注意,個人訪問令牌將不會存儲在遠程集群。

得到一個火花Jupyter筆記本的上下文

創建一個火花會話的Jupyter筆記本連接到這個遠程內核,輸入以下兩行成一個筆記本電池:

databrickslabs_jupyterlab.connect進口dbcontext, is_remotedbcontext ()

這將要求輸入個人訪問令牌(上麵是複製到剪貼板),然後將筆記本電腦連接到遠程火花上下文。

在本地和遠程運行hyperparameter調優

下麵的代碼將運行在本地Python內核和遠程數據磚內核。在本地運行,它將使用GridSearchCVscikit-learn小hyperparameter空間。遠程數據磚內核上運行,它將杠杆spark-sklearn在火花執行人分發hyperparameter優化。對本地和遠程環境不同的設置(如數據路徑),函數is_remote()可以使用從JupyterLab集成。

  1. 定義數據同時在本地和遠程位置和負載GridSearchCV

    如果is_remote ():functools進口部分spark_sklearn進口GridSearchCVGridSearchCV =部分(GridSearchCV, sc)#添加火花上下文data_path =“/ dbfs / bernhard / digits.csv”其他的:sklearn.model_selection進口GridSearchCVdata_path = (“/用戶/ bernhardwalter /數據/數字/ digits.csv”)
  2. 加載數據

    進口熊貓作為pd數字= pd。read_csv (data_path index_col =沒有一個)X, y = digits.iloc [:,1:-1],digits.iloc [:,1]
  3. 為本地和遠程定義不同hyperparameter空間執行

    sklearn.ensemble進口RandomForestClassifier如果is_remote ():param_grid = {“max_depth”:【3,5,10,15),“max_features”:【“汽車”,“√”,“log2”,沒有一個),“min_samples_split”:【2,5,10),“min_samples_leaf”:【1,3,10),“n_estimators”:【10,15,25,50,75年,One hundred.]}# 864的選項其他的:param_grid = {“max_depth”:【3,沒有一個),“max_features”:【1,3),“min_samples_split”:【2,10),“min_samples_leaf”:【1,10),“n_estimators”:【10,20.]}# 32選項簡曆= GridSearchCV (RandomForestClassifier ()、param_grid簡曆=3)cv.fit (X, y)
  4. 最後,評估模型

    最好= cv.best_index_cv_results = cv.cv_results_打印(“mean_test_score”,cv_results [“mean_test_score”(最好的),“std_test_score”,cv_results [“std_test_score”最好][])cv_results [“參數”)(最好的)

下麵是一個視頻演示對本地和遠程運行:

https://www.youtube.com/watch?v=Dih6RcYS7as

JupyterLab集成和磚連接

磚連接允許你連接你最喜歡的IDE,筆記本電腦服務器和其他自定義應用程序數據磚集群。它提供了一個特殊的地方引發環境基本上是一個代理到遠程火花上下文。隻有火花將遠程集群上執行代碼。這意味著,例如,如果你開始一個GPU節點在磚一些深度學習的實驗中,與磚連接您的代碼將在筆記本電腦上運行,不會利用GPU的遠程機器:

磚允許您連接到你最喜歡的IDE,連接筆記本電腦服務器和其他自定義應用程序數據磚集群。

磚連接體係結構

JupyterLab集成,另一方麵,使筆記本電腦本地但遠程集群上運行所有代碼如果遠程內核被選中。這使得當地JupyterLab運行單獨的節點數據科學筆記本(使用熊貓,scikit-learn等)在遠程環境由磚或運行維護您的深度學習遠程磚GPU的機器上的代碼

你當地JupyterLab也可以執行分布式火花工作磚集群進度條提供火花的狀態工作。

JupyterLab集成允許您運行單個節點數據科學筆記本磚遠程環境管理或遠程磚GPU的機器上運行深度學習代碼。

JupyterLab集成體係結構

此外,您可以設置本地conda環境鏡子遠程集群。你可以在本地建立了你的實驗,你有完全控製您的環境,流程和容易接近所有的日誌文件。當代碼是穩定的,可以使用遠程集群應用到完整的遠程數據集或遠程集群上進行分布式hyperparameter優化與每次運行沒有上傳數據。

注意:如果一個筆記本是連接到一個遠程集群,其Python內核運行在遠程集群和本地配置文件和本地數據可以通過Python和火花。當地的筆記本電腦和DBFS之間交換文件在遠程集群,使用磚CLI來回複製數據:

美元磚——概要美元的概要文件fs cp /數據/ abc。csv dbfs: /數據

因為例如熊貓不能訪問文件通過DBFS DBFS: /,有一個掛載點/ DBFS /允許訪問數據DBFS(如/ DBFS /數據/ abc.csv) Python標準庫。

JupyterLab集成安裝

之後,我們已經看到了JupyterLab集成的作品,讓我們來看看如何安裝它。

先決條件

JupyterLab集成將競選磚AWS和Azure磚。的設置是基於磚CLI的配置和假設:

  1. 水蟒安裝的庫(JupyterLab集成將安裝後)
  2. 磚CLI安裝和配置您想要使用的工作區
  3. SSH密鑰對為集群創建您想要使用
  4. 集群使用SSH啟用,公鑰從3安裝

注:目前隻有MacOS和Linux上運行和測試數據磚運行時5.5,6.0和6.1(標準和ML)。

需要設置為運行JupyterLab集成在AWS或Azure磚,磚CLI的基礎上配置。

公約是SSH密鑰對的名稱命名的磚CLI配置文件名。的先決條件的更多細節,請參閱“先決條件”部分的文檔

安裝

  1. 創建一個本地conda環境和安裝JupyterLab集成:
    (基地)conda美元創建- - - - - -n db- - - - - -jlab python=3.6(基地)美元conda激活數據庫- - - - - -jlab(db- - - - - -jlab)美元pip安裝——升級databrickslabs-jupyterlab

    前綴(db-jlab)美元在這篇博文顯示命令的例子conda環境db-jlab被激活。

    終端命令名databrickslabs-jupyterlab很長,所以讓我們創建一個別名

    (db-jlab)別名dj = databrickslabs-jupyterlab美元
  2. 引導JupyterLab集成:

    這將安裝必要的庫和擴展(從上麵使用別名):

    (db-jlab) dj - b美元
  3. 可選地,如果你想運行相同的筆記本在本地和遠程(鏡像):

    這將要求一個集群的名稱反映並安裝所有的數據科學相關的庫在本地conda環境匹配的所有版本。

    (db-jlab)美元dj美元的概要文件- m

開始使用JupyterLab集成

在這篇文章裏,我們展示了如何JupyterLab一體化集成了遠程數據磚集群到本地建立工作流運行Python磚集群通過ssh的內核。這允許數據科學家在他們的工作熟悉當地環境與JupyterLab和訪問遠程數據和遠程集群以一致的方式。我們已經表明,JupyterLab集成遵循不同的方法磚使用ssh連接。科學工作區和磚磚數據連接相比,這使得一組額外的用例。

https://github.com/databrickslabs/Jupyterlab-Integration

相關資源

免費試著磚

相關的帖子

看到所有工程的博客的帖子
Baidu
map