HDFS
前言
课程笔记
1.HDFS定义
1. 说明:一台电脑存不下海量数据,就必须分配到多台机器上存储。
多台机器不方便管理和维护,就需要一种系统来管理多台机器的文件---分布式系统。
2. 使用场景:适合一次写入,多次读取的场景。
2. HDFS优缺点
1. 优点
1. 高容错性
数据自动保存为多副本形式,它通过增加副本的形式,提高容错性。
某个副本丢失后,它可以自动恢复
2. 适合处理大数据。
1. 数据规模:能够处理数据规模达到GB、TB、PB级别的数据。
2. 文件规模:能够处理百万规模以上的文件数量。
3. 可构建在廉价的机器上,通过多副本机制,提高可靠性。(便宜....)
2. 缺点
1. 不适合低延时数据访问——毫秒级的存储数据,是做不到的。
2. 无法高效的对大量小文件进行存储。
存储大量小文件时,会占用NameNode的内存来存储文件信息和块信息,因为NameNode的内存是有限的。所以不好。
小文件的存储的寻址时间会超过读取时间,违反了 HDFS的设计目标。
3. 不支持并发写入和文件修改,只支持追加(append),并且不允许多线程的写入。
3. HDFS架构
1. NameNode(nn):管理者
1. 管理HDFS的名称空间、配置副本策略、管理数据块(Block)映射信息、处理客户端读写请求。
2. DataNode:执行者(执行管理者的命令)
1. 存储实际的数据块、执行数据块的读/写操作。
3. Secondary NameNode:当NameNode挂掉时,并不能马上替换NameNode并提供服务
1. 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode。
2. 在紧急情况下,可辅助恢复NameNode。
4. Client:客户端
1. 文件切分——上传HDFS时,客户端将文件切分成一个一个的数据块,然后上传。
2. 与NameNode、DataNode交互。
3. 提供命令管理和访问HDFS。
4. HDFS文件块大小(面试重点☆)
1. Block在Hadoop2.x/3.x中默认大小为128MB,在Hadoop1.x中为64MB。
2. 寻址时间为传输时间的1%时,为最佳状态。(☆)
3. 思考:为什么块的大小不能设置太小或太大。
1. 太小,会增加寻址时间。
2. 太大,从磁盘传输数据时间就会大于定位这个块开始位置所需的时间。
总结:HDFS块的大小设置取决于磁盘传输速率。
5. HDFS的Shell操作(开发重点☆)
1. 语法——hadoop fs 或 hdfs dfs:帮助命令 hadoop fs -help rm
2. hadoop fs常用命令:
剪切:hadoop fs -moveFromLocal computer.txt(文件名字) /huade(HDFS上的文件目录)
拷贝:hadoop fs -copyFromLocal bigdata.txt /huade
上传:hadoop fs -put bigdata.txt /huade(生产环境惯用)
下载:hadoop fs -get /huade/computer.txt ./com.txt(生产环境惯用)
追加:hadoop fs -appendToFile a.txt /huade/b.txt(追加到文件末尾)
hadoop fs -ls /huade(显示目录信息)
hadoop fs -cat /huade/computer.txt(显示文件内容)
hadoop fs -chmod 777 /huade/computer.txt(修改文件权限)
hadoop fs -chown test:test /huade/computer.txt(修改文件权限)
hadoop fs -mkdir /xueyuan(创建目录)
hadoop fs -cp /huade/computer.txt /xueyuan(复制文件到另一个路径)
hadoop fs -mv /huade/computer.txt /xueyuan(剪切文件到另一个路径)
hadoop fs -tail /huade/computer.txt(显示一个文件的末尾1kb数据)
hadoop fs -rm /huade/computer.txt(删除一个文件)
hadoop fs -rm -r /huade(递归删除目录及目录里的内容)
hadoop fs -du -s -h /huade(统计文件夹大小信息)
hadoop fs -du -h /huade(统计文件夹大小信息)
hadoop fs -setrep 10 /huade/computer.txt (设置副本的数量)
总结
后续会一点点补充的!!!!
|