Hadoop期末


若需要word文档,可④

大数据

定义

(1)对象角度看,大数据是数据规模超出传统数据库处理能力的数据的集合
(2)技术角度看,大数据是从海量数据中快速获得有价值信息的技术
(3)应用角度看,大数据是对特定数据集合应用相关技术获得价值的行为
(4)商业模式角度看,大数据是企业获得商业价值的业务创新方向
思维方式看,大数据是从第三范式中分离出来的一种科研范式

4V特征

(1)Volume(海量化):数据量大
(2)Variety(多样化):数据类型繁多
(3)Velocity(快速化):处理速度快
(4)Value(价值密度低):价值密度低

关键技术

(1)大数据采集技术
(2)大数据预处理技术
(3)大数据存储及管理技术
(4)大数据分析与挖掘技术
(5)大数据的展现与应用技术层

举例说明

批处理计算(大规模历史数据的批量处理)
流计算(流数据的实时计算)
图计算(大规模图结构数据的处理)
查询分析计算(大规模数据的存储管理和查询分析)

与物联网、云计算、人工智、5G、的关系

大数据、物联网、云计算、人工智能、5G相辅相成,谁也离不开谁
物联网、云计算、5G是大数据的底层架构、大数据依赖云计算处理大数据、人工智能是大数据的应用场景、5G发展落地物联网才能发展,物联网和云计算的发展则是推动大数据快速发展的主要原因

Hadoop

特点

(1)高可靠性
(2)高扩展性
(3)高效性
(4)高容错性
(5)低成本
(6)支持多种平台

组件

(1)Commeon:为Hadoop各子项目提供各种工具,其他模块的基础
(2)HDFS:Hadoop三大核心之一,适合部署在廉价的机器上,且能提供高吞吐量的数据访问,适合大规模数据集上的应用,分布式文件系统,采用了主从结构模型
(3)YARN:统一资源管理和调度框架,运行各种不同类型的计算框架
(4)MapReduce:分布式并行编程模型,用于大规模数据集的并行运算
(5)HBase:提高可靠性、高性能、可伸缩、实时读写、分布式、面对列族的开源数据库,一般采用HDFS作为其底层数据存储
(6)Zoookepper:是一个分布式、开放源的分布式应用程序协调框架,为大型分布式系统提供了高效且可靠的分布式协调服务
(7)Hive:基于Hadoop的数据仓库工具,实现对大规模数据的统计分析操作
(8)Pig:比Hive更灵活,学习成本稍高
(9)Sqoop:主要用来在关系数据库和Hadoop的数据双向交换

体系架构

在这里插入图片描述
NameNode和ResourceManager为Master,DataNode和NodeManager为Slave,守护进程NameNode和DataNode负责完成HDFS的工作,守护进程ResourceManager和NodeManager负责完成YARN的工作

其他组件和节点

Hadoop1.0组件
MapReduce,NameNode,DataNode

基本Hadoop集群节点
JobTracker,SecondaryNameNode,TaskTracker,DataNode

运行模式

(1)单机模式:只在一台计算机上运行,不需任何配置
(2)伪分布模式:只在一台计算机上运行,Hadoop所有守护进程都运行在一个节点上
(3)全分布模式:在多台计算机上运行,Hadoop守护进程运行在多个节点上,形成真正意义上的集群

分布式文件系统HDFS

体系结构

作为HDFS主服务节点的核心
NameNode主要完成:
(1)管理命名空间
(2)控制客户端对文件的读写
(3)执行常见的文件系统的操作
DataNode主要完成:
(1)根据客户端或者是名称节点的调度来进行数据的存储和检索
(2)负责数据的存储和读取
(3)向名称节点定期发送自己所存储的块的列表

数据的读写过程

