大数据技术原理与应用(复习)

2023-10-27

大数据

第一章

  1. 大数据的四个基本特性(p8)--4V

数据量大(Volume)

数据类型繁多(Variety)

处理速度快(Velocity)

价值密度低(Value)

 

  1. 举例说明大数据的关键技术(p16)

数据采集与预处理:利用ETL工具将分布在异构数据源中的数据抽取到临时中间层,最后加载到数据仓库或数据市集中成为联机分析处理、数据挖掘的基础。

 

数据存储和管理:利用分布式文件系统、数据库等,实现对结构化、半结构化和非结构化海量数据的存储和管理。

 

数据处理与分析:利用分布式并行编程模型和计算机框架和数据挖掘算法等实现对海量数据的处理和分析,对分析结果进行可视化呈现。

 

数据安全和隐私保护:构建数据安全体系和隐私数据保护体系,有效保护数据安全和个人隐私。

 

  1. 详细阐述大数据、云计算和物联网三者之间的区别和联系(p27)

区别:大数据侧重于对海量数据的存储、处理和分析,从海量数据中发现价值,服务于生产和生活;云计算旨在整合和优化各种IT资源,并通过网络以服务的方式廉价的提供给用户;物联网的发展目标是实现“物物相连”,应用创新是物联网发展的核心。

 

联系:整体上看,大数据、云计算、物联网这三者是相辅相成的。大数据根植于云计算,大数据分析的很多技术都来自于云计算,云计算的分布式数据存储和管理系统提供了海量数据的存储和管理能力。分布式并行处理框架MapReduce提供了海量数据分析能力。反之,大数据为云计算提供了用武之地。物联网的传感器源源不断产生的大量数据,构成了大数据的重要数据来源,没有物联网的飞速发展,就不会带来数据产生方式的变革,大数据时代也不会这么快就到来。同时,物联网需要借助云计算和大数据技术,实现物联网大数据的存储、分析和处理。

 

第二章

1.试述Hadoop有那些特性(p30)

①高可靠性:采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。

②高效性:作为并行分布式计算机平台,Hadoop采用分布式存储和分布式处理两大核心技术,能够高效的处理PB级数据。

③高可扩展性:Hadoop的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上。

④高容错性:采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配。

⑤成本低:Hadoop采用廉价的计算机集群。

⑥运行在Linux操作系统上。Hadoop是基于Java开发的,可以较好的运行在Linux操作系统上。

⑦支持多种编程语言。Hadoop上的应用程序也可以使用和其他语言编写,如c++。

 

2.试述Hadoop生态系统以及每个部分的具体功能(p32)

①HDFS:具有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点。HDFS在访问应用程序数据时,可以具有很高的吞吐率,因此对于超大数据集的应用程序而言,选择HDFS作为底层数据存储系统是较好的选择。

②HBase:HBase具有良好的横向扩展能力,可以通过不断增加廉价的商用服务器来提高存储能力。

③MapReduce:是一种编程模型,用于大规模数据集的并行运算。将复杂的运行于大规模集群上的并行计算过程高度抽象为函数Map和Reduce,允许用户在不了解分布式系统底层细节的情况下开法并行应用程序,并将其运行于廉价的计算机集群上,完成海量数据的处理。

④Hive:用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。

⑤Pig:是一种数据流语言和运行环境,适用于Hadoop和MapReduce平台来查询大型半结构化数据。Pig大大简化了Hadoop常见的工作任务,在MapReduce基础上创建了更简单抽象的过程语言,为Hadoop应用程序提供了一种更加接近结构查询语言的接口。

⑥Mahout:提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷的创建智能应用程序。

⑦ZooKeeper:高效可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。

⑧Flume:支持在日志系统中定制各类数据发送方,用于收集数据。同时,Flume提供对数据进行简单处理并写到各种数据接收方的能。

⑨Sqoop:用来在Hadoop和关系数据库之间交换数据,可以改进数据的互操作性。

⑩Ambari:基于Web的工具,支持Apache Hadoop集群的安装、部署、配置和管理。

 

3.试列举单机模式和伪分布模式的异同点

一、相同点:

1、运行机器数相同

单机(非分布式)模式与伪分布式都是在一台单机上运行。

二、不同点:

1、分布式文件系统不同

1)、单机(非分布式)模式,没有分布式文件系统,而是直接读写本地操作系统的文件系统。

2)、伪分布式用不同的Java进程模仿分布式运行中的各类结点: (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode)。

2、启动进程不同

 

1)、单机(非分布式)模式下,Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。

 

