【大数据存储技术】思考题及参考答案

news2025/8/12 2:18:58

文章目录

  • 第1章 绪论
    • 1. NoSQL和关系型数据库在设计目标上有何主要区别?
    • 2. 简要总结一下NoSQL数据库的技术特点。
  • 第2章 NoSQL数据库的基本原理
    • 1. 描述分布式数据管理的特点。
    • 2. 什么是CAP原理?CAP原理是否适用于单机环境?
    • 3. 简述BASE理论的具体含义。
    • 4. 在数据一致性问题上,ACID和BASE的差别是什么?
    • 5. 简述NoSQL数据库的4种类型,以及它们的数据模型。
    • 6. 布隆过滤器的优缺点是什么?如何降低布隆过滤器的误报率?
  • 第4章 HBase的基本原理与应用
    • 1. HDFS是否属于NoSQL数据库?请说明用HDFS进行数据管理存在的问题。
    • 2. HBase的特点是什么?(4条以上)
    • 3. HBase采用了什么样的数据结构?
    • 4. HBase的拓扑结构是什么?每个角色起什么作用?
    • 5. 请用拓扑结构图的形式展示HBase的典型架构
  • 第5章 HBase的高级原理
    • 1. HBase中预写日志(WAL)的作用。
    • 2. 如何理解HBase的分区拆分机制,包括哪几种方式?
    • 3. 如何理解HBase的合并,包括哪几种方式?
  • 第7章 MongoDB的原理和使用
    • 1. 描述MongoDB的集群架构(包含的角色和每个角色的作用)。
    • 2. 请用拓扑结构图的形式展示MongoDB的典型架构
    • 3. 描述MongoDB的分片机制,它支持哪几种分片策略?
    • 4. MongoDB集群的数据多副本策略?
  • 第8章 其他NoSQL数据库
    • 1. 什么是Neo4j?并对其数据模型进行详细描述。
    • 2. 描述Redis的数据类型(5种)。
    • 3. Redis数据库支持的几种拓扑架构。

第1章 绪论

1. NoSQL和关系型数据库在设计目标上有何主要区别?

  • 关系数据库
    • 优势:以完善的关系代数理论作为基础,具有数据模型、完整性约束和事务的强一致性等特点,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持。
    • 劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等。
  • NoSQL数据库
    • 优势:NoSQL数据库会采用非关系的数据模型,弱化模式或表结构、弱化完整性约束、弱化甚至取消事务机制。可能无法支持,或不能完整的支持SQL语句。目的是实现强大的分布式部署能力——一般包括分区容错性、伸缩性和访问效率(可用性)等。可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等。
    • 劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等。

2. 简要总结一下NoSQL数据库的技术特点。

  • NoSQL数据库会采用非关系的数据模型
  • 弱化模式或表结构、弱化完整性约束、弱化甚至取消事务机制
  • 可能无法支持,或不能完整的支持SQL语句
  • 目的是实现强大的分布式部署能力——一般包括分区容错性、伸缩性和访问效率(可用性)等
  • NoSQL大多是开源免费的

第2章 NoSQL数据库的基本原理

1. 描述分布式数据管理的特点。

  • 数据分片:使数据均匀分布到多个节点上,可以充分利用各个节点的处理能力、存储能力和吞吐能力。
  • 数据多副本:将数据存储为多个副本,不同的副本存储在不同节点上。
  • 一次写入多次读取:在系统底层只支持新建和追加,此时系统具有更好的顺序存储特性。
  • 分布式系统的可伸缩性:可以移除故障节点,替换新节点,实现数据的再平衡。

2. 什么是CAP原理?CAP原理是否适用于单机环境?

  • CAP是指分布式系统中的Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)。
    • Consistency(一致性)是指分布式系统中所有节点都能对某个数据达成共识。
    • Availability(可用性)可以理解为分布式系统的响应速度或响应能力。
    • Partition tolerance(分区容错性)指在部分节点故障、以及出现消息丢包的情况下,集群系统(的剩余部分)仍然可以提供服务。
  • CAP理论是指在分布式系统中,CAP三个特性不可兼得,只能同时满足两个。CAP不能兼顾,但并非绝对对立。
  • CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题.

