可以使用命令行界面来访问并管理存储帐户中的数据,就像像使用 Hadoop 分布式文件系统 (HDFS) 一样。 本文提供了一些有助于入门的示例。
HDInsight 可以访问在本地附加到计算节点的分布式容器。 可以使用与 HDFS 以及 Hadoop 支持的其他文件系统直接交互的 shell 来访问此容器。
有关 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.cn
#Execute basic HDFS commands. Display the hierarchy.
hdfs dfs -ls /
#Create a sample directory.
hdfs dfs -mkdir /samplefolder
可以在 Azure 门户中 HDInsight 群集边栏选项卡的“SSH + 群集登录”部分中找到连接字符串。 SSH 凭据是在创建群集时指定的。
重要
创建群集后便开始 HDInsight 群集计费,删除群集后停止计费。 HDInsight 群集按分钟收费,因此不再需要使用群集时,应将其删除。 若要了解如何删除群集,请参阅我们的有关该主题的文章。 但是,即使删除了 HDInsight 群集,存储在启用了 Data Lake Storage 的存储帐户中的数据仍然存在。
创建容器
hdfs dfs -D "fs.azure.createRemoteFileSystemDuringInitialization=true" -ls abfs://<container-name>@<storage-account-name>.dfs.core.chinacloudapi.cn/
将
<container-name>
占位符替换为你要为容器指定的名称。将
<storage-account-name>
占位符替换为存储帐户的名称。
获取文件或目录列表
hdfs dfs -ls <path>
将 <path>
占位符替换为容器或容器文件夹的 URI。
例如:hdfs dfs -ls abfs://my-file-system@mystorageaccount.dfs.core.chinacloudapi.cn/my-directory-name
创建目录
hdfs dfs -mkdir [-p] <path>
将 <path>
占位符替换为根容器名称或容器中的文件夹。
例如:hdfs dfs -mkdir abfs://my-file-system@mystorageaccount.dfs.core.chinacloudapi.cn/
删除文件或目录
hdfs dfs -rm <path>
将 <path>
占位符替换为要删除的文件或文件夹的 URI。
例如:hdfs dfs -rmdir abfs://my-file-system@mystorageaccount.dfs.core.chinacloudapi.cn/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 文件系统 Shell 指南网站。