2)、伪分布式模式下,Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进程都在同一台机器上运行,是相互独立的Java进程。

 

第三章

  1. 试述HDFS中的名称节点和数据节点的具体功能(p50)

在HDFS中,名称节点负责管理分布式文件系统的命名空间,保存了两个核心的数据结构(FsImage和EditLog)。名称节点记录了每个文件中各个块所在的数据节点的位置信息,但是并不持久化地存储这些信息,而是在系统每次启动时扫描所有数据节点并重构,得到这些信息。

数据节点是分布式文件系统HDFS地工作节点,负责数据地存储和读取,会根据客户端或者名称节点地调度来进行数据的存储和检索,并且向名称节点定期发送自己所储存的块的列表信息。每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中。

 

  1. HDFS只设置唯一一个名称节点,在简化系统设计的同时也带来了一些明显的局限性,请阐述局限性具体表现在哪些方面。

①命名空间的限制:名称节点是保存在内存中的,因此名称节点能够容纳对象的个数会受到内存空间的大小的限制。

②性能的瓶颈:整个分布式文件系统的吞吐量受限于单个名称节点的吞吐量。

③隔离问题:由于集群中只有一个名称节点,只有一个命名空间,因此无法对不同应用程序进行隔离。

④集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群变得不可用。

 

  1. 试述HDFS的冗余数据保存策略

采用了多副本方式多数据进行存储。即先在集群内挑选一台磁盘不太满、CPU不太忙的数据节点作为第一个副本存放点;选取不同的机架的数据节点作为第二副本存放点;选择与第一副本存放点同机架的不同节点作为第三副本存放点;第四副本存放点从集群中随机挑选节点。

 

  1. 数据复制主要在数据写入和数据恢复的时候发生,HDFS数据复制使用流水线复制的策略,试阐述该策略细节

每个块都会向HDFS集群中的名称节点发出写请求,名称节点会返回一个数据节点列表给客户端,客户端将数据写入列表中第一个数据节点时,同时把列表传给第一个节点;第一个节点在接收到数据写入本地的同时,会把自己已经接收到的数据传给第二个数据节点,同时第二个数据节点接收到数据时,会在写入的同时将数据发送给第三个节点,以此类推。列表中的多个数据节点形成一条数据复制的流水线,最后,当文件写完时,数据复制也同时完成了。

 

  1. 阐述HDFS在不发生故障的情况下读文件的过程(p57)

 

  1. 客户端通过FileSystem.open()打开文件,调用open()方法后DistributedFileSystem会

创建输入流FSDataInputStream;

2) 输入流通过远程调用名称节点,获得文件开始部分数据块的保存位置;

3) 获得输入流后,客户端调用read()方法开始读取数据,输入流选择距离客户端最近的数据节点建立连接并读取数据;

4) 数据从该数据节点读取至客户端结束时,当该数据块读取完毕时,FSDataInputStream关闭和该数据节点的连接;

5) 输入流查找下一个数据块;

6) 找到该数据块的最佳数据节点,读取数据;

7) 客户端读取完毕数据时,调用close()方法关闭输入流。

  1. 阐述HDFS在不发生故障的情况下写文件的过程

1) 客户端创建文件和输出流;

2) DistributedFileSystem通过RPC远程调用名称节点,在文件系统的命名空间中建一个新的文件,并执行检查;检查通过后,名称节点会构造一个新文件夹,并添加文件信息;远程方法调用结束后实例化FSDataOutputStream并返还给客户端,客户端通过这个输出流写入数据。

3) 客户端调用输出流的write()方法向HDFS中对应的文件写入数据;

4) 客户端写入的数据首先会被分成一个个的分包,将分包放入输出流对象的内部队列,并向名称节点申请若干个数据节点,然后通过流水线复制策略打包成数据包发送出去;

5) 为保证所有数据节点的数据都是准确的,需要接收到数据的数据节点向发送者发送“确认包”,当客户端收到应答时,将对应的分包从内部队列移除。不断执行3~5直至数据写完;

6) 客户端调用close()方法关闭输出流,当输出流对象内部队列中的分包都收到应答后,通知名称节点关闭文件,完成一次正常的写文件过程。

 

第四章

  1. 试阐述HBase和传统关系数据库的区别。

区别

传统关系数据库

HBase

数据类型

关系模型

数据模型

数据操作

丰富的操作,如插入、删除、更新、查询等,涉及复杂的多表连接

简单的插入、查询删除、清空等,不存在复杂的表和表之间的关系

存储模式

基于行模式存储,元组或行会被连续地存储在磁盘页中

