大数据复习

大数据复习

大数据概述

三次信息化浪潮的标志及解决的关键问题

信息化浪潮发生时间特点标志解决问题
第一次浪潮1980数字化个人计算机信息处理
第二次浪潮1995网络化互联网信息传输
第三次浪潮2010智能化物联网、云计算和大数据信息爆炸

信息科技需要解决的最核心的三个问题:信息存储、信息传输和信息处理

数据产生方式经历的三个阶段:运营式系统阶段、用户原创内容阶段、感知式系统阶段

数据发展经历的三个阶段

阶段时间内容
萌芽期上世纪90年代至本世纪初随着数据挖掘理论和数据库技术的逐步成熟,一批商业智能工具和知识管理技术开始被应用,如数据仓库、专家系统、知识管理系统等。
成熟期本世纪前十年Web2.0应用迅猛发展,非结构化数据大量产生,传统处理方法难以应对,带动了大数据技术的快速突破,大数据解决方案逐渐走向 成熟,形成了并行计算与分布式系统两大核心技术,谷歌的GFS和MapReduce等大数据技术受到追捧,Hadoop平台开始大行其道
大规模应用期2010年以后大数据应用渗透各行各业,数据驱动决策,信息社会智能化程度大幅提高

大数据特征及其含义

大数据是无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。其特征是数据容量大、处理速度快、处理速度快、数据类型多、价值密度低。

人类科学研究上先后经历的四种范式:批处理计算、流计算、图计算、查询分析计算

大数据的基本处理流程有哪几个环节:IT基础设施层、数据源层、数据管理层、数据分析层、数据平台层、数据应用层

大数据处理最核心的两大技术:分布式存储、分布式处理

大数据产业主要涉及哪几个层面:数据采集、数据存储和管理、数据处理与分析、数据隐私和安全

大数据、云计算和物联网三者之间的区别与联系:云计算、大数据和物联网代表了IT领域最新的技术发展趋势,三者相 辅相成,既有联系又有区别

大数据处理架构Hadoop

Hadoop的特性

  • 高可靠性::冗余副本机制与容错机制
  • 高效性:利用集群做计算
  • 高可扩展性:仅仅通过增加节点就可
  • 高容错性:多副本机制
  • 成本低:节点可使用低端PC机
  • 支持多平台:主要运行在Linux上,也支持Windows
  • 支持多种编程语言:如java、C、C++、python

Hadoop两个版本的本质区别:Hadoop 2.0完全不同于Hadoop 1.0,是一套全新的架构,包含HDFS Federation和YARN两个系统

实际应用时,如何选择Hadoop版本

  • 是否开源(即是否免费)
  • 是否有稳定版
  • 是否经实践检验
  • 是否有强大的社区支持

Hadoop主要组件的作用与特征

屏幕快照 2019-06-12 15.11.15.png

HDFS(Hadoop Distributed File System):由数百或数千个存储着文件数据片段的服务器组成,适合批量处理,提供了高可靠性、高扩展性和高吞吐率的数据存储服务

YARN(Yet Another Resource Negotiator):资源管理和调度器,负责集群资源的统一管理和调度,Hadoop 2.0新增系统,减轻1.0版MapReduce的处理负担,使得多种计算框架可以运行在一个集群中

MapReduce:一种编程模型,可完成基于集群的高性能并行计算,具有易于编程、高容错性和高扩展性等优点

Tez:运行在YARN之上支持DAG(有向无环图)作业的Hadoop查询处理框架,可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能

Spark:类似于Hadoop MapReduce的通用并行框架,基于内存计算(MapReduce是基于磁盘的),性能比MapReduce高一个数量级

Hive:Hadoop上的数据仓库,数据计算使用MR,数据存储使用HDFS,定义了一种类SQL查询语言HQL对数据进行处理,类似SQL但不完全相同

Pig:基于hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin进行流数据处理,相对于MapReduce,Pig是一个轻量级的编程语言,目的是响应对半结构化数据(如日志文件)的查询

Oozie:Hadoop上的工作流管理系统,将工作氛围多个工作环节,用工作流来进行管理

Zookeeper:提供分布式协调一致性服务,对集群饭不是锁进行管理

Hbase:Hadoop上的非关系型的分布式、列式存储数据库,支持对十几亿行上百万列的超大型数据库的随机读写与实时应用

Flume:一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统

Sqoop:一款开源的工具,用于在Hadoop于传统数据库之间进行数据交换

Ambari:Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控

分布式文件系统HDFS

计算机集群结构:由以交换机相连接的、内部包含多个计算机节点的多个机架组成

HDFS的体系结构组成及其特点:HDFS采用了主从结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)

HDFS名称节点包含的两个核心数据结构

  • FsImage 用于存储元数据(如访问权限、块大小、文件系统树以及文件树中所有的文件和文件夹等)
  • EditLog中记录所有针对文件的创建、删除、重命名等操作

第二名称节点的作用:第二名称节点是HDFS架构中的一个组成部分,用来保存名称节点中对HDFS元数据信息的备份,减少名称节点重启的时间,解决名称节点运行期间EditLog不断变大的问题,一般是单独运行在一台机器上

HDFS设计上的局限性

  • 不支持低延迟数据访问
  • 无法高效存储大量小文件
  • 不支持多用户写入及任意修改文件

HDFS的块及其与文件的关系:HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位,块的大小远远大于普通文件系统,可以最小化寻址开销

HDFS存储原理

  • 冗余数据保存(多副本)
  • 数据存取策略
  • 数据错误与恢复

