取消
顯示的結果
而不是尋找
你的意思是:

私人PyPI回購DBR 13 +

dvmentalmadess
貢獻者

我們使用一個私人PyPI回購(AWS CodeArtifact)發布自定義python庫。我們提供私人回購DBR 12.2集群使用一個初始化腳本這裏的規定在磚KB。當我們試圖升級到13.2這個停止工作。具體地說:

  • 集群日誌錯誤(請參閱下麵的:)和未開始時使用工作API的library.PyPI配置。包的參數(通過起程拓殖)
  • 安裝集群庫使用磚UI也失敗了同樣的錯誤

看的文檔集群庫指出以下限製:

磚上運行時13.1及以上,集群Python庫支持集群中使用共享訪問模式統一Catalog-enabled工作區,包括Python輪子作為工作區文件上傳。

我看著創建一個集群使用共享訪問,但根據創建一個集群文檔共享訪問模式有以下限製:不支持Init腳本。

以來似乎集群庫行不通DBR 13 +我看著工作空間的文檔庫。不幸的是,認證的唯一方法是存儲索引的憑證作為URL。這裏的問題是,CodeArtifact限製認證令牌到12小時,這是行不通的。

我看不出使用私人PyPI回購方式分發我們的圖書館——至少不使用AWS CodeArtifact。我遺漏了什麼東西?

這是上麵提到的錯誤:

未能連接庫python-pypi; s3_ingest;;發布;引發
org.apache.spark。SparkException:進程列表(/ bin /蘇、圖書館- c, bash / local_disk0 / .ephemeral_nfs / cluster_libraries / python / python_start_clusterwide。sh / local_disk0 /。ephemeral_nfs cluster_libraries / python / bin / pip安裝“s3_ingest = =發布”——disable-pip-version-check)退出代碼1。警告:該目錄/ home /圖書館/。緩存/ pip”或它的父目錄不是當前用戶擁有或沒有可寫的。緩存已被禁用。檢查該目錄的權限和所有者。如果執行sudo皮普,你應該使用sudo - h標誌。
錯誤:找不到滿足需求s3_ingest = =發布的版本(版本:無)
錯誤:沒有發現匹配分布s3_ingest = =發布

1接受解決方案

接受的解決方案

lucasvieira
新的貢獻者二世

@dvmentalmadess我發現解決了這個問題,我使用這個init腳本創建的/home/libraries主文件夾和給權限用戶,然後利用sudo- uawscodeartifact登錄命令。

# !/bin/bash #安裝AWS CLI curl - o”awscliv2“https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip”。zip解壓awscliv2。郵政sudo。/ aws /安裝aws——版本回聲“aws CodeArtifact登錄(根)“aws CodeArtifact登錄——工具pip庫xxxxxx,域xxxxxx,域名所有者xxxxxx sudo mkdir /home/libraries sudo喬恩圖書館:圖書館/home/libraries sudo chmod 755 /home/libraries sudo - u庫aws CodeArtifact登錄——工具pip庫xxxxxx域xxxxxx,域名所有者xxxxxx

init腳本,我跑步aws codeartifact登錄兩次,一個根用戶和另一個庫的用戶。

它為我工作。

在原帖子查看解決方案

7回複7

Kaniz
社區經理
社區經理

@dvmentalmadess,錯誤消息表明圖書館安裝失敗的圖書館“s3_ingest”版本“發布”由於無法找到匹配的分布。

這可能是由於以下原因:- - - - - -

  • 在存儲庫中庫不可用用於安裝。
  • 指定的庫版本不正確或沒有。

為了解決這個問題,試試以下:- - - - - -

  • 檢查是否可用的庫是用於安裝在存儲庫中。
  • 檢查指定的庫版本是否正確和可用。
  • 試著安裝不同版本的庫或從不同的存儲庫。
  • 檢查目錄的權限和所有權的/ home /圖書館/ .cache /皮普。
  • 如果執行pip sudo,使用sudo - h標誌。

@Kaniz謝謝你的回應。

這隻發生在計算集群,如果我改變工作spark_version12.2.x-scala2.1213.2.x-scala2.12。同樣的工作定義在配置為DBR 12.2時沒問題。還有,如果我在13.2中,自旋向上交互式集群將它附加到一個筆記本,並運行以下工作正常:

% pip安裝“s3_ingest = =發布”

另外:

/磚/ python3 / bin / python - m pip安裝“s3_ingest = =發布”

然而,實際上我不執行皮普從一個init腳本。我隻是使用API的工作庫[*].pypi.package屬性如下所示定義。

