hadoop基础知识学习

上传人:我*** 文档编号:136304780 上传时间:2020-06-27 格式:PPT 页数:21 大小:1.76MB
返回 下载 相关 举报
hadoop基础知识学习_第1页
第1页 / 共21页
hadoop基础知识学习_第2页
第2页 / 共21页
hadoop基础知识学习_第3页
第3页 / 共21页
hadoop基础知识学习_第4页
第4页 / 共21页
hadoop基础知识学习_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《hadoop基础知识学习》由会员分享,可在线阅读,更多相关《hadoop基础知识学习(21页珍藏版)》请在金锄头文库上搜索。

1、Hadoop基础学习, Hadoop简介及其家族成员, Hadoop体系结构原理, Hadoop相关技术详细介绍,1.1 Hadoop简介简介及其家族成员,Hadoop一个分布式系统基础架构 名字的由来“这个名字是我孩子给一个棕黄色的大象玩具命名的。” Apache基金会旗下的开源项目 是一个能够对大量数据进行分布式处理的软件框架 其核心是Hadoop Distributed File System(HDFS)和MapReduce并行计算框架 它可以轻松的利用比较廉价的硬件计算机资源搭建自己的分布式计算平台 目前主要应用于互联网企业,用于数据分析、机器学习、数据挖掘,1.2 Hadoop家族成

2、员简介-1及其家族成员,家族成员,Core也是Common,为Hadoop其它子项目提供常用工具,主要包括FileSystem、RPC和串行化库。 Avro用于数据序列化的系统。 MapReduce是一种编程模型,用于大数据集的并行计算,可以方便编程人员在不了解分布式并行编程的情况下也可以将自己的程序运行在分布式系统上。 HDSF具有高容错性的,通过流的方式访问文件系统中的数据。该系统由数百上千个存储文件的服务器组成。 Chukwa开源的数据收集系统,用于显示、监视和分析数据结果。 Hbase是一个分布式的面向列存储的数据库,与bigtable使用相同的数据模型,一个数据行拥有一个可以选择的键

3、和任意多列,主要用于随机访问和实时读写大数据。,1.2 Hadoop家族成员简介-2及其家族成员,1.2 Hadoop家族成员简介-3及其家族成员,Hive建立在Hadoop基础上的数据仓库,支持类似传统SQL的查询语言,提供ETL工具、数据存储管理和大型数据的查询、分析能力。 Pig最大的作用就是对mapreduce算法(框架)实现了一套shell脚本 ,类似我们通常熟悉的SQL语句,在Pig中称之为Pig Latin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),Pig也可以由用户自定义一些函数对数据集进行操作。 ZooKeep

4、er是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。, Hadoop简介及其家族成员, Hadoop体系结构原理, Hadoop相关技术详细介绍,2.1 Hadoop体系结构原理-角色组成-1简介及其家族成员,Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,JobTracker,TaskTracker组成。在Master节点的服务器中会执行两套程序:一个是负责安排MapReduce运

5、算层任务的JobTracker,以及负责管理HDFS数据层的 NameNode程序。而在Worker节点的服务器中也有两套程序,接受JobTracker指挥,负责执行运算层任务的是TaskTracker程 序,与NameNode对应的则是DataNode程序,负责执行数据读写操作以及执行NameNode的副本策略。,1、NameNode :是HDFS的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块被存储到哪些数据节点上。它的功能是对内存及I/O进行集中管理。 2、DataNode:集群中每个从服务器都运行一个DataNode后台程序,后台程序负责把HDFS数据块读写到本地文件系统。

6、需要读写数据时,由NameNode告诉客户端去哪个DataNode进行具体的读写操作。 3、Secondary NameNode:是一个用来监控HDFS状态的辅助后台程序,如果NameNode发生问题,可以使用Secondary NameNode作为备用的NameNode。 4、JobTracker:后台程序用来连接应用程序与Hadoop,用户应用提交到集群后,由JobTracker决定哪个文件处理哪个task执行,一旦某个task失败,JobTracker会自动开启这个task。 5、TaskTracker:负责存储数据的DataNode相结合,位于从节点,负责各自的task。,2.1 Ha

