
# HDFS Shell命令介绍
#### HDFS Shell
您可以使用HDFS Shell命令对HDFS文件系统进行操作，例如读文件、写文件等操作。
执行HDFS Shell的方法：
进入HDFS客户端如下目录，直接输入命令即可。例如：
**cd /opt/client/HDFS/hadoop/bin**
./*hdfs dfs -mkdir /tmp/input*
执行如下命令查询HDFS命令的帮助。
./*hdfs --help*
HDFS命令行参考请参见官网：
<https://hadoop.apache.org/docs/r3.1.1/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参数显示的是元数据。                                                                                                                                                             |
   
表2Colocation 客户端shell命令 
| 操作                    | 命令                                                                                                                                                                                         | 描述                                                                                                                       |
|:---|:---|:---|
| 创建组                   | hdfs colocationadmin -createGroup -groupId \<groupID\> -locatorIds \<comma separated locatorIDs\> or -file \<path of the file contains all of locatorIDs\> | 创建组，groupID为组名，locatorID为locator名，locatorID可通过命令行输入，多个locatorID之间用逗号分隔；也可将locatorID写入文件，通过读文件获取。                         |
| 删除组                   | hdfs colocationadmin -deleteGroup \<groupID\>                                                                                                                                              | 删除指定组。                                                                                                                   |
| 查询组                   | hdfs colocationadmin -queryGroup \<groupID\>                                                                                                                                               | 查询指定组的详细信息，包括该group包含的locators以及每个locator及其对应的DataNode。                                                                  |
| 查看所有组                 | hdfs colocationadmin -listGroups                                                                                                                                                           | 列出所有组及其创建时间。                                                                                                             |
| 设置colocation根目录的acl权限 | hdfs colocationadmin -setAcl                                                                                                                                                               | 设置zookeeper中colocation根目录的acl权限。 colocation在zookeeper中的根目录默认为/hadoop/colocationDetails。 |
   