基于列存储地,每个列族都由几个文件保存不同列族地文件是分离的

数据索引

针对不同列构建复杂的多个索引

只有一个行键索引

数据维护

更新操作会用最新的当前值去替换记录中原来的“旧”值,旧值被覆盖后就不会再存在

更新操作不会删除数据的旧的版本,而是生成一个新的版本,旧的版本依然保留

可伸缩性

很难实现横向扩展,纵向扩展地空间也比较有限

轻易地通过在集群中增加或减少硬件数量来实现性能的伸缩

 

 

  1. 试述HBase各功能组件及其作用。

库函数:链接到每个客户端。
一个Master主服务器:负责管理和维护HBase表的分区信息,负责维护和管理Region服务器列表及Region服务器,处理模式变化。
许多个Region服务器:是Hbase中最核心的模块,负责维护分配给自己的Region,并相应用户的读写请求。

 

  1. 试述HBase的三层结构中各层次的名称和作用。

层次

名称

作用

第一层

ZooKeeper

记录了-Root-表地位置信息

第二层

-Root-表

记录了.META.表的Region位置信息,-Root-表只能有一个Region。通过-Root-表就可以访问.META.表中的数据

第三层

.META.表

记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有用户数据表的Region位置信息

 

 

 

 

  1. 试述HBase系统基本架构及其每个组成部分的作用。

客户端:包含访问Hbase的接口,同时在缓存中维护已经访问过的Region位置信息,用来加快后续数据访问过程。

Zookeeper服务器:帮助维护当前的集群中机器的服务状态,帮助选出一个“总管”,即保证在任何时刻总有唯一一个Master在运行。

Master:主服务器Master主要负责表和Region的管理工作。管理用户对表的增删改查操作;实现Region服务器之间的负载平衡;负责重新调整Region的分布;对发生故障失效的Region服务器上的Region数据进行迁移。

Region服务器:负责维护分配给自己的Region,响应用户的读写请求。

 

第五章

  1. 比较NoSQL数据库和关系数据库的优缺点。(p101)

 

 

  1. 试述NoSQL数据库的四大类型。

键值数据库:使用一个哈希表,表中有一个特定的Key和一个指针指向特定的Value,Key可以用来定位Value,即存储和检索具体的Value。

列族数据库:采用列族数据模型,数据库由多行构成,每行数据包括多个列族,不同行可以拥有不同数量的列族,属于同一列族的数据会被存放在一起。

文档数据库:文档作为最小单位,文档以某种标准化格式封装并对数据进行加密。

图数据库:使用图作为数据模型来存储数据。

 

  1. 试述键值数据库、列族数据库、文档数据库和图数据库的适用场合和优缺点。

 

 

  1. 试述CAP理论的具体含义。

C(Consistency):一致性,分布式环境中,多点的数据是一致的。

A(Availability):可用性,指能够快速获取数据,可以在确定的时间内返回操作结果。

P(Tolerance of Network Partition):分区容忍性,指出现网络分区的情况时,分离的系统也能正常运行。

 

  1. 试述数据库的ACID四性的含义。

原子性指事务必须是原子控制单元,对于其数据修改,要么全部执行,要么全部不执行。

一致性指事务在完成时,必须使所有的数据都保持一致状态。

隔离性指由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。

持久性指完成事务后,它对于系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持。

 

第六章

  1. 云数据库有哪些特性。(p117)

动态可扩展、高可用性、较低的使用代价、易用性、高性能、免维护、安全。

 

  1. 试述UMP系统的组件及其具体作用。(p123)

Controller服务器:向UMP集群提供各种管理服务,实现集群成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等功能。

Web控制台:向用户提供系统管理界面。

Proxy服务器:向用户提供访问MySQL数据库的服务;除了数据路由的基本功能外,Proxy服务器中还实现了屏蔽MySQL实例故障、读写分离、分库分表、资源隔离、记录用户访问日志等。

Agent服务器:管理每台物理机上的MySQL实例,执行主从切换、创建、删除、备份、迁移等操作,同时还负责收集和分析MySQL进程的统计信息、慢查询日志和bin-log。

日志分析服务器:存储和分析Proxy服务器传入的用户访问日志,并支持实时查询一段时间内的慢日志和统计报表。

信息统计服务器:定期将采集到的用户的连接数、QPS数值以及MySQL实例的进程状态用RRDtool进行统计。

愚公系统:是一个全量复制结合bin-log分析进行增量复制的工具,可以实现在不停机的情况下动态扩容、缩容和迁移。

 

