一:大数据的概念:
指无法在一定时间内使用常规软件工具进行捕捉、管理和处理的数据集合,需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的管理数据技术。
1.1:主要解决的问题:
海量数据的存储和海量数据的分析计算
海量的理解:TB PB EB 及以上 ZB YB BB NB DB等等
1.2:大数据的特点:(4v)
1>volume TB PB EB
2>velocity 处理速度 双十一
3>variety 结构化数据(数据库) 半结构化数据(文件日志)非结构化数据(视频ppt)
4>value 低价值密度(价值密度的高低与数据总量成反比)
1.3:大数据的应用场景
1、物流仓储
大数据分析
2、零售3、旅游
4、智慧交通、智慧城市
5 金融
6: 5G 人工智能
...........
二:Hadoop生态体系
2.1:hadoop基础介绍
Hadoop 是分布式系统基础框架,主要解决海量数据的存储和海量数据的分析计算问题。
案例:电信行业手机计费系统的数据存储在磁盘数据中,处理起来会有延时,所以导致停机延时,数据不存在在磁盘中,存储在内存中(内存数据库),停机延时问题得到了解决,随着内存数据的增多,分布式内存数据库得到研发。
2.2:Hadoop的优势:(4高)
1、高可靠性
hadoop底层维护多副本数据,某个机器下线,也不会导致数据的丢失
2、高扩展性
扩展服务节点方便
3、高效性
hadoop工作是并行的,加快了处理的速度
4、高容错性
能够自动将失败的任务重新分配执行
2.3:Hadoop组成:
以hadoop2为例:
MapReduce 用于计算
Yarn 资源调度
HDFS 数据存储
Common 辅助工具
2.4:HDFS架构
HDFS架构:是一个分布式文件系统,解决海量数据(很多个文件)存储问题
1、NameNode(nn):存储文件的元数据(描述真实数据的数据),一条元数据中可能包含文件名、目录结构、文件属性(生成时间、副本数、权限),以及每个文件的块数据的分布列表(所在的nd机器上),相当于数据的目录。
2:DataNode(dn):在HDFS系统上管理着真实的数据,为了数据的安全,将数据切成块的形式,分别存储的不同的节点上(服务器上),块数据的校验。
3:SecondaryNameNode:每隔一段时间帮助NameNode元数据进行备份也可以在NameNode死掉并数据丢失的情况下紧急恢复NameNode中的数据,但是注意可能会造成数据的丢失以后开发中会使用高可用集群,在此时是没有SecondaryNameNode节点。
2.5:MapReduce
是分布式编程框架,主要用于海量数据分析计算
计算过程分为两个阶段:
Map阶段(MapTask):并行业务处理
Reduce阶段(ReduceTask):对Map阶段的结果进行汇总
2.6:YARN:(重点) 调度资源
程序(作业、任务、进程)进行资源调配
Client(用户)提交作业(一个MapReduce分布式程序) Client向yarn提交任务作业,yarn进行资源的调度
1、ResourceManager :整个集群资源的老大
①处理客户端的请求
②监控NodeManager状态
④启动或监控ApplicationMaster(一个作业就有一个ApplicationMaster)
⑥资源的分配与调度
2、NodeManager 也就是单台服务器的资源老大
③ 管理单个节点上的资源
⑦ 处理来自ResourceManager的命令
11:处理来自ApplicationMaster的命令
3、ApplicationMaster(位于Container内部)
⑤是一个作业的管理者
⑨负责数据的切分,切成几份数据就会对应启动几个MapTask程序(需要container封装资源)
⑩为应用程序(MapTask)申请资源(ApplicationMaster向ResourceManager 申请多少个数量的资源,然后ResourceManager 会监控找到可以调度相应资源的NodeManager,让对应的NodeManager创建Container,如何让mapTask运行起来,就需要ApplicationMaster,ApplicationMaster会给NodeManager下指令,需要在当前NodeManager创建Container)并分配给内部任务(一个程序作业会分成多个mapTask和多个reduceTask进行处理)
12:任务的监控与容错
4、Container
⑧容器,是yarn中资源的抽象,它封装某个节点上的资源(内存、CPU、磁盘、网络)
5、MapTask
6、ReduceTask