HDFS的客户端形式
1.网页形式——网页客户端可以查看HDFS文件系统上的文件
2.命令行形式——hdfs客户端就是命令,可以进入Hadoop安装包的bin目录下,使用脚本Hadoop/hdfs来启动一个java客户端,进行hdfs的相关操作
3.客户端在哪里运行没有约束,只要运行客户端的机器能够和hdfs集群联网——可以写一个Java程序作为客户端访问hdfs、可以在hdfs集群中任一台机器或非集群中的一台机器上启动一个客户端(只需更改core-site.xml文件,指定hdfs的namenode)
注:上传到hdfs文件系统的文件切块大小和存储的副本数量,由hdfs的客户端决定。可以通过配置参数来改变:
1.切块大小的参数: dfs.blocksize
2.副本数量的参数: dfs.replication
上面两个参数应该在客户端机器的hadoop目录中的hdfs-site.xml文件中配置
<property> <name>dfs.blocksize</name> <value>64m</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property>
hdfs命令行客户端的常用操作命令
1.查看hdfs中的目录信息
hadoop fs -ls /hdfs路径
2.上传文件到hdfs中
hadoop fs -put /本地文件 /hdfs路径 hadoop fs -copyFromLocal /本地文件 /hdfs路径 # copyFromLocal等价于 put hadoop fs -moveFromLocal /本地文件 /hdfs路径 # 跟copyFromLocal的区别是:从本地移动到hdfs中
3.下载文件到客户端本地磁盘
hadoop fs -get /hdfs中的路径 /本地磁盘目录 hadoop fs -copyToLocal /hdfs中的路径 /本地磁盘路径 # 跟get等价 hadoop fs -moveToLocal /hdfs路径 /本地路径 # 从hdfs中移动到本地
4.在hdfs中创建文件夹
hadoop fs -mkdir -p /aaa/xxx
5.移动hdfs中的文件(更名)
hadoop fs -mv /hdfs的路径 /hdfs的另一个路径
6.删除hdfs中的文件或文件夹
hadoop fs -rm -r /aaa
7.修改文件的权限
hadoop fs -chown user:group /aaa hadoop fs -chmod 700 /aaa
8.追加内容到已存在的文件
hadoop fs -appendToFile /本地文件 /hdfs中的文件
9.显示文本文件的内容
hadoop fs -cat /hdfs中的文件 hadoop fs -tail /hdfs中的文件
补充:hdfs命令行客户端的所有命令列表
Usage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>] [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] <path> ...] [-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>] [-createSnapshot <snapshotDir> [<snapshotName>]] [-deleteSnapshot <snapshotDir> <snapshotName>] [-df [-h] [<path> ...]] [-du [-s] [-h] [-x] <path> ...] [-expunge] [-find <path> ... <expression> ...] [-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-getfacl [-R] <path>] [-getfattr [-R] {-n name | -d} [-e en] <path>] [-getmerge [-nl] [-skip-empty-file] <src> <localdst>] [-help [cmd ...]] [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]] [-mkdir [-p] <path> ...] [-moveFromLocal <localsrc> ... <dst>] [-moveToLocal <src> <localdst>] [-mv <src> ... <dst>] [-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>] [-renameSnapshot <snapshotDir> <oldName> <newName>] [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...] [-rmdir [--ignore-fail-on-non-empty] <dir> ...] [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]] [-setfattr {-n name [-v value] | -x name} <path>] [-setrep [-R] [-w] <rep> <path> ...] [-stat [format] <path> ...] [-tail [-f] <file>] [-test -[defsz] <path>] [-text [-ignoreCrc] <src> ...] [-touchz <path> ...] [-truncate [-w] <length> <path> ...] [-usage [cmd ...]]