地址您的解決建議:

  1. 圖書館是可用的(運行皮普從筆記本使用交互式計算使用DBR 12.2和13.2)
  2. 一樣庫版本是正確的(# 1)
  3. 安裝不同版本(相同的結果w / 0.0.1:工作12.2 w / DBR工作,不工作13.2 w / DBR)
  4. 檢查權限(這是一個股票DBR圖像,我將檢查這個但我認為這個工作因為我使用一個標準的服務主體用戶沒有更改這條路)
  5. 皮普sudo(我不是執行脈衝,這是通過什麼機製是工作所使用的API

這是全部工作的定義:

{“job_id”: 696122671962585,“creator_user_name”:“<編輯> @ <編輯> com”,“run_as_user_name”:“<修訂服務主要應用程序id >”,“run_as_owner”:真的,“設置”:{“名稱”:“s3_sample_test”,“email_notifications”: {},“webhook_notifications”: {},“timeout_seconds”: 0,“安排”:{“quartz_cron_expression”:“0 0 0 * *嗎?”,“timezone_id”:“美國/丹佛”、“pause_status”:“停頓”},“max_concurrent_runs”: 1、“任務”:[{“task_key”:“主要”、“python_wheel_task”: {“package_name”:“s3_ingest”、“entry_point”:“s3”,“參數”:[”——artifact-bucket”、“<編輯>”,“——配置文件”,“integration-pipeline / dev / <編輯>沙箱/共享/ s3_sample_test / s3_ingest。yml”、“——源模式”、“integration-pipeline / dev / <編輯>沙箱/共享/ s3_sample_test / source_schema。json "]},“new_cluster”: {“spark_version”:“13.2.x-scala2.12”、“aws_attributes”: {“instance_profile_arn”:“在攻擊:aws:我::<修訂aws帳戶id >: instance-profile / <編輯角色名稱>”},“instance_pool_id”:“0510 - 171953 - luck30池y9abm5g0”、“data_security_mode”:“SINGLE_USER”、“自動定量”:{“min_workers”: 1、“max_workers”: 8}},“庫”:[{“pypi”:{“包”:“s3_ingest = =發布"}}],“timeout_seconds”: 0,”email_notifications ":{}})格式”:“MULTI_TASK created_time“},: 1690576962438}

@Kaniz謝謝你的回複。針對你的建議:

  1. 圖書館?我可以從一個筆記本運行pip安裝在交互式計算使用DBR 12.2和13.2
  2. 庫的版本嗎?相同的結果為1。
  3. 不同的版本?使用交互式計算1和2的結果一樣。工作也計算適合兩庫版本DBR 12.2,但無論是工作13.2。
  4. 目錄的權限嗎?從一個筆記本運行ls lh /home/libraries/.cache/pip返回ls:無法訪問/ home /圖書館/。緩存/ pip”:沒有這樣的文件或目錄
  5. 皮普sudo - h ?我不是顯式地運行皮普。我用的是庫[*].pypi.package屬性的API創建工作。

額外的細節

這裏有兩個pip命令我試穿了交互式計算使用DBR 12.2和13.2。這兩個工作在這種情況下:

% pip安裝“s3_ingest = =發布”

另外:

% sh /磚/ python3 / bin / python - m pip安裝“s3_ingest = =發布”

這是完整的(修訂)工作定義複製從工作流控製台界麵:

{“job_id”: 696122671962585,“creator_user_name”:“<編輯郵件>”,“run_as_user_name”:“<修訂服務主要應用程序id >”,“run_as_owner”:真的,“設置”:{“名稱”:“s3_sample_test”,“email_notifications”: {},“webhook_notifications”: {},“timeout_seconds”: 0,“安排”:{“quartz_cron_expression”:“0 0 0 * *嗎?”,“timezone_id”:“美國/丹佛”、“pause_status”:“停頓”},“max_concurrent_runs”: 1、“任務”:[{“task_key”:“主要”、“python_wheel_task”: {“package_name”:“s3_ingest”,“entry_point”:“s3”,“參數”:[”——artifact-bucket”、“<屏蔽s3 bucket名稱>”,“——配置文件”,“integration-pipeline / dev / <編輯>沙箱/共享/ s3_sample_test / s3_ingest。yml”、“——源模式”、“integration-pipeline / dev / <編輯>沙箱/共享/ s3_sample_test / source_schema。json "]},“new_cluster”: {“spark_version”:“13.2.x-scala2.12”、“aws_attributes”: {“instance_profile_arn”:“在攻擊:aws:我::<修訂aws帳戶id >: instance-profile / <修訂aws我角色名稱>”},“instance_pool_id”:“<編輯實例池id >”,“data_security_mode”:“SINGLE_USER”、“自動定量”:{“min_workers”: 1、“max_workers”: 8}},“庫”:[{“pypi”:{“包”:“s3_ingest = =發布"}}],“timeout_seconds”: 0,”email_notifications ":{}})格式”:“MULTI_TASK created_time“},: 1690576962438}

@Kaniz,

我一直在運行一些額外的實驗。

實驗1

  1. 創建集群DBR 12.2
  2. 一旦運行,檢查/home/libraries/.cache/pip存在使用ls lh(不)
  3. 安裝使用集群配置“庫”選項卡“s3_ingest = =發布”(成功)
  4. 再次檢查pip緩存文件夾是否存在(不)
  5. 使用集群配置“庫”選項卡來卸載“s3_ingest = =發布”(等待重啟)

實驗2

  1. 編輯從“實驗1”集群配置,改變DBR 13.2然後點擊“確認並重新啟動”
  2. 一旦運行,檢查/home/libraries/.cache/pip存在使用ls lh(不)
  3. 運行/磚/ python / bin / python - m pip卸載- y s3_ingest驗證s3_ingest沒有安裝(返回警告說,包沒有安裝)
  4. 安裝使用集群配置“庫”選項卡“s3_ingest = =發布”(失敗,同樣的錯誤為鳳凰社)

實驗3

  1. 卸載後s3_ingest = =發布“實驗2”(等待重啟),然後重新啟動集群
  2. 重啟完成後,運行mkdir - p /home/libraries/.cache/pip然後喬恩- r沒有人:nogroup /home/libraries
  3. 安裝使用集群配置“庫”選項卡“s3_ingest = =發布”(失敗,同樣的錯誤為鳳凰社)

結論

這對我來說似乎是一個錯誤。我要考慮從一個init腳本運行pip安裝作為一個解決方案,但“庫”功能似乎打破了我——互動和計算工作。我已經核實了,皮普不需要sudo或sudo - h,它運行在它自己的很好。無論如何,“庫”功能不提供指定sudo的能力這意味著我不能使用這個功能,可能需要創建一個pip安裝腳本為每一份工作,而不是使用內置的“圖書館”與“pypi”功能。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map