我們使用一個私人PyPI回購(AWS CodeArtifact)發布自定義python庫。我們提供私人回購DBR 12.2集群使用一個初始化腳本這裏的規定在磚KB。當我們試圖升級到13.2這個停止工作。具體地說:
看的文檔集群庫指出以下限製:
磚上運行時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 = =發布
@dvmentalmadess我發現解決了這個問題,我使用這個init腳本創建的/home/libraries主文件夾和給權限庫用戶,然後利用sudo- u庫awscodeartifact登錄命令。
# !/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
它為我工作。
嗨@dvmentalmadess,錯誤消息表明圖書館安裝失敗的圖書館“s3_ingest”版本“發布”由於無法找到匹配的分布。
這可能是由於以下原因:- - - - - -
為了解決這個問題,試試以下:- - - - - -
@Kaniz謝謝你的回應。
這隻發生在計算集群,如果我改變工作spark_version從12.2.x-scala2.12來13.2.x-scala2.12。同樣的工作定義在配置為DBR 12.2時沒問題。還有,如果我在13.2中,自旋向上交互式集群將它附加到一個筆記本,並運行以下工作正常:
% pip安裝“s3_ingest = =發布”
另外:
/磚/ python3 / bin / python - m pip安裝“s3_ingest = =發布”
然而,實際上我不執行皮普從一個init腳本。我隻是使用API的工作庫[*].pypi.package屬性如下所示定義。
地址您的解決建議:
這是全部工作的定義:
{“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謝謝你的回複。針對你的建議:
這裏有兩個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}
我一直在運行一些額外的實驗。
這對我來說似乎是一個錯誤。我要考慮從一個init腳本運行pip安裝作為一個解決方案,但“庫”功能似乎打破了我——互動和計算工作。我已經核實了,皮普不需要sudo或sudo - h,它運行在它自己的很好。無論如何,“庫”功能不提供指定sudo的能力這意味著我不能使用這個功能,可能需要創建一個pip安裝腳本為每一份工作,而不是使用內置的“圖書館”與“pypi”功能。