3. 简述BASE理论的具体含义。

  • 由于CAP无法兼顾,分布式系统需要根据实际业务要求,对一致性做一定妥协,提供弱一致性保障。具体要求为BASE理论:
    • Basically Available(基本可用):核心部分或其他数据可用。
    • Soft-state(软状态/柔性事务):允许多个副本存在暂时的不一致状态。
    • Eventual Consistency (最终一致性):存在中间状态,但经历一段时间之后,最终会一致。

4. 在数据一致性问题上,ACID和BASE的差别是什么?

  • ACID是典型的强一致性要求。要求多个节点的数据副本都是一致的,强调数据的一致性.ACID是大多数NoSQL抛弃的机制,因为无法在分布式环境中保证效率。
  • BASE的最终一致性(在一些应用场景下)也可以看作NoSQL允许多个副本可以存在暂时的不同步(即异步更新)。结合CAP理论,这种设计强调PA,可以提高响应速度。

5. 简述NoSQL数据库的4种类型,以及它们的数据模型。

  • 键值对存储模式(key-value)
    • 数据模型:每行数据的结构为:<key, value>。值可以看作是一个单一的存储区域,可以是任何的类型。
  • 列存储模式(column-family)
    • 数据模型:可以看作是一种纵向切分数据的方式,不同列会放到不同的位置(节点)存储,实际软件一般也会按照行键(key)再进行横向切片和分布式存储。
  • 文档存储模式(document)
    • 数据模型:可以看作键值对模式的升级,底层存储的每行数据中仍然存在key(或者ID)和value。但值是采用JSON等格式描述的复杂数据类型。
  • 图存储模式(graph)
    • 数据模型:将数据存储为点和边的关系。

6. 布隆过滤器的优缺点是什么?如何降低布隆过滤器的误报率?

  • 布隆过滤器 的目的是检查某个元素是否存在于集合(例如数据块)中。
  • 优点是空间占用低、检索速度快
  • 缺点则是存储在一定的误报率:当布隆过滤认为某元素存在于集合时,该元素可能并不存在,但如果布隆过滤认为该元素不存在于集合,则肯定不存在。
  • 布隆过滤器的误报率,和哈希算法的个数、二进制向量的大小以及数据总量有关,一般来说二进制向量越大,误报率越低,因此需要在存储空间占用和误报率之间做权衡。
  • 降低误报率的方法:
    • 采取多个独立的哈希算法同时进行映射。
    • 增大二进制向量的大小。

第4章 HBase的基本原理与应用

1. HDFS是否属于NoSQL数据库?请说明用HDFS进行数据管理存在的问题。

  • HDFS不属于NoSQL数据库。
  • 用HDFS进行数据管理存在的问题:
    • HDFS不支持对数据的随机读写。
    • HDFS没有数据表的概念,不能提供对数据的表格化存储。
    • HDFS无法针对行数统计、过滤扫描等常见数据查询功能。

2. HBase的特点是什么?(4条以上)

  • 采用面向列加键值对的存储模式。
  • 可以实现便捷的横向扩展
  • 可以实现自动的数据分片。
  • 可以实现严格的读写一致性和自动的故障转移。
  • 可以实现对全文的检索与过滤。
  • 支持通过命令行或者Java、Python等语言来进行操作。

3. HBase采用了什么样的数据结构?

  • HBase采用的是一种面向列的键值对存储模式。HBase表中,列族是表结构的一部分,需要在建表时预先定义。
  • 列不属于表结构,HBase不会预先定义列名及其数据类型和值域等内容。每一个记录中的每个字段必须记录自己的列名(列标识符)以及值和时间戳。

