目录
HDFS文件块大小
HDFS中的文件在物理上是分块存储,块的大小可以通过配置参数来规定,默认大小在Hadoop版本是128m。
如果寻址时间为10ms,即查找到目标block的时间为10ms
寻址时间为传输时间的1%时,则为最佳状态。因此,传输时间=10ms/0.01=1000ms=1s
而目前磁盘的传输速率普遍为100mb/s
HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;
HDFS的设置太大,从磁盘传输数据的时间会明显大于定位这个块开始位置需要的时间。导致程序在处理这块数据时,会非常的慢。
HDFS的shell操作
基本语法:hadoop fs 具体命令 or hdfs dfs 具体命令
命令大全:
- mkdir 创建目录 使用方法:hadoop fs -mkdir <paths>
- put 上传文件 使用方法:hadoop fs -put <localsrc>……<dst>
- ls 列出文件 使用方法:hadooop fs -ls <args>
- lsr 使用方法:hadoop fs -lsr<args>
- cat 使用方法:hadoop fs -cat URL 将指定文件内容输出到stdout
- get 使用方法:hadooop fs -get [-ignorecrc] [-crc] <localdst> 复制文件到本地文件系统。
- rm 使用方法:hadoop fs -rm url 删除指定的文件
- rmr 使用方法:hadoop fs -rmr URL
- chgrp 使用方法:hadoop fs -chmod[-R]GROUP URL 改变文件所属的组。使用-R将改变在目录结构下递归进行操作。
- chmod 使用方法:hadoop fs -chmod[-R] 改变文件权限。使用-R将使改变在目录结构下递归进行操作。
- copyFromLocal 使用方法:hadoop fs -copyFromLoal<localsrc>URL 除了限定源路径是一个本地文件外,与put命令相似。
- copyToLocal 使用方法:hadoop fs -copyToLocal [-ignorecrc] [-crc] URL<localdst> 除了限定目标路径是一个本地文件外,与gat命令类似
- cp 使用方法:hadoop fs -cp URL[URL……]<dest> 将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
- du 使用方法:hadoop fs -du URL[URL……] 显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
- expunge 使用方法:hadoop fs -expunge 清空回收站
- germerge 使用方法:hadoop fs -getmerge<src><localdst> 接收一个源目录和一个目标作为输入,并且将源目录中所有的文件连接成本地目标文件
- mv 使用方法:hadoop fs -mv URL[URL……]<dest> 将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同过的文件系统之间移动文件。
- setrep 使用方法:hadoop fs -setrep [-R]<path> 改变一个文件的副本系数。 [-R]选项用于递归改变目录下所有文件的副本系数
- stat 使用方法:hadoop fs -stat URL[URL……] 返回指定路径的统计信息
- tail 使用方法:hadoop fs -tail[-f] URL 将文件尾部1kb字节的内容输出到stdout。
- test 使用方法:hadoop fs -test -[ezd] URL -e 检查文件是否存在。如果存在则返回0 -z 检查文件容量是否0字节。如果是则返回0 -d如果路径是目录,则返回1;否则返回0;
- text 使用方法:Hadoop fs -test -[ezd] URL 将源文件输出为文本格式
- touchz 使用方法:hadoop fs -touchz URL 创建一个0字节的空文件