将 HDFS CLI 与 Data Lake Storage 配合使用
可以使用命令行界面来访问并管理存储帐户中的数据,就像像使用 Hadoop 分布式文件系统 (HDFS) 一样。 本文提供了一些有助于入门的示例。
HDInsight 可以访问在本地附加到计算节点的分布式容器。 可以使用与 HDFS 以及 Hadoop 支持的其他文件系统直接交互的 shell 来访问此容器。
有关 HDFS CLI 的详细信息,请参阅官方文档和 HDFS 权限指南
备注
如果你使用的是 Azure Databricks 而不是 HDInsight,并且要使用命令行接口与数据进行交互,可使用 Databricks CLI 与 Databricks 文件系统进行交互。 请参阅 Databricks CLI。
首先建立对服务的远程访问。 如果选择了 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
hdfs dfs -getfacl [-R] <path>
示例:
hdfs dfs -getfacl -R /dir
请参阅 getfacl
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 指南网站。