HDFS
您可以使用 HDFS 連接器,對 HDFS 資料執行插入、刪除、更新和讀取動作。
支援的版本
這個連接器支援 HDFS Hadoop 3.4.0 版。
事前準備
使用 HDFS 連接器前,請先完成下列工作:
- 在 Google Cloud 專案中:
- 將 roles/connectors.admin IAM 角色授予設定連線器的使用者。
- 將下列 IAM 角色授予要用於連接器的服務帳戶:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請建立服務帳戶。詳情請參閱「建立服務帳戶」。
- 啟用下列服務:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
如要瞭解如何啟用服務,請參閱「啟用服務」。
如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。
設定連接器
連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:
- 在 Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。
- 按一下「+ 建立新連線」,開啟「建立連線」頁面。
- 在「位置」部分中,選擇連線位置。
- 區域:從下拉式清單中選取位置。
如需所有支援的地區清單,請參閱「位置」一文。
- 點按「下一步」。
- 區域:從下拉式清單中選取位置。
- 在「連線詳細資料」部分,完成下列步驟:
- 連接器:從可用連接器的下拉式清單中選取「HDFS」。
- 連接器版本:從可用版本的下拉式清單中選取連接器版本。
- 在「連線名稱」欄位中,輸入連線執行個體的名稱。
連線名稱必須符合下列條件:
- 連線名稱可使用英文字母、數字或連字號。
- 字母必須為小寫。
- 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
- 連結名稱不得超過 49 個字元。
- 視需要輸入連線執行個體的「Description」(說明)。
- 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為
Error
。 - 服務帳戶:選取具備必要角色的服務帳戶。
- 路徑:指定要用做工作目錄的 HDFS 路徑。
- 視需要設定「連線節點設定」:
- 節點數量下限:輸入連線節點數量下限。
- 節點數量上限:輸入連線節點數量上限。
節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。
- 選用:按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
- 點按「下一步」。
- 在「目的地」部分,輸入要連線的遠端主機 (後端系統) 詳細資料。
- 目的地類型:選取目的地類型。
- 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
- 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。
如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。
如要輸入其他目的地,請按一下「+新增目的地」。
- 點按「下一步」。
- 目的地類型:選取目的地類型。
-
在「Authentication」(驗證) 部分中,輸入驗證詳細資料。
- 選取「驗證類型」並輸入相關詳細資料。
HDFS 連線支援下列驗證類型:
- 使用者名稱和密碼
如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。
- 點按「下一步」。
- 選取「驗證類型」並輸入相關詳細資料。
- 檢查:檢查連線和驗證詳細資料。
- 點選「建立」。
設定驗證機制
根據要使用的驗證方式輸入詳細資料。
-
使用者名稱和密碼
- 使用者名稱:輸入要用於 HDFS 連線的使用者名稱。
- 密碼:輸入 Secret Manager 密鑰,內含與使用者名稱相關聯的密碼。
- 密鑰版本:選取上述所選密鑰的密鑰版本。
連線設定範例
本節列出建立連線時設定的各個欄位範例值。
使用者名稱和密碼連線類型
欄位名稱 | 詳細資料 |
---|---|
位置 | europe-west1 |
連接器 | HDFS |
連接器版本 | 1 |
連線名稱 | hdfs-v24-new |
服務帳戶 | my-service-account@my-project.iam.gserviceaccount.com |
節點數量下限 | 2 |
節點數量上限 | 2 |
目的地類型 | 主機地址 |
主機 | 10.128.0. |
port1 | 10000 |
使用者名稱 | user1 |
密碼 | 密碼 |
Secret 版本 | 1 |
系統限制
每個節點的 HDFS 連接器每秒最多可處理 20 筆交易,超過此限制的交易都會受到節流。根據預設,Integration Connectors 會為連線分配 2 個節點 (以提高可用性)。
如要瞭解 Integration Connectors 適用的限制,請參閱「限制」一文。
在整合中建立 HDFS 連線
建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。
- 如要瞭解如何在 Apigee Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
- 如要瞭解如何在 Application Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
動作
本節說明如何在這個連接器中執行部分動作。
MakeDirectory 動作
這項動作會在指定路徑中建立目錄。
MakeDirectory 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
權限 | 字串 | 否 | 建立新目錄的權限。 |
路徑 | 字串 | 是 | 新目錄的路徑。 |
如要瞭解如何設定 MakeDirectory
動作,請參閱範例。
ListStatus 動作
這項動作會列出所提供路徑的內容。
ListStatus 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
如要瞭解如何設定 ListStatus
動作,請參閱範例。
GetHomeDirectory 動作
這項動作會取得目前使用者的主目錄。
GetHomeDirectory 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
connectorInputPayload | JSON | 是 | 連接器的輸入酬載。 |
如要瞭解如何設定 GetHomeDirectory
動作,請參閱範例。
DeleteFile 動作
這項操作會刪除檔案或目錄。
DeleteFile 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
遞迴 | 布林值 | 否 | 指定是否要刪除資料夾的子資料夾。 |
如要瞭解如何設定 DeleteFile
動作,請參閱範例。
GetContentSummary 動作
這項動作會取得檔案或資料夾的內容摘要。
GetContentSummary 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案或資料夾的路徑。 |
如要瞭解如何設定 GetContentSummary
動作,請參閱範例。
RenameFile 動作
這項動作會重新命名檔案或目錄。
RenameFile 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
目的地 | 字串 | 是 | 指定檔案的新名稱和路徑。 |
如要瞭解如何設定 RenameFile
動作,請參閱範例。
SetPermission 動作
這項操作會設定路徑的權限。
SetPermission 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
權限 | 字串 | 是 | 以八進位 (8 進位) 標記法指定 Unix 權限。 |
如要瞭解如何設定 SetPermission
動作,請參閱範例。
SetPermission 動作
這項操作會設定路徑的權限。
SetPermission 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
權限 | 字串 | 是 | 以八進位 (8 進位) 標記法指定 Unix 權限。 |
如要瞭解如何設定 SetPermission
動作,請參閱範例。
SetOwner 動作
這項動作會設定路徑的擁有者和群組。
SetOwner 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
擁有者 | 字串 | 是 | 路徑的新擁有者。 |
群組 | 字串 | 否 | 新群組的名稱。 |
如要瞭解如何設定 SetOwner
動作,請參閱範例。
UploadFile 動作
這項動作會上傳檔案。
UploadFile 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
內容 | 字串 | 是 | 上傳檔案的內容。 |
如要瞭解如何設定 UploadFile
動作,請參閱範例。
DownloadFile 動作
這項操作會下載檔案。
DownloadFile 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
WriteToFile | 字串 | 否 | 要寫入輸出內容的檔案本機位置。 |
如要瞭解如何設定 DownloadFile
動作,請參閱範例。
AppendToFile 動作
這項動作會附加檔案。
AppendToFile 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
內容 | 字串 | 是 | 要附加至檔案的內容。 |
如要瞭解如何設定 AppendToFile
動作,請參閱範例。
GetFileChecksum 動作
這項動作會取得檔案的總和檢查碼。
GetFileChecksum 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
路徑 | 字串 | 是 | 檔案路徑。 |
如要瞭解如何設定 GetFileChecksum
動作,請參閱範例。
動作範例
本節說明如何執行這個連接器中的部分動作範例。
範例 - 建立目錄
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
MakeDirectory
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/hduser" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Success": true }]
範例 - 取得主目錄
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
GetHomeDirectory
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{}
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Path": "/user/hduser" }]
範例 - 刪除檔案
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
DeleteFile
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/hduser/testFile" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Success": true }]
範例 - 列出檔案的狀態
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
ListStatus
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "path": "/user/hduser/deletefile" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "fileId": 16471.0, "PathSuffix": "data.txt", "owner": "hduser", "group": "supergroup", "length": 38.0, "permission": "644", "replication": 1.0, "storagePolicy": 0.0, "childrenNum": 0.0, "blockSize": 1.34217728E8, "modificationTime": "2024-08-16 16:12:01.921", "accessTime": "2024-08-16 16:12:01.888", "type": "FILE" }, { "fileId": 16469.0, "PathSuffix": "file2.txt", "owner": "hduser", "group": "supergroup", "length": 53.0, "permission": "644", "replication": 1.0, "storagePolicy": 0.0, "childrenNum": 0.0, "blockSize": 1.34217728E8, "modificationTime": "2024-08-16 16:12:01.762", "accessTime": "2024-08-16 16:12:01.447", "type": "FILE" }]
範例 - 取得檔案的內容摘要
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
GetContentSummary
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/hduser/appendtofile" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "DirectoryCount": "1", "FileCount": "1", "Length": 52.0, "Quota": -1.0, "SpaceConsumed": 52.0, "SpaceQuota": -1.0, "ecpolicy": "", "snapshotdirectorycount": "0", "snapshotfilecount": "0", "snapshotlength": "0", "snapshotspaceconsumed": "0" }]
範例 - 重新命名檔案
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
hdfs_RenameFile_action
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/hduser/renamefile_second/file1.txt", "Destination": "/user/hduser/renamefile_second/file1rename" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Success": true }]
範例 - 設定檔案的權限
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
SetPermission
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/hduser/gcpdirectory", "Permission": "777" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Success": true }]
範例 - 設定檔案擁有者
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
SetOwner
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/hduser/gcpdirectory", "Owner": "newowner" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Success": true }]
範例 - 上傳檔案
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
UploadFile
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/newfile9087.txt", "Content": "string" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[{ "Success": true }]
範例 - 下載檔案
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
DownloadFile
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/sampleFile/file1.txt" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[ { "Output": "This is sample File\nfor this testing\ncontent" } ]
範例 - 附加檔案
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
AppendToFile
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/sampleFile/file1.txt", "Content": "content" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[ { "Success": true } ]
範例 - 取得檔案的總和檢查碼
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
GetFileChecksum
動作,然後按一下「完成」。 - 在「資料對應」區段中
Open Data Mapping Editor
,然後在「Input
」欄位中輸入類似下列的值:{ "Path": "/user/sampleFile/file1.txt" }
如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似於下列內容:
[ { "Algorithm": "MD5-of-0MD5-of-512CRC32C", "Bytes": "00000200000000000000000080f5b53ae8c165ae56e86109b8bb2a1700000000", "Length": 28 } ]
實體作業範例
本節說明如何使用這個連接器執行部分實體作業。
範例 - 列出所有檔案的資料
這個範例會擷取 Files
實體中所有檔案的資料。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Object
。 - 選取「
List
」作業,然後按一下「完成」。
範例 - 取得權限資料
這個範例會從 Permission
實體取得具有指定 ID 的權限資料。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Permission
。 - 選取「
Get
」作業,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入) 區段中,按一下「EntityId」,然後在「Default Value」(預設值) 欄位中輸入
/user/hduser/appendfile
。其中
/user/hduser/appendfile
是Permission
實體的專屬 ID。