大数据技术(林子雨版)——期末复习知识点
作者:mmseoamin日期:2023-12-25


==> 大数据&云计算


大数据时代的三次信息化浪潮:[时间;标志;解决的问题;代表企业]

  • 1980年前后;个人计算机;信息处理;Intel,IBM……

    • 1995年前后;互联网;信息传输;谷歌,腾讯……

      • 2010年前后;大数据、云计算、物联网;信息爆炸;亚马逊,阿里云……

        信息技术要解决的核心问题,如何解决:

        • ③个问题:1、信息存储;2、信息处理;3、信息传输

          • ③个解决办法:1、存储设备容量的提升;2、CPU处理能力的大幅度提升;3、网络带宽的不断增加

            数据?信息?

            • 数据:构成信息的基本单位,离散的数据没有价值。

              • 信息:宏观的,(联系):信息由数据组合而成,传达给读者某个概念和方法。

                数据产生的方式:

                • 运用式系统阶段 ---> 用户原创阶段 ---> 感知式系统阶段

                  大数据发展的③个重要阶段:

                  • 1、萌芽期 [被动数据];

                    • 2、成熟期 [Web2.0、Hadoop平台的盛行];

                      • 3、大规模应用期 [数据驱动决策]。

                        大数据的特点(4V):

                        • 数据量大(volume);

                          • 数据类型繁多(variety);

                            • 处理速度快(Velocity);

                              • 价值密度低(value)。

                                大数据的影响:

                                • 对科学研究:1、实验科学;2、理论科学;3、计算科学;4、数据密集型科学。

                                  • 对思维方式:1、全样而非抽样;2、效率而非精确;3、相关而非因果。

                                    大数据关键(核心)技术:

                                    • 分布式存储 [HDFS、HBase]、

                                      • 分布式处理 [MapReduce]。

                                        大数据计算模式:

                                        • 批处理计算,运用在大规模数据中。例:MapReduce、Spark

                                          • 流计算,运用于实时计算。例:Flink、Storm、Flume、Streams

                                            • 图计算,应用于图结构的大规模数据中。例:Graphx、PowerGraph

                                              • 查询分析计算,应用于存储管理和查询。例:Hive、Cassandra

                                                云计算概念:代表了虚拟化技术为核心的,以低成本为目的,动态可扩展的网络应用基础设施。

                                                云计算的③种类型:

                                                • 公有云[阿里];

                                                  • 私有云[银行];

                                                    • 混合云。

                                                      云计算的③种服务模式:

                                                      • 基础设施即服务(IaaS)

                                                        • 平台即服务(PaaS)

                                                          • 软件即服务(SaaS)

                                                            云计算的④种关键技术:

                                                            • 1、虚拟化;2、分布式存储;3、分布式计算;4、多租户。

                                                              ⑦个特点:

                                                              • 1、动态可扩展;2、高可用性;3、较低的实验成本;4、易用性;5、高性能;6、免维护;7、安全。

                                                                云数据库采用的数据模型:

                                                                • NoSQL数据的非关系型模型 [Amazon DynamoDB的”键值“存储];

                                                                  • 关系型数据库的关系模型 [微软SQLAzure;阿里云ROS]。

                                                                    UMP(Unified MySQL Platform)采用的②种资源隔离方式:

                                                                    • 多个MySQL实例,1台电脑:用Cgroup限制MySQL进程资源;

                                                                      • 多台电脑,1个MySQL实例:在Proxy服务器端限制QPS。

                                                                        大数据、云计算、物联网之间的联系和区别:

                                                                        • 大数据:数据的存储、处理与分析;

                                                                          • 云计算:整合和优化各种IT资源,并以廉价的方式提供给用户;

                                                                            • 物联网:物物相连,应用创新,与”智慧“产品息息相关。

                                                                              • 联系:物联网是大数据的重要来源,大数据技术为物联网数据分析提供支撑;

                                                                                云计算为大数据提供了技术支持,大数据为云计算提供了用武之地;

                                                                                云计算为物联网提供了海量数据存储能力,物联网为云计算技术提供了广阔的应用空间。


                                                                                ==> Hadoop ——大数据的处理架构


                                                                                Hadoop概念:一个开源的、可运行于大规模集群上的分布式计算平台。

                                                                                ③个方面的优势:

                                                                                • 基于Java语言开发;

                                                                                  • 具有很好的跨平台特性;

                                                                                    • 可部署于廉价的计算机集群

                                                                                      ②个核心:1、分布式存储:HDFS、HBase、NoSQL;2、分布式处理的MapReduce计算模型。

                                                                                      Hadoop的⑦个特征(即Hadoop实现的目标):

                                                                                      • 高可靠性;

                                                                                        • 高效性;

                                                                                          • 高可扩展性;

                                                                                            • 高容错性;

                                                                                              • 成本低;

                                                                                                • 运行在Linux操作系统上;

                                                                                                  • 支持多语言。

                                                                                                    Hadoop的版本:2014年JDK 1.8版本的发布,对应了Hadoop 3.0的诞生。

                                                                                                    Hadoop生态系统:Ambari;Hive;Pig;Mahout;MapReduce;YARN;HDFS;HBase;Zookeeper;Sqoop;Flume。


                                                                                                    ==> HDFS ——分布式文件系统


                                                                                                    概念:相对于本地文件系统,分布式文件系统是一种通过网络,实现文件在多台主机上进行分布式文件存储的系统。[ HDFS是为大规模数据存储设计的]

                                                                                                    结构:物理上是计算机集群中的多个节点构成。

                                                                                                    • 主节点(名称节点):对目录进行创建、删除、重命名,管理从节点和文件块的映射。

                                                                                                      • 从节点(数据节点):负责数据的存储和读取。

                                                                                                        • 注意点:同一时间,只有一个客户端能获取到主节点上的契约。[即 1 Time;1 Client ;1 File ]

                                                                                                          ⑤大优势:

                                                                                                          • 1、兼容廉价的硬件设备;

                                                                                                            • 2、流数据读写[非随机访问];

                                                                                                              • 3、大数据集[TB];

                                                                                                                • 4、简单文件模型;

                                                                                                                  • 5、强大的兼容性[JVM]。

                                                                                                                    ④大劣势:

                                                                                                                    • 1、不能实时访问;

                                                                                                                      • 2、不能高效存储大量小文件;

                                                                                                                        • 3、不能多用户写入(1次写入,多次读取);

                                                                                                                          • 4、不能随机修改文件(只能进行文件的追加操作)。

                                                                                                                            核心概念——块:default :64 MB(在Hadoop 1.0版本中),每一块都作为独立单元存储。

                                                                                                                            好处:1、支持大规模文件存储;2、简化系统设计;3、适合数据备份。

                                                                                                                            命名空间——由主节点负责(元数据存储在内存内)

                                                                                                                            命名空间中——保存着两个数据结构(保存在磁盘中)

                                                                                                                            • FsImage:维护文件树和其中的文件、文件夹中的元数据。

                                                                                                                              • EditLog:记录对文件进行的所有操作。

                                                                                                                                第二名称节点的③点作用:

                                                                                                                                • ”检查点“保存主节点中的元数据;

                                                                                                                                  • 定期合并FsImage、EditLog,减少EditLog的文件大小,缩短主节点重启时间;

                                                                                                                                    • 紧急情况下恢复主节点。

                                                                                                                                      第二名称节点的工作过程:

                                                                                                                                      • 第二名称节点请求使用新的日志

                                                                                                                                        • 通过http get方式从主节点上获得 FsImage 和 EditLog ;

                                                                                                                                          • 执行 EditLog ,读 FsImage 读到内存中,合并这它们得到临时文件;

                                                                                                                                            • 通过http post方式把“检查点”回传给主节点

                                                                                                                                              • 用临时文件替换FsImage,用新的日志替换EditLog,并更新检查点时间。


                                                                                                                                                ==> HBase ——分布式数据库


                                                                                                                                                概念:HBase针对谷歌Big Table的开源实现,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,存储非结构化和半结构化的松散数据。

                                                                                                                                                HBase作为非关系型模型数据库与关系型数据库(MySQL)的对比:

                                                                                                                                                • 数据类型:唯一[未经解释的字符串] ; 丰富的数据类型和存储方式[关系模式]

                                                                                                                                                  • 数据操作:简单[插入、查询、删除等] ; 复杂[包括多表连接、主外关联等]

                                                                                                                                                    • 存储模式:面向列 ; 行模式存储

                                                                                                                                                      • 数据索引:唯一[行键] ; 多个[针对不同的列结构有多个索引]

                                                                                                                                                        • 数据维护:保留旧版本[基于HDFS] ; 旧版本被覆盖

                                                                                                                                                          • 可伸缩性:灵活横向发展 ; 扩展有限

                                                                                                                                                            数据模型总述:HBase是一个稀疏、多维度、排序的映射表。在更新时不会删除旧版本,且可对允许保留的版本数进行设置。

                                                                                                                                                            行键:数据按行键的字典存储,有三种方式:1、通过单个行键;2、一个行键的区间;3、全表扫描。

                                                                                                                                                            索引的四维坐标:行键、列族、列限定符、时间戳。

                                                                                                                                                            • 概念视图:将表视为一个稀疏、多维的映射关系。

                                                                                                                                                              • 物理视图:基于列的存储方式。

                                                                                                                                                                面向列存储③大优点:

                                                                                                                                                                • 减低输入/输出的开销;

                                                                                                                                                                  • 支持大量并发用户查询(处理速度快);

                                                                                                                                                                    • 有高的数据压缩比。

                                                                                                                                                                      功能组件③大核心:1、库函数;2、Master服务器;3、Region服务器。

                                                                                                                                                                      三层寻址:Zookeeper文件 [记录ROOT表位置] ---> ROOT表 [只能有一个Region] ---> META表 [保存了所有数据表的Region位置]。

                                                                                                                                                                      如果缓存失败怎么办? 要再次经历上述的“三级寻址”过程,重新获得最新的Region位置信息,去访问数据,并用最新的Region位置信息替换缓存中失败的信息。


                                                                                                                                                                      ==> NoSQL ——非关系数据库的统称


                                                                                                                                                                      NoSQL的③大特点:

                                                                                                                                                                      • 灵活的可扩展性;

                                                                                                                                                                        • 灵活的数据模型;

                                                                                                                                                                          • 与云计算的紧密融合。

                                                                                                                                                                            优势:可扩展强,支持超大规模数据存储;数据模型灵活,可支持Web2.0应用。

                                                                                                                                                                            劣势:缺乏数学理论基础;一般不能实现事务强一致性(ACID四性);一般不能保证数据完整性;技术尚不成熟,维护困难。

                                                                                                                                                                            应用场景:二者都有自己的目标用户群体和市场空间,都不可被替代。

                                                                                                                                                                            • 关系型数据库:应用于银行、超市、电信等需要保证事务强一致性场景,且可以进行复杂的查询分析。

                                                                                                                                                                              • NoSQL数据库:应用于互联网企业、传统企业的非关键业务(数据分析),对数据量和并发读写要求较高的场景。

                                                                                                                                                                                • 混合架构:典型例子——亚马逊。购物车的临时数据,用键值存储;订单信息存储在关系型数据库中;大量的历史订单则存在MongoDB的文件数据库。

                                                                                                                                                                                  非关系型数据库的④大类型:

                                                                                                                                                                                  • 键值数据库[Redis]:key用来定位Value,所以不能直接对Value进行索引和查询;

                                                                                                                                                                                    • 列族数据库[HBase、Big Table];

                                                                                                                                                                                      • 文档数据库[MongoDB];

                                                                                                                                                                                        • 图数据库[Neo4J]。

                                                                                                                                                                                          三大基石(CAP):C: consistency 一致性 + A: availability可用性 + P: tolerance of Network Partition分区容忍性。

                                                                                                                                                                                          • CA: 传统的关系型数据库,可扩展性差(数据都放在一台机子上)。[MySQL]

                                                                                                                                                                                            • CP: Neo4J、HBase等NoSQL数据库,在等待期间无法对外提供服务。[MongoDB、HBase]