欢迎光临散文网 会员登陆 & 注册

nosql

2023-06-14 14:43 作者:闭关修炼的庸人  | 我要投稿

1.简述CAP原则的选择策略与应用场景。

CA(一致性和可用性)应用场景Oracle、SQLServer以及MySQL等。

CP(一致性和分区容错性)应用场景MongoDB、HBase以及Redis等

AP(可用性和分区容错性)应用场景CouchDB、Cassandra以及DynamoDB等

简述NoSQL数据库的四种类型。

键值对存储数据库中的数据是以键值对的形式来存储的。

文档存储数据库是用于存储和管理文档,其中文档是结构化的数据(如JSON格式)。

列式存储数据库是以列为单位存储数据,然后将列值顺序地存入数据库中。

图形存储数据库主要是应用图形理论来存储实体之间的关系信息。

简述MongoDB数据库的优势。

易用性:MongoDB没有预定义模式(predefined schema),文档的键(Key)和值(Value)无须定义固定的类型和大小,这使得添加或删除字段变得更为容易。

高性能:MongoDB数据库对文档进行了动态填充,对数据文件进行了预分配数据文件,用空间来保证性能的稳定。

高可用性:MongoDB副本所组成的一个集群,称为副本集,它提供了自动故障转移和数据冗余功能,以防止数据丢失,从而提高数据的可用性。

易扩展性:MongoDB的设计采用横向扩展,可通过分片将数据分布在集群机器中,实现负载均衡。

支持多种存储引擎:MongoDB支持多个存储引擎包括WiredTiger存储引擎、内存中存储引擎(In-Memory)和MMAPv1存储引擎。

简述MongoDB的索引六种类型。

单字段索引:在文档的单个字段上创建用户定义的升序/降序索引。

复合索引:包含多个字段的索引,一个复合索引最多可以包含31个字段。

多键索引:MongoDB会为数组中的每个元素创建索引。

地理空间索引:对地理空间坐标数据的有效查询,包含平面几何的二维索引和球面几何的二维球面索引。

文本索引:在集合中搜索字符串内容,即进行文本检索查询。

哈希索引:哈希索引是使用哈希函数来计算索引字段的哈希值。

简述Redis的应用场景

缓存、构建队列系统、排行榜、实时的反垃圾系统、数据自动过期处理、计数器应用。

简述HBase分布式数据库与传统数据库的区别。

(1)    存储模式

传统数据库中是基于行存储的,而HBase是基于列进行存储的。

(2)    表字段

传统数据库中的表字段不能超过30个,而HBase中的表字段不作限制。

(3)    可延伸性

传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储,而HBase是根据数据存储的大小去动态的增加列,列是不固定的,但是列族是固定的

简述Neo4j的数据模型。

Neo4j数据模型是由顶点(Vertex)、边(Edge)、标签(Lable)、关系类型以及属性(Property)组成的有向图。

顶点是使用圆来表示的,顶点也可称为节点(Node),所有的节点都是独立存在的。

边是使用有向箭头表示的,边也可称为关系(Relationship),关系是通过关系类型进行分组,类型相同的关系则属于同一个集合。

标签是使用label表示的,标签类似于节点的类型。

关系类型主要用于标记关系的类型,多个关系可以有相同的关系类型。

属性是使用键值对表示的每个节点或关系可以拥有一个或多个属性。

简述大数据研究的意义。

研究大数据,最重要的意义是预测。因为数据从根本上讲,是对过去和现在的归纳和总结,其本身不具备趋势和方向性的特征,但是可以应用大数据去了解事物发展的客观规律、了解人类行为,并且能够帮助我们改变过去的思维方式,建立新的数据思维模型,从而对未来进行预测和推测。

简述Hadoop版本区别。

Hadoop发行版本分为开源社区版和商业版,社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,例如比较著名的有Cloudera公司的CDH版本。

简述什么是SSH以及SSH协议解决的问题。

SSH为Secure Shell的缩写,它是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用SSH服务,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。

简述Hadoop集群部署方式以及各方式使用场景。

(1)独立模式:又称为单机模式,在该模式下,无需运行任何守护进程,所有的程序都在单个JVM上执行。独立模式下调试Hadoop集群的MapReduce程序非常方便,所以一般情况下,该模式在学习或者开发阶段调试使用。

(2)伪分布式模式:Hadoop程序的守护进程运行在一台节点上,通常使用伪分布式模式用来调试Hadoop分布式程序的代码,以及程序执行是否正确,伪分布式模式是完全分布式模式的一个特例。

(3)完全分布式模式:Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色,在实际工作应用开发中,通常使用该模式构建企业级Hadoop系统。

简述NameNode管理分布式文件系统的命名空间。

在NameNode内部是以元数据的形式,维护着两个文件,分别是FsImage镜像文件和EditLog日志文件。其中,FsImage镜像文件用于存储整个文件系统命名空间的信息,EditLog日志文件用于持久化记录文件系统元数据发生的变化。当NameNode启动的时候,FsImage镜像文件就会被加载到内存中,然后对内存里的数据执行记录的操作,以确保内存所保留的数据处于最新的状态,这样就加快了元数据的读取和更新操作。

简述HDFS Block与MapReduce split之间的联系。

Block:HDFS中最小的数据存储单位,默认是128M;Split:MapReduce中最小的计算单元,默认与Block一一对应。

两者的对应关系是任意的,可由用户控制。

简述Watch机制的特点

一次性触发、事件封装、异步发送、先注册再触发

简述Hadoop HA集群的启动步骤

1)启动集群各个节点的Zookeeper服务;

(2)启动集群各个节点监控NameNode的管理日志的JournalNode;

(3)在node-01节点格式化NameNode,并将格式化后的目录拷贝到node-02中;

(4)在node-01节点上格式化ZKFC;

(5)在node-01节点上启动HDFS;

(6)在node-01节点上启动YARN。

简述Hive的特点是什么。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

简述Hive中内部表与外部表的区别。

创建表阶段:

外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径,内部表会把数据复制或剪切到表的目录下。

删除表阶段:

外部表在删除表的时候只会删除表的元数据信息不会删除表数据,内部表删除时会将元数据信息和表数据同时删除

简述Azkaban中的project、job和flow元素的关系。

roject可以理解为Azkaban的某个项目,在项目中包含了许多需要执行的任务,即为job,各个job之间形成依赖关系,就组成了工作流flow。

简述Azkaban的组成部分,以及各个部分的功能。

Azkaban分为三部分,mysql服务器:用于存储项目、日志或者执行计划之类的信息;web服务器:使用Jetty对外部提供web服务,使用户通过WEB UI操作Azkaban系统;executor服务器:负责具体的工作流的提交、执行。

简述Sqoop导入与导出数据工作原理。

在导入数据之前,Sqoop使用JDBC检查导入的数据表,检索出表中的所有列以及列的SQL数据类型,并将这些SQL类型映射为Java数据类型,在转换后的MapReduce应用中使用这些对应的Java类型来保存字段的值,Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。

在导出数据之前,Sqoop会根据数据库连接字符串来选择一个导出方法,对于大部分系统来说,Sqoop会选择JDBC。Sqoop会根据目标表的定义生成一个Java类,这个生成的类能够从文本中解析出记录数据,并能够向表中插入类型合适的值,然后启动一个MapReduce作业,从HDFS中读取源数据文件,使用生成的类解析出记录,并且执行选定的导出方法。


nosql的评论 (共 条)

分享到微博请遵守国家法律