第七章

  1. MapReduce计算模型的核心是Map函数和Reduce函数,试述这两个函数各自的输入、输出及处理过程。

Map函数的输入为分布式文件系统的文件块,这些文件快的格式是任意的。Map函数将输入的元素转换成<key, value>形式的键值对,键和值的类型也是任意的。

Reduce函数的输入是Map函数输出的结果即中间结果,其任务是将输入的一系列具有相同键的键值对以某种方式组合起来,输出处理后的键值对,输出结果会合并成一个文件。

 

  1. 试述MapReduce的工作流程(需要包括提交任务、Map、Shuffle、Reduce的过程)。

1) MapReduce框架使用InputFormat模块做Map前的预处理,然后将输入文件切分为逻辑上的多个InputSplit。

2) 通过RecordReader根据InputSplit中的信息来处理InputSplit中的具体记录,加载数据并转换为适合Map任务读取的键值对,输入给Map任务。

3) Map任务会根据用户自定义的映射规则,输出一系列的<key, value>作为中间结果。

4) Shuffle:对Map的输出进行一定的分区、排序、合并、归并等操作,得到<key,value-list>形式的中间结果,再交给对应的Reduce进行处理。

5) Reduce以一系列<key, value-list>中间结果作为输入,执行用户定义的逻辑,输出结果给OutputFormat模块。

6) OutputFormat模块会验证输出目录是否存在以及输出结果类型是否符合配置文件中的配置类型,如果都满足,就输出Reduce的结果到分布式文件系统。

 

  1. 早期的HDFS,其默认块Block大小为64MB,而较新的版本默认为128MB,采用较大的模块具有什么影响和优缺点。

采用较小的块,说明map任务较多,而创建多个map任务进程需要耗费大量时间。
块的大小设置主要从以下考虑:减少磁盘寻道时间、减少Namenode内存消耗、Nap崩溃问题、监管时间问题、问题分解问题、约束Map输出。

 

第八章

  1. 请描述HDFS HA架构组成组件及其具体功能。

HA架构中,一般设置了两个名称节点。一个为活跃的名称节点,负责对外处理所有客户端的请求;一个为待命的名称节点,作为备用节点,保存了足够多的系统元数据,当名称节点出现故障时提供快速恢复能力。

 

  1. 请分析HDFS HA架构中数据节点如何和名称节点保存通信。

当一个数据节点加入HDFS集群时,会把自己所包含的数据块列表报告给两个名称节点(数据节点配置时会给出两个名称节点的地址),此后通过“心跳”的方式定期执行这种告知操作,以确保名称节点的块映射是最新的。

 

  1. 请阐述MapReduce1.0体系结构中存在的问题。

1)存在单点故障问题;2)JobTracker大包大揽导致任务过重;3)容易出现内存溢出;4)资源划分不合理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据技术原理与应用(复习) 的相关文章

  • 神经网络 — 激活函数

    生物神经网络是一个复杂的网络结构 人工神经网络是借鉴生物神经网络的最基本特征 利用神经元和神经元之间的连接 从而构成的一种数学模型 生物神经元能够接收其他多个神经元的输入 当这些输入累计超过一定的阈值时 这个神经元就会被激活 产生输出 在设
  • Nginx反向代理location与proxy_pass配置规则总结

    一 location配置规则 1 匹配模式及顺序举例 location uri 开头表示精确匹配 只有完全匹配上才能生效 location uri 开头对 URL 路径进行前缀匹配 并且在正则之前 location pattern 开头表示
  • [深度学习]Semantic Segmentation语义分割之UNet(2)

    论文全称 U Net Convolutional Networks for Biomedical Image Segmentation 论文地址 https arxiv org pdf 1505 04597v1 pdf 论文代码 https

