常用文件操作
hdfs dfs -mkdir [-p] <path> 在hdfs文件系统中创建目录
-p选项:沿着路径创建父目录
hdfs dfs -put [-f] [-p] <localsrc> <dst> 从linux系统中传输文件到hdfs文件系统中
-f:覆盖目标文件(已存在下)
-p:保留访问和修改时间,所有权和权限
hdfs dfs -ls [-h] [-R] / 查看hdfs文件系统中的文件
-h:人性化显示文件size
-R:递归查看指定目录及其子目录
localsrc:本地文件系统(客户端所在机器)
dst:目标文件系统(HDFS)
hdfs dfs -cat <src> 读取指定文件全部内容,显示在标准输出控制台
hdfs dfs -get [-f] [-p] <src> <localdst> 下载文件到本地文件系统指定目录,localdst目录
-f:覆盖目标文件(已存在下)
-p:保留访问和修改时间,所有权和权限
hdfs dfs -cp [-f] <src> <dst> 将HDFS文件系统的文件拷贝到其他目录
-f:覆盖目标文件(已存在下)
hdfs dfs -appendToFile <localsrc> <dst>
将所有给定本地文件的内容追加到给定dst文件
dst文件如果不存在,将创建该文件
hdfs dfs -mv <src> <dst> 移动文件到指定文件夹
可以使用该命令移动数据,重命名文件的名称
hdfs dfs -rm -r [-skipTrash] URI [URI] 删除指定路径的文件和文件夹
-skipTrash:跳过回收站,直接删除
HDFS副本块数量的配置
1.文件配置
hdfs-site.xml配置如下属性:
<property>
<name>dfs.replication</name>
<value>3</value> #默认是3
</property>
2.命令方式
hdfs dfs -D dfs.replication-"value" -put test.txt /tmp/ #上传test.txt时,临时设置其副本数为value
对于已存在的HDFS的文件,修改dfs.replication属性不会生效
hdfs dfs -setrep [-R] 2 path
如上命令,指定path的内容将会修改为2个副本存储
-R:对子目录也生效
查看副本数
hdfs fsck path [-files [-blocks [-locations]]]
fsck可以检查指定路径是否正常
-files:可以列出路径内的文件状态
-files -blocks:输出文件块报告(有几个块,多少副本)
-files -blocks -locations:输出每一个block的详情
设置块(block)大小:
hdfs-site.xml配置:
<property>
<name>dfs.blocksize</name>
<value>268435456</value> #默认256MB
<description>设置HDFS块大小,单位是b</description>
</property>