课程说明
项 | 内容 |
---|---|
课程类型 | 视屏课程 |
内容类型 | Hadoop |
课程名称 | Hadoop学习从零到一系列课程(2)—HDFS精讲 |
地址 | https://edu.youkuaiyun.com/course/detail/2240 |
时长 | 75 |
费用 | 会员免费 |
课程目录和概要
一.HDFS能做什么?
- 存储并管理PB级数据(数据量特别大)
- 处理非结构化数据(文件形式)
- 注重数据处理的吞吐量(latency延迟不敏感)
- write-once-read-many存取模式(不可修改,只能删除重建)
- 任务一个节点失效,不影响HDFS服务(分布式系统基本要求)
- HDFS可以自动完成副本的复制(数据冗余增加安全性)
二.HDFS不适合做什么?
- 存储小文件(一个文件一个块一个map,浪费内存和计算资源)
- 大量的随机读(效率太低)
- 修改文件(数据在文件中,修改只能通过删除新建)
三.HDFS主要组件及其功能
- NameNode:存储元数据,元数据保存在内存中(访问速度),保存文件、Blocks、Datanode之间的映射关系
- DataNode:存储文件内容,文件保存在磁盘,维护了Block id到Datanode本地文件的映射关系
四.HDFS中的文件
- 文件切成块,以块为单位(默认64M),每个块默认在不同机器生成3个副本
- NameNode是主节点,存储文件的元数据信息,类似索引用来指明取哪里找文件内容
- DataNode在本地文件系统中存储文件块数据以及快数据校验信息
- 可以创建、删除、移动、重命名文件,但不能修改(一个文件是最小单位不能拆分)
- NameNode只负责元数据的操作,实际文件内容的读写请求是DataNode负责,不经过NameNode
- 删除文件时,会先进入回收站(trash)中,超过设置的时间阀值后才会正式删除,释放资源
五.其他
- 分布式系统有中心化和去中心化两种,当前主流是中心化,因为便于管理控制,效率高,问题少,成本低
学习心得
HDFS是分布式文件系统,专门用来存储数据内容。
我知道了数据是用文件形式存的,文件是最小单位,不能修改只能删除,有块的概念确保单个文件大小在限定范围内,超过的拆分成多个文件,文件会自动备份,系统会自动的选择高效的方式读取需要的数据,并确保数据备份可靠。
HDFS是个可靠的文件系统,我在使用的时候需要注意小文件的问题,尽量不要做大量的随机读取。我理解随机读取就像大海捞针,并不能指定数据内容在某个或某些文件中,而是进行全局搜索。这需要遍历所有文件,HDFS的机制会导致效率应该非常低。