(1)客户端生成一个FileSystem实例(DistributedFileSystem对象),并使用此实例的open()方法打开HDFS 上的一个文件。
(2) DistributedFileSystem通过RPC调用向NameNode发出请求,得到文件的位置信息,即数据块编号和所在DataNode地址。对于每一个数据块,名称节点返回保存数据块的数据节点的地址,通常按照DataNode 地址与客户端的距离从近到远排序。
(3) FileSystem 实例获得地址信息后,生成一个FSDataInputStream对象实例返回给客户端。此实例封装了一个 DFSInputStream 对象,负责存储 数据块信息和DataNode 地址信息,并负责后续的文件内容读取工作。
(4)客户端向FSDataInputStream发出读取数据的read()调用
(5) FSDataInputStream 收到read()调用请求后,其封装的 DFSInputStream 选择与第一个数据块最近的 DataNode,并读取相应的数据信息返回给客户端。数据块读取完成后,DFSInputStream负责关闭到相应DataNode的链接。
(6) DFSInputStream依次选择后续数据块的最近 DataNode 节点,并读取数据返回给客户端,直到最后一个数据块读取完毕。
(7) 客户端读取完所有数据块,然后调用FSDataInputStream的 close()方法关闭文件。

(1)创建和初始化FileSystem,客户端调用creat()创建文件
(2) FileSystem 用RPC调用名称节点,在文件系统的命名空间中创建一个新的文件。
(3) FileSystem 返回DFSOutputStream,客户端开始写入数据。
(4) DFSOutputStream 将数据分成块,写入data queue。data queue由Data Streamer 读取,并通知名称节点分配数据节点,用来存储数据块。分配的数据节点放在一个数据流管道里。Data Streamer将数据块写入数据流管道中的第一个数据节点,第一个数据节点将数据块发送给第二个数据节点,第二个数据节点将数据发送给第三个数据节点
(5) DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。
(6)客户端结束写入数据后调用close函数。
(7)通知名称节点写入完毕。

主要文件系统命令

(1)hadoop fs -ls 显示 指定的文件的详细信息
(2)hadoop fs -cat 指定的文件的内容输出到标准输出
(3)hadoop fs -mkdir 创建 指定的文件夹
(4)hadoop fs -count 统计文件(夹)数量和文件总大小信息
(5)hadoop fs -mv 移动HDFS文件到指定位置
(6)hadoop fs -cp 将文件从源路径复制到目标路径
(7)hadoop fs -rm 删除文件
(8)hadoop fs -put 从本地文件系统复制单个或多个源路径到目标文件系统
(9)hadoop fs -chmod 修改文件权限
(10)hadoop fs -chown 更改文件所有者

Secondary NameNode

特征和功能

(1)HDFS高可用性的一个解决方案,但不支持热备,使用前配置即可
(2)定期对NameNode中的内存元数据进行更新和备份
(3)默认安装在与NameNode相同的节点,但是建议安装在不同的节点,以提高可靠性

其他

(1)HDFS架构中的一个组成部分
(2)通过HTTPGET方式从NameNode上获取到FsImage和EditLog文件,并下载到本地的相应目录下
(3)用来保存名称节点中对HDFS元数据信息的备份,并减少名称节点重启的时间
(4)在一个基本的Hadoop集群中,SecondaryNameNode主要负责帮助NameNode收集文件系统运行的状态信息

高可用机制

为什么采用高可用机制?
在Hadoop1.0时代,NameNode存在单点故障问题,一旦NameNode进程不能正常工作,就会造成整个HDFS无法使用,而Hive和HBase等的数据也都存放在HDFS上,因此Hive或Hbase等框架也都无法使用,这可能导致生产集群上的很多框架都无法使用,而通过重启NameNode来进行数据恢复十分耗时

MapReduce

作业执行流程

(1)InputFormat:模块首先对输入数据进行预处理,然后将输入文件切分为逻辑上的多个InputSplit,由于InputSplit是逻辑切分而非物理切分,所以还需要通过RecordReader根据InputSplit中的信息来处理InputSplit中的具体记录,加载数据并转换为适合Map任务读取的键值对<key,value>,输入给Map任务
(2)Map:模块会根据用户自定义的映射规则,输出一系列的<key,value>作为中间结果
(3)Shuffle:对Map的输出进行一定的排序、分区、合并、归并等操作,得到<key,List(value)>形式的中间结果,再交给对应的Reduce进行处理
(4)Reduce:以中间结果作为输入,执行用户定义的逻辑,输出结果给OutputFormat
(5)OutputFormat:验证输出目录是否已经存在以及输出结果类型是否符合配置文件中的配置类型,若都满足则将其结果输出到分布式文件系统

