HDFS文件系统基本信息
HDFS作为分布式存储的文件系统,有其对数据的路径表达方式。
HDFS同Linux系统一样,均是以/作为根目录的组织形式
Linux: /usr/local/hello.txt
HDFS: /usr/local/hello.txt
如何区分呢?
Linux:file:///
HDFS:hdfs://namenode:port/
如上路径: Linux:file:///usr/local/hello.txt
HDFS:hdfs://node1:8020/usr/local/hello.txt
协议头file:/// 或 hdfs://node1:8020/可以省略
需要提供Linux路径的参数,会自动识别为file://
需要提供HDFS路径的参数,会自动识别为hdfs://
除非你明确需要写或不写会有BUG,否则一般不用写协议头
文件系统操作命令介绍
关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系
hadoop命令(老版本用法),用法:hadoop fs [generic options]
hdfs命令(新版本用法),用法:hdfs dfs [generic options]
两者在文件系统操作上,用法完全一致 用哪个都可以 ,某些特殊操作需要选择hadoop命令或hdfs命令,自行选择。
1、创建文件夹
hadoop fs -mkdir [-p] <path> ...
hdfs dfs -mkdir [-p] <path> ...
path 为待创建的目录 -p 选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。
2、查看指定目录下内容
hadoop fs -ls [-h] [-R] [<path> ...]
hdfs dfs -ls [-h] [-R] [<path> ...]
path 指定目录路径 -h 人性化显示文件size -R 递归查看指定目录及其子目录
3、上传文件到HDFS指定目录下
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
-f 覆盖目标文件(已存在下) -p 保留访问和修改时间,所有权和权限。 localsrc 本地文件系统(客户端所在机器) dst 目标文件系统(HDFS)
4、查看HDFS文件内容
hadoop fs -cat <src> ...
hdfs dfs -cat <src> ...
读取大文件可以使用管道符配合more
hadoop fs -cat <src> | more
hdfs dfs -cat <src> | more
5、下载HDFS文件
hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ... <localdst>
下载文件到本地文件系统指定目录,localdst必须是目录
-f 覆盖目标文件(已存在下) -p 保留访问和修改时间,所有权和权限。
6、拷贝HDFS文件
hadoop fs -cp [-f] <src> ... <dst>
hdfs dfs -cp [-f] <src> ... <dst>
-f 覆盖目标文件(已存在下)
7、追加数据到HDFS文件中
hadoop fs -appendToFile <localsrc> ... <dst>
hdfs dfs -appendToFile <localsrc> ... <dst>
将所有给定本地文件的内容追加到给定dst文件。 dst如果文件不存在,将创建该文件。 如果<localSrc>为-,则输入为从标准输入中读取。
8、HDFS数据移动操作
hadoop fs -mv <src> ... <dst>
hdfs dfs -mv <src> ... <dst>
移动文件到指定文件夹下 可以使用该命令移动数据,重命名文件的名称
9、HDFS数据删除操作
hadoop fs -rm -r [-skipTrash] URI [URI ...]
hdfs dfs -rm -r [-skipTrash] URI [URI ...]
删除指定路径的文件或文件夹 -skipTrash 跳过回收站,直接删除
回收站功能默认关闭,如果要开启需要在core-site.xml内配置:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>
无需重启集群,在哪个机器配置的,在哪个机器执行命令就生效。
回收站默认位置在:/user/用户名(hadoop)/.Trash
HDFS shell其它命令
常见的操作自己最好能够记住,其他操作可以根据需要查询文档使用。
HDFS WEB浏览
除了使用命令操作HDFS文件系统外,在HDFS的WEB UI上也可以查看HDFS文件系统的内容。
使用WEB浏览操作文件系统,一般会遇到权限问题
这是因为WEB浏览器中是以匿名用户(dr.who)登陆的,其只有只读权限,多数操作是做不了的。 如果需要以特权用户在浏览器中进行操作
需要配置如下内容到core-site.xml并重启集群
value填启动hdfs的用户
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
但是,不推荐这样做 HDFS WEBUI,只读权限挺好的,简单浏览即可 如果给与高权限,会有很大的安全问题,造成数据泄露或丢失
补充:
副本和block的配置 以及上传文件,已有文件的副本数设置命令 查看文件block的相关命令http://t.csdnimg.cn/ZhFFy