4. HBase的拓扑结构是什么?每个角色起什么作用?

  • HBase采用主从式架构,包括一个主节点(Hmaster)和若干个从节点(Hregionserver)。除此之外,还需要Zookeeper来实现节点监控和容错。
    • Zookeeper是一个分布式协调服务,实现节点监控、活跃主节点选举、配置维护等功能
    • 维护元数据的总入口,以及记录Master节点的地址
    • 监控集群,如果Hregionserver出现故障,则通知Master,Master会将其负责的分区移交给其他Hregionserver
    • 当活跃Master节点故障的情况下,Zookeeper会在备用Master节点中选举一个新的活跃Master节点。
  • HMaster节点是所有Hregionserver的管理者,负责对Hregionserver的管理范围进行分配,但不负责管理用户数据表。
  • Hregionserver是用户数据表的实际管理者,在分布式集群中,数据表会进行水平分区,每个Hregionserver只会对一部分分区进行管理——负责数据的写入、查询、缓存和故障恢复等。用户表最终是以文件形式存储在HDFS上,但如何将写入并维护这些文件,则是由Hregionserver负责的。

5. 请用拓扑结构图的形式展示HBase的典型架构

在这里插入图片描述


第5章 HBase的高级原理

1. HBase中预写日志(WAL)的作用。

  • 当数据被写入memstore之前,Regionserver会先将数据写入预写日志(WAL,Writeaheadlog),预写日志一般被写入HDFS,但键值写入时不会被排序,也不会区分Region。
  • 出现节点宕机、线程重启等问题时,memstore中未持久化的数据会丢失。当Regionserver恢复后,会查看当前WAL中的数据,并将记录进行重放(replay),根据记录的表名和分区名,将数据恢复到指定的store中。
  • 在进行自动或手动的数据持久化操作之后,Regionserver会将不需要的WAL清除掉。

2. 如何理解HBase的分区拆分机制,包括哪几种方式?

  • HBase为了实现分布式大数据管理,设计了表的水平拆分机制,这是HBase实现分布式、负载均衡以及可伸缩性等机制的重要方式。
  • HBase具有三种分区方式:自动分区预分区手动拆分,都是基于行键进行分区。

3. 如何理解HBase的合并,包括哪几种方式?

  • HBase中设计了合并(compact)机制,通过读取多个小文件,处理并写入一个新的大文件的方式,实现storefile的合并。
  • 它包括MajorCompact和Minor Compact两种合并方式。

第7章 MongoDB的原理和使用

1. 描述MongoDB的集群架构(包含的角色和每个角色的作用)。

  • MongoDB集群由Mongod、Mongos和Config服务器组成。
    • 负责存储实际数据分片的设备称为Mongod(或称为Shard)。
    • Mongos服务器,作为用户访问集群的入口,负责与客户端的交互,并在内存中缓存分片数据的存储和路由信息。
    • Config服务器,负责持久化存储各类元数据和配置信息,当Mongos服务器启动时,会通过Config服务器读取相关信息并缓存到内存。

2. 请用拓扑结构图的形式展示MongoDB的典型架构

在这里插入图片描述

3. 描述MongoDB的分片机制,它支持哪几种分片策略?

  • MongoDB将数据水平切分机制称为分片(Sharding)。MongoDB支持对文档的自动分片,分片的依据是分片键(Shard Keys),分片键可以由文档的一个或多个字段构成。
  • MongoDB支持三种分片(片键)策略:升序分片、哈希分片和位置分片。
    • 升序分片会将片键进行升序排序,并在当前分片的数据量达到某个阈值时进行分片。
    • 哈希分片会将片键进行哈希运算,使数据的分布更均匀。
    • 位置分片类似于对片键的前缀或子串进行判断。

4. MongoDB集群的数据多副本策略?

  • MongoDB支持分片的多副本,多副本采用主从备份形式。MongoDB称这种机制为复制集机制。
  • 主节点(Primary节点)负责数据的写入和更新。主节点在更新数据的同时,会将操作信息写入日志,称为oplog。
  • 从节点(Secondary节点)监听主节点oplog的变化,并根据其内容维护自身的数据更新,使之和主节点保持一致(最终一致性)。

第8章 其他NoSQL数据库

1. 什么是Neo4j?并对其数据模型进行详细描述。

  • Neo4j是一个基于Java语言的开源图数据库系统。Neo4j具有强大的图处理和查询搜索能力,通过专用的Cypher语言完成各类操作。
  • Neor4j采用将数据存储为节点和边的图存储模式,其中节点表示实体、边表示实体之间的关系。

2. 描述Redis的数据类型(5种)。

  • Redis 支持的数据类型有字符串、散列、列表、集合、有序集合。