随机推荐

  • 用Flutter写一个单例

    在Flutter中创建单例可以使用Dart语言中的静态变量和工厂方法的组合来实现 下面是一个示例代码 class MySingleton 静态变量 static final MySingleton singleton MySingleton
  • PL/SQL 怎么判断两个结果集是否相等

    数据库服务器 Oracle 现在有两个结果集 A1 Cause Rate UEG 2000 GYU 1900 NBU 2900 CET 3000 A2 Cause Rate UEG 2000 GYU 1900 NBU 2900 CET 30
  • png lib error bad parameters to zlib

    目录 1 问题描述 2 问题分析 3 解决方案 3 1 解决方法一 3 2 解决方法二 1 问题描述 在 Linux ubuntu 编译 PNG 库时 出现了 png lib error bad parameters to zlib 错误
  • Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用

    转载请注明本文出自xiaanming的博客 http blog csdn net xiaanming article details 26810303 请尊重他人的辛勤劳动成果 谢谢 大家好 差不多两个来月没有写文章了 前段时间也是在忙换工
  • Elasticsearch 部署以及插件安装(win7)

    Elasticsearch 部署以及插件安装 win7 一 安装版本 找到对应版本 我使用的是2 3 5版本 安装包下载地址https www elastic co downloads past releases elasticsearch
  • LEAKAGE IN NANOMETER CMOS TECHNOLOGIES

    纳米CMOS管技术中的漏电流 https link springer com book 10 1007 0 387 28133 9
  • ORA-00933: SQL 命令未正确结束

    java sql SQLSyntaxErrorException ORA 00933 SQL 命令未正确结束 在数据库中语句运行完全没问题 但是在编程的时候却报这样的错误 控制台看似报一大堆异常原因可能是 1 你没逗号可能没写够 仔细检查S
  • 获取字符串长度的函数sizeof()、strlen()、length()、size()详解和区别

    在C 中计算长度的函数有四种 它们分别是sizeof size strlen str length 一 sizeof 和strlen 两者区别 1 sizeof操作符的结果类型是size t 该类型保证能容纳实现所建立的最大对象的字节大小
  • jQuery 获取 input:file 文件路径( Firefox for Ubuntu )

    在写一个小项目的时候遇到了一个问题 通过jquery获取选择的文件的路径 最开始选择的是通过 val 获取路径 但是后来发现获取到的路径有问题原始路径是 home onemue 案例 表情上传 前端 pic png获取到的路径是C fake
  • C++之萃取技术

    自从C 中引入了template后 以泛型技术为中心的设计得到了长足的进步 STL就是这个阶段杰出的产物 STL的目标就是要把数据和算法分开 分别对其进行设计 之后通过一种名为iterator的东西 把这二者再粘接到一起 设计模式中 关于i
  • 消息队列之基础知识(一)

    来自公众号 灰子学技术 欢迎关注 笔者最近在看消息队列 顺便做了整理 在学习这个知识点之前 笔者问了自己下面几个问题 什么是消息队列 为什么我们需要消息队列 消息队列有什么用 常用的消息队列有那些 以下内容 读者便从这几个方面开始说起 一
  • windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题

    在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed registry count type 1 0 vs 1 Unknown layer type的错误 如下图 这里参考网上资料汇总了几种解决方法
  • 安卓音乐播放器--侧边栏

    侧边栏学习 参考资料 http www chinatarena com Html adpeixun 201307 5251 html 还有一个参考的代码 最后自己的理解是 在scrollView中添加两个水平的视图 musicListLay
  • react中实现拖拽排序react-dnd

    dnd文档 html 拖拽排序 import React useState useRef from react import cloneDeep from lodash import styles from index less const
  • 中国工程院院士倪光南:拥抱开源 与世界协同创新

    2022年7月21日 在中国开源软件推进联盟主办 赛迪传媒 软件和集成电路 杂志社联合承办 CSDN 独家直播的 第十七届开源中国开源世界高峰论坛 上 中国工程院院士倪光南带来了 拥抱开源 与世界协同创新 的主题演讲 以下为倪光南演讲实录
  • 【uni-app】【Android studio】手把手教你运行uniapp项目到Android App

    最开始想写一个自定义背景的弹窗 因为要用到项目的好几个地方 不希望每个地方都需要引入 而且只需要放张图片 加个关闭按钮和功能按钮就行 类似这种效果 开始写的时候找了一篇博客 写的很详细 但是这个是Vue2的 uniapp实现自定义弹窗组件
  • 轴上键槽怎么标注

    百度知道 https zhidao baidu com question 1638366488494069980 html
  • MATLAB图像拼接算法及实现

    论文关键词 图像拼接 图像配准 图像融合 全景图 论文摘要 图像拼接 image mosaic 技术是将一组相互间重叠部分的图像序列进行空间匹配对准 经重采样合成后形成一幅包含各图像序列信息的宽视角场景的 完整的 高清晰的新图像的技术 图像
  • java引用ScriptEngine解析表达式实现计算器功能

    包名 import javax script 使用 String str 2 6 7 ScriptEngine se new ScriptEngineManager getEngineByName JavaScript try double
  • 大数据技术原理与应用(复习)

    大数据 第一章 大数据的四个基本特性 p8 4V 数据量大 Volume 数据类型繁多 Variety 处理速度快 Velocity 价值密度低 Value 举例说明大数据的关键技术 p16 数据采集与预处理 利用ETL工具将分布在异构数据