--一、HDFS基本原理--
1、HDFS采用master/slave架构。一个HDFS集群是由一个NameNode和一定数目的DataNodes组成。NameNode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。DataNode一般是一个节点一个,负责管理它所在节点上的存储。
2、数据上传过程:(1)client端发送一个添加文件到HDFS的请求(2)NameNode告诉Cilent端数据如何来分发数据块以及分发的位置(3)Client端将数据分块,并分发到DataNode中(4)DataNode按照NameNode的指导对数据块进行复制,保持冗余。
3、MapReduce框架包括一个主节点(ResourceManager)、多个子节点(运行NodeManager)和MRAppMaster(每个任务一个)共同组成。ResourceManager负责分发程序和配置信息给slave、调度任务且监控它们的执行,同时提供状态和诊断信息给作业客户机(job-client)。
--二、MR基本原理--
1、Map过程:(1)InputFormate根据输入文件产生键值对,并传送到Mapper类的map函数中;(2)map输出键值对到一个没有排序的缓冲区中;(3)当缓冲区达到给定值或者map任务完成,在缓冲内存中的键值就会被排序然后输出到磁盘中的溢出文件;(4)如果有多个溢出文件,那么就会整合这些文件到一个文件中,且是排序的;(5)这些排过序的、在溢出文件中的键值对会等待Reducer的获取。
2、Reducer:(1)Reducer获取Mapper的记录,然后产生另外的键值对,最后输出到HDFS;(2)shuffle:相同的key会被传送到同一个Reducer中;(3)当有一个Mapper完成后,Reducer就开始获取相关数据,所有的溢出文件会被排序到一个内存缓冲区中;(4)当内存缓冲区满了之后,就会产生溢出文件到本地磁盘;(5)当Reducer所有相关数据都传输完成后,所有的溢出文件就会被整合和排序;(6)Reducer中的reduce方法针对每个key调用一次;(7)Reducer的输出到HDFS。
--三、YARN(MRv2)基本原理--
1、经典的MR框架,进程受两种进程控制:一种称之为JobTracker主要进程,它协调在集群上运行的所有作业,分配要在TaskTracker上运行的map和reduce任务。Tasktracker为下级进程,它们运行分配的任务并定期向JobTracker报告进度。
2、YARN架构:ResourceManager、ApplicationMaster、NodeManager,其中ResourceManager用来代替集群管理器,ApplicationMaster代替一个专用且短暂的JobTracker,NodeManager代替TaskTracker。
3、YARN最核心的思想就是将JobTracker两个主要的功能分离成单独的组件,这两个功能为:资源管理和任务调度/监控。
4、ResourceManager有两个重要的组件:Scheduler和ApplicationsManager。Scheduler负责分配资源给每个正在运行的任务,不提供失败重启服务。ApplicationsManager负责接受任务的提交和执行应用的第一个容器,同时提供当任务失败时重启的服务。
--四、Hive基本原理--
1、Hive可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能。
2、Hive的特点:(1)支持索引,加快查询。(2)不同的存储类型,如纯文本文件,HBase中的文件。(3)将元数据保存在关系数据库中,大大减少了在查询过程中执行语义检查的时间。(4)可以直接使用存储在Hadoop文件系统中的数据。(5)内置大量用户函数UDF来操作时间,字符串和其他的数据挖掘工具,支持用户扩展UDF函数来完成内置函数无法实现的操作。(6)类SQL的查询方式,将SQL查询转换为MapReduce的Job在Hadoop集群上执行。
--五、HBase基本原理--
1、HBase是一个分布式的、基于列的开源数据库,利用Hadoop MapReduce来处理HBase中的海量数据,同时利用Zookeeper作为其协同服务。
2、HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制,保证总有一个Master运行。