HDFS
一、HDFS定义
HDFS即(hadoop distributed file system),采用目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色
HDFS的使用场景:适合一次写入,多次读出的场景
二、HDFS优缺点:
1.优点:
- 高容错性 数据自动保存多个副本。通过增加副本的形式,提高容错性 某一个副本丢失以后,可以自动回复
- 适合处理大数据 数据规模大的(甚至PB),文件规模大的(上百万)
- 可以构建在廉价机器上,通过多副本机制,提高可靠性
2.缺点:
- 不适合低延时数据访问,比如毫秒级存储
- 无法高效的对大量小文件进行存储(1.存储大量小文件,会占用nameNode大量的内存用来存储文件目录和块消息,namenode内存总是有限的2.小文件存储的寻址时间会超过读取时间,违反了hdfs的设计目的)
- 不支持并发写入,文件的随机修改,(1.一个文件只能有一个写,不允许多个线程同时写 2.仅支持数据的追加,不支持修改)
三、HDFS组织架构
client: 分别访问 NameNode 和 DataNode 以获取文件的元信息及内容。
SecondaryNamenode:辅助namenode 用于定期合并fsimage和edits,生成新的fsimage,并推送给Namenode,在紧急情况下 可用于恢复namenode部分数据
磁盘的传输速率决定设置块状大小
寻址时间为传输时间的1%时,则为最佳状态
块设置太小,增加寻址时间
块设置太大,会增加磁盘传输数据
四、HDFS的shell操作
- hadoop fs 等同于hdfs dfs
- hadoop fs -help rm(查看rm用法)
hadoop fs -moveFromLocal 本地文件 hdfs文件目录
(将本地文件剪切到hdfs目录下)hadoop fs -copyFromLocal 本地文件 hdfs文件目录
(将本地文件复制到hdfs目录下等同于-put)hadoop fs -appendToFile 本地文件 hdfs文件
(将本地文件追加到hdfs文件末尾)hadoop fs -copyToLocal hdfs文件 本地文件夹
(将hdfs文件拷贝到本地文件夹等同于-get)- -ls,-cat,-chgrp,-chmod.-chown,-mkdir,-cp,-mv,-tail,-rm,-rm -r.-du都和linux命令一样
hadoop fs -setrep -w 2 /test
修改目录副本数,只是记录在namenode的元数据,是否真的有这么多取决于机器的台数