NoSQL与云数据库

通过对比分析了解关系数据库与NoSQL数据库各自的优势与劣势

NoSQL的特点:灵活的可扩展性、灵活的数据模型、与云计算紧密结合

关系数据库的劣势:无法满足海量数据的管理需求、数据高并发的需求、高扩展性和高可用性需求

关系数据库

优势:以完善的关系代数理论作为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持

劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等

NoSQL数据库

优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等

劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术
支持,维护较困难等

NoSQL包含哪四大类型:键值数据库、列族数据库、文档数据库和图形数据库

键值数据库、列族数据库的数据模型与优缺点是什么?

  • 键值数据库

    • 优点:扩展性好,灵活性好,大量写操作时性能高
    • 缺点:无法存储结构化信息,条件查询效率较低
  • 列族数据库

    • 优点:查找速度快,可扩展性强,容易进行分布式扩展,复杂性低
    • 缺点:功能较少,大都不支持强事务一致性

文档数据库不同与键值数据库之处是什么?

  • 数据是不规则的:每一条记录包含了所有的有关“SequoiaDB”的信息而没有任何外部的引用,这条记录就是“自包含”的
  • 数据迁移很容易:因为这条记录的所有信息都包含在里面了,不需要考虑 还有信息在别的表没有一起迁移走
  • ACID保证与读写速度快:因为在移动过程中,只有被移动的那一条记录(文档)需要操作,而不像关系型中每个有关联的表都需要锁住来保证一致性

了解基于图形数据库的特点和其典型应用

  • 优点:灵活性高,支持复杂的图形算法可用于构建复杂的关系图谱
  • 缺点:复杂性高,只能支持一定的数据规模
  • 典型应用:专门用于处理具有高度相互关联关系的数据,比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题

基于CPA理论,一个分布式系统不可能同时满足哪几个特性?

一个分布式系统不可能同时满足一致性©、可用性(A)和分区容忍性§这三个需求,最多只能同时满足其中两个

ACID与BASE的基本含义是什么?

ACID:原子性、一致性、隔离性、持久性

BASE:基本可用、软状态(柔性事务)、最终一致性

BASE的“基本可用”最核心的特点是什么?

指一个分布式系统的一部分发生问题变得不可用时,其他部分仍然可 以正常使用,也就是允许分区失败的情形出现

BASE的“软状态”最核心的特点是什么?

“软状态”是指状态可以有一段时间不同步,具有一定的滞后性

NewSQL的两个显著共同特征是什么:都支持关系数据模型,都是用SQL作为其主要接口

云数据库是一种什么样的数据库?

  • 是部署和虚拟化在云计算环境中的数据库。
  • 是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法
  • 它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易
  • 具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点

MapReduce

MapReduce处理数据所采用的策略是什么:采用“分而治之”策略存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理

采用上述策略的主要目的是什么:设计理念是“计算向数据靠拢”而非“数据向计算靠拢”,因为移动数据需要大量的网络传输开销

MapReduce采用的是什么框架:其框架采用主/从(Master/Slave)架构,包括一个Master和若干个Slave,Master上运行JobTracker,Slave上运行TaskTracker

MapReduce体系结构由哪四个部分组成:Client、JobTracker、TaskTracker、Task

MapReduce模型的两个核心函数是什么?

  • Map

    1. 将小数据集进一步解析成 一批<key,value>对,输入 Map函数中进行处理
    2. 每一个输入的<k1,v1>会输出 一批<k2,v2>。<k2,v2>是计算 的中间结果
  • Reduce

    输入的中间结果<k2,List(v2)> 中的List(v2)表示是一批属于 同一个k2的value

Map处理前的数据分片(split)与HDFS数据块(block)之间是什么关系?

HDFS以block为基本单位存储数据,而MapReduce处理单位是split,split是一个逻辑概念,它只包含一些元数据信息,如数据起始位置、长度、所在节点等。它的划分方法完全由用户自己决定,一个split可跨越不同的block。每个分片会产生一个Map任务

Hive

什么是数据仓库:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

传统数据仓库面临哪些挑战

  • 无法满足快速增长的海量数据存储需求
  • 无法有效处理不同类型的数据
  • 计算和处理能力不足

Hive自身存储与处理数据吗:某种程度上可以看作是用户编程接口,本身不存储和处理数据

Hive的数据存储与处理数据分别依赖于什么:依赖分布式文件系统HDFS存储数据,依赖分布式并行计算模型MapReduce处理数据

Hive具有的什么特点导致其适用于数据仓库:采用批处理的方式处理海量数据,提供适合数据仓库操作的工具

Hive系统框架由哪三个部分组成:用户接口模块、驱动模块和源数据存储模块

Spark

什么是spark:Spark是基于内存计算的大数据并行计算框架,使用简练、优雅的Scala语言编写,基于Scala提供了交互式编程体验,可用于构建大型的、低延迟的数据分析应用程序

spark的主要特点是什么

  • 运行速度快
  • 容易使用
  • 通用性
  • 运行模式多样

Scala是什么?与Spark有什么关系?

Scala是一门现代的多范式编程语言,运行于Java平台(JVM,Java 虚拟机),并兼容现有的Java程序

Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言

Scala的优势是提供了REPL(Read-Eval-Print Loop,交互式解释器),提高程序开发效率

实际应用中,大数据处理主要包括哪三个类型?各自用什么软件更为适合?

  • 复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间。MapReduce
  • 基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间。Impala
  • 基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间。Storm
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值