
# HDFS Shell命令介绍
#### HDFS Shell
您可以使用HDFS Shell命令对HDFS文件系统进行操作，例如读文件、写文件等操作。
执行HDFS Shell的方法：
1. 初始化环境变量。 
   **source /opt/client/bigdata_env**
   
   
2. 如果当前集群已启用Kerberos认证，执行以下命令认证当前用户。如果当前集群未启用Kerberos认证，则无需执行此命令。当前用户为[准备HDFS应用开发用户](https://support.huaweicloud.com/devg-mrs/mrs_06_0117.html)时增加的开发用户。
   
   人机用户：*kinit* *MRS* *集群用户*
   例如：**kinit hdfsuser**
   机机用户：*kinit -kt 认证凭据路径* *MRS* *集群用户*
   例如：**kinit -kt /opt/user.keytab hdfsuser**
   
   
3. 执行HDFS SHELL命令。 
   HDFS SHELL 操作格式：hadoop fs \<args\>
   直接输入命令即可。例如：
   - 查看对应目录下内容 hadoop fs -ls /tmp/input/
   
   - 创建目录 hadoop fs -mkdir /tmp/input/new_dir
   
   - 查看文件内容 hadoop fs -cat /tmp/input/file1
   
   - 清除文件 hadoop fs -rm -r /tmp/input/file1
   
   - 执行如下命令查询HDFS命令的帮助hadoop fs --help
   
   
   HDFS命令行参考请参见官网：
   <https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html>
   
   
表1透明加密相关命令 
| **场景**             | **操作** | **命令**                                                                                                                                                                          | **描述**                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| hadoop shell命令管理密钥 | 创建密钥   | *hadoop key create* *\<keyname\> \[-cipher \<cipher\>\] \[-size \<size\>\] \[-description \<description\>\] \[-attr \<attribute=value\>\] \[-provider \<provider\>\] \[-help\]* | create子命令为provider中\<keyname\>参数指定的name创建一个新的密钥，provider是由-provider参数指定。用户可以使用参数-cipher定义一个密码。目前默认的密码为"AES/CTR/NoPadding"。 默认密钥的长度为128。用户可以使用参数-size定义需要的密钥的长度。任意的attribute=value类型属性可以用参数-attr定义。每一个属性，-attr可以被定义很多次。 |
| hadoop shell命令管理密钥 | 回滚操作   | *hadoop key roll* *\<keyname\> \[-provider \<provider\>\] \[-help\]*                                                                                                            | roll子命令为provider中指定的key创建一个新的版本，provider是由-provider参数指定。                                                                                                                                                                                                                     |
| hadoop shell命令管理密钥 | 删除密钥   | *hadoop key delete* *\<keyname\> \[-provider \<provider\>\] \[-f\] \[-help\]*                                                                                                   | delete子命令删除key的所有版本，key是由provider中的\<keyname\>参数指定，provider是由-provider参数指定。除非-f被指定否则该命令需要用户确认。                                                                                                                                                                               |
| hadoop shell命令管理密钥 | 查看密钥   | *hadoop key list* *\[-provider \<provider\>\] \[-metadata\] \[-help\]*                                                                                                          | list子命令显示provider中所有的密钥名，这个provider由用户在core-site.xml中配置或者由-provider参数指定。-metadata参数显示的是元数据。                                                                                                                                                                                  |
   