7、doop体系结构原理-角色组成-2简介及其家族成员,2.2 Hadoop体系结构原理- HDFS体系结构简介及其家族成员,2.2 Hadoop体系结构- HDFS处理流程-1介及其家族成员,读文件过程,1)客户端(client)用FileSystem的open()函数打开文件。 2)DistributedFileSystem用RPC调用元数据节点,得到文件的数据块信息。 3)对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。 4)DistributedFileSystem返回FSDataInputStream给客户端,用来读取数据。 5)客户端调用stream的read()函数开始读

8、取数据。 DFSInputStream连接保存此文件第一个数据块的最近的数据节点。 6)Data从数据节点读到客户端(client),当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。当客户端读取完毕数据的时候,调FSDataInputStream的close函数。在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。失败的数据节点将被记录,以后不再连接。,2.2 Hadoop体系结构- HDFS处理流程-2介及其家族成员,写文件过程,1)客户端调用create()来创建文件, 2)D

9、istributedFileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件。元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。DistributedFileSystem返回FSOutputStream,客户端用于写数据。 3)客户端开始写入数据,DFSOutputStream将数据分成块,写入data queue。 4)Data queue由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点放在一个pipeline里。 Data Streamer将数据块写入pipeline中的

10、第一个数据节点。第一个数据节点将数据块发送给第二个数据节点。第二个数据节点将数据发送给第三个数据节点。 5)DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。 如果数据节点在写入的过程中失败:关闭pipeline,将ack queue中的数据块放入data queue的开始。当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除。 失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点。 元数据节点则被通知此数据块是复制块数

11、不足,将来会再创建第三份备份。 6)当客户端结束写入数据,则调用stream的close函数。此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功。 7)最后通知元数据节点写入完毕。,思想分而治之、大事化小 MapReduce通过Map(映射)和Reduce(化简)来实现大规模数据(TB级)的并行计算。,2.3 Hadoop体系结构- MapReduce-1介及其家族成员,MapReduce的运作方式就像快递公司一样。物流部门会将发往各地的包裹先运送到各地的物流分站,再由分站派出进行派送;快递员等每个包裹的用户签单 后将数据反馈给系统汇总,完成整个快递流程。在

12、这里,每个快递员都会负责配送,所执行的动作大致相同,且只负责少量的包裹,最后由物流公司的系统进行汇总。 在MapReduce运算层上,担任Master节点的服务器负责分配运算任务,Master节点上的JobTracker程序会将Map和Reduce 程序的执行工作指派给Worker服务器上的TaskTracker程序,由TaskTracker负责执行Map和Reduce工作,并将运算结果回复 给Master节点上的JobTracker。 开发人员先分析需求所提出问题的解决流程,找出数据可以并发处理的部分(Reduce),也就是那些能够分解为小段的可并行处理的数据,再将这些能够采用并发处理的需求

13、写成Map程序(Map)。,2.3 Hadoop体系结构- MapReduce-2介及其家族成员,2. Hadoop体系结构- Hbase-1家族成员,2. Hadoop体系结构- Hbase-2家族成员,HBase Client使用HBase的RPC机制与HMaster和HRegionServer进行通信,对于管理类操作,Client与HMaster进行RPC;对于数据读写类操作,Client与HRegionServer进行RPC Zookeeper Quorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到 Zoo

14、keeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的 单点问题,见下文描述 HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作: 1. 管理用户对Table的增、删、改、查操作 2. 管理HRegionServer的负载均衡,调整Region分布 3. 在Region Split后,负责新Region的分配 4. 在HRegionServer

15、停机后,负责失效HRegionServer 上的Regions迁移 HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。 HStore存储是HBase存储的核心了,其中由两部分组成,一部分是MemStore,一部分是StoreFiles。 MemStore是Sorted Memory Buffer,用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile(底层实现是HFile), 当StoreFile文件数量增长到一定阈值,会触发Compact合并操作,将多个StoreFiles合并成一

16、个StoreFile。,2. Hadoop体系结构- Hive家族成员,用户接口主要有三个:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 JDBC/ODBC 是 Hive 的JAVA,与使用传统数据库JDBC的方式类似 WebGUI是通过浏览器访问 Hive Hive 将元数据存储在数据库中,目前只支持 mysql、derby,下一版本会支持更多的数据库。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行 Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务),2. Hadoop体系结构-Chukwa族成员,1. 总体而言, chukwa 可以用于监控

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号