【HDFS简述】

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 (设置副本的数量)

总结

后续会一点点补充的!!!!

你可能感兴趣的:(笔记,数据分析,hadoop)