3. Redis数据库支持的几种拓扑架构。

  • 主从复制:主从结构具有读写分离,提高效率、数据备份,提供多个副本等优点。
  • 哨兵机制: 哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master 并将所有的 slave 连接到新的 master。
  • Redis集群:Redis没有使用一致性哈希机制,而是引入了哈希槽的概念。Redis 集群有16384个哈希槽,集群中所有设备平分这些哈希槽,数据则根据其行键的散列计算结果,映射到不同的哈希槽中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【附源码】计算机毕业设计JAVA校园疫情防控管理软件

【附源码】计算机毕业设计JAVA校园疫情防控管理软件 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA…

(SVN+SSH)搭建SVN并使用SSH进行免密拉取推送代码

【SVNSSH】搭建SVN并使用SSH进行免密拉取推送代码一、安装svn、openssh-server服务二、开启svn服务&#xff0c;创建测试仓库&#xff0c;并能通过账号密码拉取定义svn仓库文件位置创建仓库:acc_repo配置拉取仓库的账号密码通过账号密码拉取代码三、创建测试仓库&#xff0c;通…

云安全系列3:如何构建云安全策略

云计算拯救了很多企业&#xff0c;因为它可以迅速调整以支持更大规模的工作以及更多的在线用户。随着2023年的到来&#xff0c;宏观经济逆风聚集&#xff0c;它将更加具有吸引力&#xff0c;这归功于它更高的业务敏捷性和更优的成本效率比。Gartner 预测&#xff0c;到 2023 年…

聚观早报|腾讯员工平均月薪超8万;马斯克考虑卸任特斯拉CEO

今日要闻&#xff1a;腾讯员工平均月薪超8万&#xff1b;马斯克考虑卸任特斯拉CEO&#xff1b;iPhone双十一销量近350万部&#xff1b;暴雪将在大陆暂停多数服务&#xff1b;高德地图上线北斗卫星定位查询系统腾讯员工平均月薪超8万 据报道&#xff0c;腾讯控股11月16日发布202…

4-8岁儿童EEG微状态研究:年龄和性别的影响

大规模神经网络的超快时空动态可以通过静息状态脑电图&#xff08;EEG&#xff09;微观状态来检验&#xff0c;这代表了随时间动态演化的同步神经活动的短暂时期。在成人中&#xff0c;四种典型的微观状态已被证明可以解释静息状态脑电图的大部分地形差异。它们的时间结构依赖于…

【北亚数据恢复】硬盘出现坏道的数据恢复方案

经常使用电脑和移动硬盘的用户&#xff0c;如果察觉到电脑运行速度变得很慢&#xff0c;即使做了磁盘整理和系统重装操作后速度还是没有恢复到正常状态&#xff0c;这个时候就要小心是硬盘盘片出现坏道了。 如果这个时候用硬盘检测软件扫描硬盘就会发现扫描界面上出现很多绿块&…

SEO的了解

什么是SEO SEO&#xff0c;也就是搜索引擎优化的逻辑&#xff0c;其实是非常简单的。这就像是在大学里的学生会主席&#xff0c;你要让投票者给你更多的选票。那么&#xff0c;你需要先「自我优化」&#xff0c;无论是外表还是能力&#xff1b;此外&#xff0c;你还需获得更多…

【猿创征文】Vue3 企业级优雅实战 - 组件库框架 - 7 组件库文档的开发和构建

本系列已更新文章&#xff1a; 分享一个实用的 vite vue3 组件库脚手架工具&#xff0c;提升开发效率 开箱即用 yyg-cli 脚手架&#xff1a;快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 - 组件库框架 - 1 搭建 pnpm monorepo Vue3 企业级优雅实战 - 组件库框架…

Vue2的路由和异步请求

目录 1.路由 1.1路由的作用 1.2使用CLI3创建带路由功能的Vue2项目(案例) &#xff08;1&#xff09;创建vue项目 &#xff08;2&#xff09;选择手动设置特性&#xff08;Manually select features&#xff09; &#xff08;3&#xff09;添加路由特性选项 1.3 路由使用入门 …

企业如何利用APS排程软件建立起精益供应链与生产体系

