穀歌雲存儲
本文描述了如何使用磚讀寫表和數據存儲在穀歌雲存儲(GCS)。
磚建議使用統一的編目連接GCS外部位置。或者,您可以創建一個附加服務賬戶,你要麼把桶和服務帳戶創建集群或連接到桶時直接與一個密鑰生成的服務帳戶
連接到GCS統一目錄
外部位置和存儲憑證允許統一目錄讀寫數據GCS代表用戶。管理員主要使用外部位置配置統一目錄外部表。
存儲憑證是一個統一的目錄對象GCS用於身份驗證。它是穀歌雲服務帳戶權限讀取和寫入GCS桶路徑。外部的位置是一個對象,結合了雲存儲路徑和存儲憑證。
誰能管理外部位置和存儲憑證?
穀歌雲用戶創建一個存儲憑證必須:
GCP帳戶是一個用戶的權限授予權限閱讀和寫作GCS桶一個服務帳戶。
磚用戶創建存儲憑證統一目錄必須:
是一個磚賬戶管理。
磚用戶創建外部位置在統一目錄必須:
是一個metastore管理員或用戶
創建外部位置
特權。
在您創建一個外部位置統一目錄,你可以可以授予以下權限:
創建表
讀文件
寫文件
這些權限使磚GCS沒有用戶訪問數據的雲存儲管理憑據進行身份驗證。
有關更多信息,請參見管理外部位置和存儲憑證。
訪問GCS桶與統一目錄外部位置
使用完全限定的GCS URI來訪問數據安全與統一目錄。由於統一權限管理目錄,您不需要傳遞任何附加選項或配置進行身份驗證。
警告
統一目錄訪問數據時忽略了火花配置設置由外部的位置。
閱讀的例子:
dbutils。fs。ls(“gs: / /桶/外部位置的路徑/ /數據”)火花。讀。格式(“鋪”)。負載(“gs: / /桶/外部位置的路徑/ /數據”)火花。sql(“SELECT * FROM parquet. gs: / /桶/外部位置的/道路/ /數據的“)
寫作的例子:
dbutils。fs。mv(“gs: / /桶/外部位置的路徑/ /數據”,“gs: / /桶/外部位置的路徑/ /新位置”)df。寫。格式(“鋪”)。保存(“gs: / /桶/外部位置的路徑/ /新位置”)
創建外部表的例子:
df。寫。選項(“路徑”,“gs: / /桶/外部位置的路徑/ /表”)。saveAsTable(“my_table”)火花。sql(”“”創建表my_table位置“gs: / /桶/外部位置的路徑/ /表”(SELECT *從parquet. gs: / /桶/外部位置的/道路/ /數據”)”“”)
訪問GCS桶集群上使用穀歌雲服務帳戶
您可以訪問GCS桶集群上使用穀歌雲服務帳戶。你必須服務帳戶的權限授予讀和寫的GCS桶。磚推薦給這個服務帳戶所需的最小特權來執行其任務。然後您可以將該服務帳戶關聯到一個集群磚。
你可以直接連接到桶使用服務帳戶的電子郵件地址(推薦方法)或一個關鍵服務帳戶的生成。
重要的
穀歌雲服務帳戶必須的項目,您用來設置數據磚工作區。
GCP用戶創建服務帳戶角色必須:
GCP帳戶是一個用戶的權限創建服務帳戶和授予權限角色閱讀和寫作GCS桶。
磚用戶添加了一個集群必須的服務帳戶可以管理允許在一個集群中。
步驟1:設置穀歌雲服務帳戶使用Google雲控製台
點擊我和管理在左側導航窗格。
點擊服務帳戶。
點擊+創建服務帳戶。
輸入服務帳戶名稱和描述。
點擊創建。
點擊繼續。
點擊完成。
導航到穀歌雲控製台服務帳戶列表並選擇一個服務帳戶。
複製相關的電子郵件地址。你需要你設置磚集群。
步驟2:配置您的GCS桶
創建一個桶
如果你不已經有一個桶中,創建一個:
點擊存儲在左側導航窗格。
點擊創建桶。
命名您的桶。選擇一個全局唯一符合穀歌的和永久的名字命名要求GCS桶。
重要的
使用DBFS坐騎,你鬥名稱必須不包含下劃線。
點擊創建。
訪問一個gc桶直接與穀歌雲服務帳戶的關鍵
直接讀寫一桶,你可以設置服務帳戶的電子郵件地址或配置中定義的一個關鍵火花配置。
請注意
磚推薦使用的服務帳戶的電子郵件地址,因為沒有鑰匙,所以沒有密鑰泄漏的風險。使用關鍵的一個原因是如果服務賬戶需要穀歌雲項目不同的項目使用在創建工作區。使用一個服務帳戶的電子郵件地址,請參閱訪問GCS桶集群上使用穀歌雲服務帳戶。
步驟1:設置穀歌雲服務帳戶使用Google雲控製台
您必須創建一個服務帳戶的磚集群。磚推薦給這個服務帳戶所需的最小特權來執行其任務。
點擊我和管理在左側導航窗格。
點擊服務帳戶。
點擊+創建服務帳戶。
輸入服務帳戶名稱和描述。
點擊創建。
點擊繼續。
點擊完成。
步驟2:創建直接訪問GCS桶的關鍵
警告
你生成的JSON關鍵服務帳戶是一個私有密鑰,隻能共享其控製與授權用戶訪問數據集和資源雲在你的穀歌賬戶。
在穀歌雲控製台中,在服務帳戶列表中,單擊新創建的帳戶。
在鍵部分中,點擊添加鍵>創建新的鍵。
接受JSON密鑰類型。
點擊創建。關鍵文件被下載到你的電腦。
步驟4:把服務帳戶磚秘密的關鍵
磚建議使用秘密的範圍來存儲所有的憑證。你可以把關鍵的私有密鑰和私有密鑰id JSON文件成磚秘密的範圍。能給予用戶、服務主體和組織您的工作區中獲得閱讀的秘密範圍。這保護服務帳戶關鍵,同時允許用戶訪問gc。創建一個秘密範圍,明白了秘密。
第五步:配置一個磚集群
在磚的運行時版本的下拉,選擇7.3 LTS或以上。
在火花配置選項卡中,使用以下代碼片段設置密鑰存儲在秘密範圍作為環境變量:
GSA_PRIVATE_KEY={{秘密/範圍/ gsa_private_key}}GSA_PRIVATE_KEY_ID={{秘密/範圍/ gsa_private_key_id}}spark.hadoop.google.cloud.auth.service.account。實現真正的spark.hadoop.fs.gs.auth.service.account。電子郵件< client-email >spark.hadoop.fs.gs.project。id <項目id >spark.hadoop.fs.gs.auth.service.account.private。關鍵GSA_PRIVATE_KEYspark.hadoop.fs.gs.auth.service.account.private.key。id GSA_PRIVATE_KEY_ID
取代
< client-email >
,<項目id >
與這些確切的值字段名稱從你關鍵的JSON文件。
步驟6:從GCS讀取
閱讀的GCS桶,用火花在任何受支持的格式讀取命令,例如:
df=火花。讀。格式(“鋪”)。負載(“gs: / / < bucket名> / <路徑>”)
寫GCS桶,使用一個火花寫命令在任何受支持的格式,例如:
df。寫。格式(“鋪”)。模式(“<模式>”)。保存(“gs: / / < bucket名> / <路徑>”)
取代< bucket名>
鬥中創建的名稱步驟3:配置GCS桶。