大数据技术原理与应用复习
复习提纲
第二章
试述Hadoop的生态组件
HDFS:分布式文件系统
HBase:分布式列式数据库
MapReduce:分布式编程模型
Hive:基于Hadoop的数据仓库
Pig:数据流语言和运行环境
Zookeeper:协同工作系统
Flume:海量日志采集聚合和监控工具
Sqoop:ETL交互工具
Mathout:数据挖掘工具
Ambari:基于Web的工具
第三章
试述HDFS中的块和普通文件系统的块的区别
- 传统文件系统中,为了提高磁盘读写效率,一般以数据块为单位,而不是以字节为单位。
- HDFS中的块,默认一个块的大小为64MB,而HDFS中的文件会被拆分为许多块,每个块作为独立的存储单元进行存储。HDFS在块的大小的设计上明显要大于普通文件系统。
试述HDFS中的名称节点和数据节点的具体功能
- 名称节点负责管理分布式文件系统系统的命名空间,记录分布式文件系统中的每个文件中各个块所在的数据节点的位置信息。
- 数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索。并向名称节点定期发送自己所存储的块的列表。
试述HDFS的冗余数据保存策略
- 第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点;
- 第二个副本:放置在与第一个副本不同的机架的节点上;
- 第三个副本:放置在与第一个副本相同的机架的其他节点上;
试述HDFS是如何探测错误的发生以及如何进行恢复的
- 名称节点出错:利用远程挂载的网络文件系统NFS或者是启用第二名称节点
- 数据节点出错:数据节点定期向名称节点发送心跳信息,向名称节点报告自己的状态。名称节点会定期检查,如果宕机,就不会再发送任何I/O请求。一旦发现数据块的副本数量小于冗余因子,就会启动数据冗余复制,为他生成新的副本。
- 数据出错:客户端读取到数据会会进行校验。如果校验出错,就会请求到另一个数据节点读取该文件块,并向名称节点报告这个数据块有错,名称节点会定期检查并重新复制这个块。
第四章
阐述Hbase和传统关系数据库的区别
- 数据类型:传统为关系模型,HBase为数据模型
- 数据操作:传统拥有插入、查询、删除、更新、多表连接。而HBase有查询、插入、删除、清空,没有连接操作
- 存储模式:传统基于行存储,元组或行会被连续地存储在磁盘中。HBase基于列存储,每个列族都由不同的文件保存,不同的列族的文件是分离的
- 数据索引:传统针对不同列构建复杂的多个索引,HBase只有行键索引
- 数据维护:传统用最新的值去替换记录中原来的旧值,HBase不会删除旧版本,而是生成一个新的版本
- 可伸缩性:传统很难实现横向扩展,纵向扩展空间也有限。HBase则不同。
试述HBase各功能组件及其作用
- 库函数:链接到客户端
- 一个Master主服务器:主服务器Master主要负责表和Region的管理工作
- 许多个Region服务器:Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求
阐述HBase的分区是如何定位的
通过构建的映射表的每个条目包含的两个内容,一个是Region标识符,另一个是Region服务器标识
阐述HBase的三层结构中各层次的名称和作用
- 第一层:Zookeeper文件。记录了-ROOT-表的位置信息
- 第二层:-ROOT-表。记录了.META.表的Region位置信息。-ROOT-表只能有一个Region,通过-ROOT-表,就可以访问.META.表中的数据
- 第三层:.META.表。记录了用户数据表的Region位置信息,.META.表可以有许多个Region,保存了HBase中所有的用户数据表的Region位置信息。
阐述Hbase三层结构下,客户端如何访问到数据
首先访问Zookpeer,获取-ROOT-表的位置信息,然后访问-ROOT-表,获取.META.表的位置信息,之后访问.META.,找到所需的Region具体位于哪一个Region服务器,最后才会到该Region服务器读取数据。
试述HBase系统基本架构及其每个组成部分的作用
- 客户端:客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续访问速度
- Master:主服务器主要负责表和Region的管理工作。管理用户对表的增删改查等操作,实现不同的Region服务器的负载均衡。在Region分裂或合并后,负责重新调整Region的分布。对发生失效的Region服务器上的Region进行迁移。
- Region:Region服务器是HBase中最核心的模块,负责维护自己的Region,并响应用户读写请求。
试述HStore的工作原理
每个HStore对应了表中的一个列族的存储。每个Store包括一个MemStore缓存和若干个StoreFile文件。Memstore是排序的内存缓冲区,当用户写入数据时,系统首先要把数据放入MemStore缓存中,当MemStore缓存满时,就会刷新到磁盘中的一个StoreFile文件去,当单个StoreFile文件大小超过一定阈值时,就会触发文件分裂的操作。
试述HLog的工作原理
HBase系统为每个Region服务器配置了一个HLog文件。它是一种预写式日志,用户更新数据必须先写入日之后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷新到磁盘中。
第七章
第八章
试述YARN的组成及各部件功能
- ResourceManager:
- 处理客户端请求
- 启动/监控ApplicationMaster
- 监控NodeManager
- 资源分配与调度
- ApplicationMaster:
- 为应用程序申请资源,并分配内部任务
- 任务调度、监控与容错
- NodeManager:
- 单个节点上的资源管理
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
请分别描述Pig、Tez和Kafka的功能
- Pig:是Hadoop生态系统中的一个组件,提供了类似SQL的语言,允许用户通过编写简单的脚本来实现复杂的数据分析,而不需要编写复杂的MapReduce程序
- Tez:是DAG作业的计算框架,核心思想是将Map和Reduce两个操作进一步拆分。
- Kafka:是一种高吞吐量的分布式发布订阅消息系统。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 胡小宁的博客!