精益供应链&#xff0c;英文称为Lean Supply Chains&#xff0c;它来源于精益管理&#xff0c;将从产品设计到顾客得到产品&#xff0c;整个过程所必需的步骤和合作伙伴整合起来&#xff0c;快速响应顾客多变的需求&#xff0c;其核心是减少、消除企业中的浪费&#xff0c;用尽…

skywalking全链路追踪

系统: centos7.6.1810 内核: 3.10.0-957.el7.x86_64 一、先下载相关的工具 官网下载地址: https://skywalking.apache.org/downloads/ openresty官网下载地址: http://openresty.org/en/download.html 下载openresty工具&#xff0c;捆绑了lua模块&#xff0c;收集日志需要用到…

Arctic——流式湖仓系统

1、Arctic介绍 Arctic 是由网易开源的流式湖仓系统&#xff0c;Arctic 在 Iceberg 和 Hive 之上添加了更多实时场景的能力&#xff0c;并且面向 DataOps 提供流批统一&#xff0c;开箱即用的元数据服务&#xff0c;让数据湖更加好用和实用。 Arctic 是搭建在 Apache Iceberg …

详解MybatisPlus数据安全

MybatisPlus数据安全 概述 ​ 存在数据库中的数据对于普通用户而言是不可见的&#xff0c;好像是藏起来了一样&#xff0c;但对于开发者&#xff0c;只要知道数据库的连接地址、用户名、密码&#xff0c;则数据不再安全&#xff1b;这也意味着&#xff0c;一旦连接数据库的配…

卡塔尔世界杯倒计时!世界杯直播在哪里观看?美家市场汇总来了!

来了来了&#xff0c;2022卡塔尔世界杯倒计时3天&#xff01;2022卡塔尔世界杯将在北京时间11月21日开始&#xff0c;持续时间28天&#xff0c;至2022年12月18日结束&#xff0c;将近一个月的赛程让众多球迷们期待不已&#xff0c;这一个月将是全世界球迷们最快乐的一个月&…

【网站架构】如何长久运行升级?高可用部署只是基础,巡检、监控、应用数据备份、日志、灰度发布

大家好&#xff0c;欢迎来到停止重构的频道。本期讨论大型网站的可用性。 高可用指的是当一部分服务器宕机时&#xff0c;网站系统仍可正常运行。 一些常用的软件服务的高可用部署方案 &#xff0c;如Tomcat、Nginx、Redis、MySQL等&#xff0c;在往期性能调优时已经有详细的介…

H5组件Canvas画电子印章

效果图 代码 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>HTML5 Canvas印章</title> <script type"text/javascript" src"https://code.jquery.com/jquery-2.2.4.js"></scri…

电科大离散数学-4-二元关系

目录 4.1 序偶和笛卡尔积 4.1.1 有序组的定义 4.1.2 笛卡儿积 4.1.3 笛卡儿积的性质 4.1.4 推广 4.2 关系的定义 4.2.1 二元关系的定义 4.2.2 二元关系的数学符号 4.2.3 枚举二元关系 4.2.4 几种重要关系 4.2.5 定义域和值域 4.2.6 n元关系 4.3 关系的表示 4.3.1…

[附源码]SSM计算机毕业设计中小型艺术培训机构管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

List<Map<String, Object>>,Map<String,List<Map<String, Object>>>多方式循环遍历

多方式循环遍历1. List<Map<String, Object>>多方式循环测试结果2. Map&#xff1c;String,List&#xff1c;Map&#xff1c;String, Object&#xff1e;&#xff1e;&#xff1e;测试结果☀️相关笔记章节&#xff1a; &#x1f339;java 1.8 stream使用总结&…

MySQL8.0优化 - 优化MySQL服务器、优化MySQL的参数、优化数据类型

文章目录学习资料优化MySQL服务器优化服务器硬件配置较大的内存配置高速磁盘系统合理分布磁盘I/O配置多处理器优化MySQL的参数innodb_buffer_pool_sizekey_buffer_sizetable_cachequery_cache_sizequery_cache_typesort_buffer_sizejoin_buffer_sizeread_buffer_sizeinnodb_flu…