您可以使用命令列介面來存取和管理儲存體帳戶中的資料,就如同使用 Hadoop 分散式檔案系統 (HDFS) 一樣。 本文提供一些可協助您開始使用的範例。
HDInsight 可以存取本機連結至計算節點的分散式容器。 您可以使用與 HDFS 直接互動的殼層,以及 Hadoop 支援的其他檔案系統,來存取此容器。
如需有關 HDFS CLI 的詳細資訊,請參閱官方文件和 HDFS 使用權限指南
注意
如果您使用 Azure Databricks 而非 HDInsight,而且想要使用命令列介面來與您的資料互動,您可以使用 Databricks CLI 與 Databricks 檔案系統互動。 請參閱 Databricks CLI。
在 Linux 上搭配使用 HDFS CLI 和 HDInsight Hadoop 叢集
首先,建立服務的遠端存取。 如果您挑選 SSH,則範例 PowerShell 程式碼會看起來像這樣:
#Connect to the cluster via SSH.
ssh sshuser@clustername-ssh.azurehdinsight.net
#Execute basic HDFS commands. Display the hierarchy.
hdfs dfs -ls /
#Create a sample directory.
hdfs dfs -mkdir /samplefolder
您可以在 Azure 入口網站中 HDInsight 叢集刀鋒視窗的「SSH + 叢集登入」區段找到連接字串。 在叢集建立時,就已指定 SSH 認證。
重要
HDInsight 叢集的計費,是從建立叢集之後開始算起,並於叢集被刪除時停止計算。 計費是以每分鐘按比例計算,因此不再使用時,請一律刪除您的叢集。 若要了解如何刪除叢集,請參閱我們針對該主題的文章。 不過,即使刪除 HDInsight 叢集之後,已啟用 Data Lake Storage 的記憶體帳戶中所儲存的數據仍會持續存在。
建立容器
hdfs dfs -D "fs.azure.createRemoteFileSystemDuringInitialization=true" -ls abfs://<container-name>@<storage-account-name>.dfs.core.windows.net/
請將
<container-name>預留位置取代為您要為容器指定的名稱。使用您的儲存體帳戶名稱取代
<storage-account-name>預留位置。
取得檔案清單或目錄
hdfs dfs -ls <path>
將 <path> 預留位置取代為容器或容器資料夾的 URI。
例如:hdfs dfs -ls abfs://my-file-system@mystorageaccount.dfs.core.windows.net/my-directory-name
建立目錄
hdfs dfs -mkdir [-p] <path>
將 <path> 預留位置取代為您容器內的根容器名稱或資料夾。
例如:hdfs dfs -mkdir abfs://my-file-system@mystorageaccount.dfs.core.windows.net/
刪除檔案或目錄
hdfs dfs -rm <path>
將 <path> 預留位置取代為您想要刪除之檔案或資料夾的 URI。
例如:hdfs dfs -rmdir abfs://my-file-system@mystorageaccount.dfs.core.windows.net/my-directory-name/my-file-name
顯示檔案和目錄的存取控制清單 (ACL)
hdfs dfs -getfacl [-R] <path>
範例:
hdfs dfs -getfacl -R /dir
請參閱 getfacl
設定檔案和目錄的 ACL
hdfs dfs -setfacl [-R] [-b|-k -m|-x <acl_spec> <path>]|[--set <acl_spec> <path>]
範例:
hdfs dfs -setfacl -m user:hadoop:rw- /file
請參閱 setfacl
變更檔案的擁有者
hdfs dfs -chown [-R] <new_owner>:<users_group> <URI>
請參閱 chown
變更檔案的群組關聯
hdfs dfs -chgrp [-R] <group> <URI>
請參閱 chgrp
變更檔案的權限
hdfs dfs -chmod [-R] <mode> <URI>
請參閱 chmod
您可以在 Apache Hadoop 2.4.1 檔案系統殼層指南網站上檢視完整的命令清單。