hadoop主要概念的理解和学习_HDFS

1、概念与作用

HDFS,是一个分布式文件系统,用来解决海量数据的存储问题。

2、设计思路

1、分而治之/分块存储

(把一个大文件切分成多个小文件,每一个节点存储一部分小文件)
使用一个集群来联合存储这个文件
2、冗余存储
一个数据块存储多个副本。多个副本分散存储在多个不同的节点上。
提高副本数,有助于提高数据安全性

3、HDFS架构

HDFS集群是一个典型的主从架构(Master/Slave架构)的分布式集群,它由四部分组成,
HDFSClient、
NameNode:集群老大,主要承担管理集群的任务,掌管HDFS文件系统的元数据(目录树+文件和数据块映射数据),处理客户端读写请求,HDFS集群内部数据安全和负载均衡等。
DataNode:主要承担存储真实数据的任务,存储整个集群中所有数据块,处理真正数据读写。
Secondary NameNode,主要给namenode分担压力,降低负载(元数据的编辑日志合并)之用。

 

 

4、元数据

元数据(目录树结构及文件分块位置信息)的管理由NameNode节点承担
NameNode 是 HDFS 集群主节点,负责维护整个 HDFS 的元数据
HDFS 中的元数据分别在内存和磁盘中都存储了一份完整的内存元数据包括:
1、目录树结构FileSystem
2、文件File与切块Block之间的映射关系数据
3、每个切块Block的服务器server存储列表数据
磁盘元数据包括:
1、目录树结构
2、文件与切块之间的映射关系数据
4、文件的各个 block 的存储管理由 DataNode 节点承担。DataNode 是 HDFS 集群从节点,每一个
block 都可以在多个 DataNode 上存储多个副本(副本数量也可以通过参数设置 dfs.replication,默认
hdfs://namenode:port/dir-a/dir-b/dir-c/file.data
hdfs://bigdata02:9000/soft/hadoop-2.7.7-centos-7.tar.gz是3)
5、HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的随机修改,支持追加

5、HDFS优缺点

优点:

1)可构建在廉价机器上:通过多副本提高了可靠性,提供了容错和恢复机制

2)高容错性:数据自动保存多个副本,副本丢失后,自动恢复,增加副本,提高容错性,副本丢失,HDFS的内部机制可以自动恢复

3)适合批处理:移动计算而非数据,数据位置暴露给计算框架(引擎)

4)时候大数据处理:数据规模GB、TB、PB级别,文件规模 百万规模以上的文件梳理,节点规模 10K+ 节点规模

5)流式文件访问:一次性写入,多次读取

缺点,不适合以下操作

1)低延迟数据访问,比如毫秒级,HDFS是为了处理大型数据集分析任务的,主要是为达到高的数据吞吐量而设计的,这就可能要求以高延迟作为代价。

2)小文件存取,会占用 NameNode 大量内存 150b * 1000W = 15E,1.5G,寻道时间超过读取时间,存取大量小文件消耗大量的寻道时间,类比拷贝大量小文件与拷贝同等大小的一个大文件

3)并发写入、文件随机修改,一个文件只能有一个写者,仅支持 append,不支持修改和随机访问

6、怎么保证高效

1、机架感知,保证数据块的存放有一个最高效的策略
2、负载均衡
3、安全模式:

加载磁盘元数据(有多少文件,总共有多少数据块)
等待所有的datanode上线来汇报

4、Trash机制
5、Archeive归档解决海量小文件存储问题
6、执行流时数据访问
7、执行自动副本维护

namenode:存储和管理元数据

文件在HDFS

一个namenode要识别一个datanode宕机需要630s

 

7、搭建高可用的hadoop

8、使用shell、API方式操作HDFS

 shell操作和linux文件操作差不多

api操作思路:

1.初始化一些环境配置

2.获取会话对象

3.通过会话对象进行各种操作

4.close...

posted @ 2017-09-13 17:53  酸奶加绿茶  阅读(1301)  评论(0编辑  收藏  举报