YARN

与MapReduce1.0相比具有的优势

(1)可扩展性
(2)可用性
(3)利用率
(4)多租户

体系架构

(1)Client:提交任务、终止任务
(2)ResourceManager :
①处理客户端请求
②启动/监控ApplicationMaster
③监控NodeManager
④资源分配与调度
(3)ApplicationMaster:
①为应用程序申请资源,并分配给内部任务
②任务调度、监控与容错
③数据切分
④与NodeManager通信
(4)NodeManager:
①单个节点上的资源管理
②处理来自ResourceManager的命令
③处理来自ApplicationMaster的命令
(5)Container:是YARN分配资源的一个单位,包含内存、CPU等资源

联邦机制

联邦机制YARN Federation是为了解决何种问题

YARN的可伸缩性由ResourceManager确定,并且与节点数、活跃的应用程序、活跃的容器和心跳频率成比例。降低心跳可以提高可扩展性,但对利用率有害。基于联邦方法,通过联合多个YARN子集,可以将单个YARN集群扩展到数万个节点,联合系统将这些子集群拼接到一起,使他们成为应用程序的一个大型YARN集群,联合系统将与子集群的ResourceManager协商并为应用程序提供资源,目标是允许单个作业无缝地跨越子集群

Zookeeper

保证分布式数据原子性操作

每个数据节点都具有三种类型的版本信息
(1)version:当前数据节点数据内容的版本号
(2)cversion:当前数据节点子节点的的版本号
(3)aversion:当前数据节点的ACL版本号
在zookeeper中,version属性正是用来实现乐观锁机制中的“写入校验”的

保障数据安全——ACL

(1)权限模式:用来确定权限验证过程中使用的检验策略(IP,Digest,World,Super)
(2)授权对象:权限赋予的用户或一个指定实体
(3)权限通过权限检查后可以被允许执行的操作

Hbase

逻辑模型

HBase逻辑模型涉及的相关概念及说明

概念说明
表Table由行和列组成,列分为若干个列族
行键Row Key每一行代表一个数据对象,由行键来标识,行键会被建立索引,数据的获取通过Row Key,采用字符串
列族Column Family列的集合,一个表中的列可以分为不同的列族,列族需要在表创建时就定义好,数量不能太多,不能频繁修改-
列限定符Column Qualifier表中具体一个列的名字,列族中的数据通过列限定符来定位,列限定符不用事先定义,也不需要在不同行之间保持一致,列族被视为byte[],列名以列族作为前缀,即列族:列限定符
元素Cell每一个行键,列族和列标识符确定一个单元,存储在单元格里的数据称为单元格数据,单元格和单元数据没有特定的数据类型,以byte[]存键
时间戳Time Stamp每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳作为索引,时间戳采用64位整型,降序存储

三层结构

名称作用
Zookeeper文件记录了-ROOT-表的位置信息
-ROOT-表(HBase的系统表,用来管理普通数据)记录了.META.表的Region位置信息,-ROOT-表只能有一个Region。通过-ROOT-表,就可以访问.META.表中的数据
.META.表(HBase的系统表,用来管理普通数据)记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有用户数据表的Region位置信息

体系架构

(1)Client:维护一些缓存来加快HBase数据的访问速度
(2)Zookeeper:
存储-ROOT-表、HMaster和HRegionServer的地址;
随时感知到各个HRegionServer的健康状态;
避免HMaster单点故障问题
(3)HMaster:
管理HRegionServer实现负载均衡;
管理和分配HRegion;
实现DDL操作;
管理元数据;
权限控制
(4)HRegionServer:
存放和管理本地HRegion;
读写HDFS,管理Table中的数据;
实现数据本地化

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值