① 冗余备份——在数据存储的过程中,对每个数据块都进行了副本备份,副本个数可以自行设置。 ② 副本存放——现在利用的策略是,以存放3个副本(dfs.replication=3)为例,在同一机器的两个节点上各备份一个副本,再在另一台机器的某个节点上存放一个副本,前者可防止当该机器的某个节点宕机使可规复数据,后者则防止当某个机器宕机时可规复数据。 ③ 宕机处理
A. 如果NameNode在预定的时间内没有收到心跳信息(默认是10min),将该DataNode从集群中移除。 B. 当HDFS读取某个数据块时,如果正好存储该数据块的某个节点宕机了,那么客户端将会在存储该数据块的其他节点上读取数据块信息。 C. 当HDFS存储数据时,如果必要存放数据的节点宕机,那么HDFS将再重新分配一个节点给该数据块,并备份宕机节点中的数据。 (4)HDFS特点
① HAFS——长处
A. 高容错性
HDFS上传的数据自动保存多个副本,通过增长副本的数量增长HDFS的容错性,如果某一个副本丢失,那么HDFS将复制其他节点上的副本。
B. 适合大规模数据的处理
HDFS能够处理上百万的GB、TB甚至PB级别的数据,数量非常大。
C. 流式数据访问
流式数据访问·HDFS以流式数据访问模式存储超大文件,有着“一次写入,多次读取”的特点,
文件一旦写入,不能修改,只能增长,以包管数据的同等性。
② HAFS——缺点
A. 不适合低耽误数据访问
B. 无法高效存储大量小文件
C. 不支持多用户写人及任意修改文件
3. 了解分布式计算框架——MapReduce
(1) MapReduce简介
MapReduce是Hadoop的核心计算框架,是用于大规模数据集(大于1TB)并行运算的编程模型,紧张包括Map(映射)和Reduce(规约)两个阶段。
MapReduce的核心头脑是,当启动一个MapReduce任务时,Map端将会读取HDFS上的数据,将数据映射成所必要的键值对类型并传至Reduce端。Reduce端接收Map端键值对类型的中间数据,并根据差别键进行分组,对每一组键雷同的数据进行处理,得到新的键值对并输出至HDFS。 (2) MapReduce工作原理
一个完整的MapReduce过程包罗数据的输入与分片、Map阶段数据处理、Shuffle&Sort阶段数据整合、Reduce阶段数据处理、数据输出等阶段。 ① 根据设置的分片大小划分文件,得到一到多个文件块,一个文件块对应一个Map
② 针对所有键雷同的数据,对其值进行整合
③ 整合后的数据传送到Reduce端处理
图:
(3)了解HDFS
① 读取输入数据
从HDFS分布式文件系统中读取的,根据所设置的分片大小对文件重新分片(Split)。 ② Map阶段
数据将以键值对的情势被读入,键的值一样平常为每行首字符与文件最初始位置的偏移量,即中间所隔字符个数,值为该行的数据记录。
根据具体的需求对键值对进行处理,映射成新的键值对,将新的键值对传输至Reduce端。 ③ Shuffle&Sort阶段
将同一个Map中输出的键雷同的数据先进行整合,减少传输的数据量,并且在整合后将数据按照键进行排序。 ④ Reduce阶段
针对所有键雷同的数据,对数据进行规约,形成新的键值对。
(1) YARN简介
① YARN是Hadoop的资源管理器,提交应用至YARN上执行可以提高资源在集群的利用率,加快执行速率。
② Hadoop YARN的目的是使得Hadoop数据处理能力超越MapReduce。
③ YARN的另一个目的就是拓展Hadoop,使得YARN不仅可以支持MapReduce计算,而且还可以很方便地管理如Hive、HBase、Pig、Spark/Shark等组件的应用程序。 (2)YARN的基本架构和任务流程
A. YARN的基本构成结构 YARN紧张由ResourceManager、NodeManager、ApplicationMaster和Client Application这4部门构成。
图: