有关大数据的一些知识理解

1、简要说明大数据下的5个V

Volumn-大量:形容数据的量

Velocity-高速:形容数据增长速度

Variety-多样:形容数据类型是多样的

Value-价值密度:形容数据有价值的部分是很小的

Veracity-真实:形容数据都是真实发生的

2、大数据的特点

TB、PB级别的数据

持续的高速增长

半结构化、非结构化的数据

3、列存储比行存储的优势

海量数据查询时,不存在冗余列;

在存储数据时,类型统一(一列的数据类型只有一种),避免了转换类型的操作;

对于类似于性别的列,可以采用压缩成二进制的形式,例如男 男 女 -> 110

4、在分布式环境下数据存储的可靠性保证

引入副本冗余机制策略:例如Hadoop的HDFS,就是默认三个副本。当某个副本丢失时,可以利用其它副本进行恢复

利用纠删码技术,相比于副本策略,纠删码技术可以节省更多磁盘的空间,即有更高的磁盘利用率

简单介绍纠删码技术:一种数据恢复技术,编码容错技术。实现是通过在原始数据中加入新的校验数据,使得原始数据与校验数据之间产生关联。在一定程度上,可以实现数据的恢复

两者比较:

副本冗余机制:没有计算开销、恢复效率较高、带宽占用较少

纠删码:很大的计算开销、恢复效率较低、带宽占用大、比较适用于冷数据

Hadoop3.0引入纠删码技术

5、分布式环境中如何保障数据的一致性?

在分布式中,可能存在数据不唯一的问题,例如在一个节点上修改了部分数据,但未及时同步的其它节点,此时在其它节点上读取数据会读到旧数据,导致数据读取的不一致,这也是脏数据。为此,出现了2PC、3PC、Paxos等。

简要说明

2PC(二阶段提交协议,Two-Phase Commit:简单的讲,二阶段提交将一个事务的处理过程分为了投票和执行两个阶段,其核心是对每个事务都采用先尝试后提交的处理方式。

3PC:2PC的改进,分成了三个阶段:决定阶段、准备提交阶段、执行阶段。

Paxos:类2PC算法,引入了“过半性”的投票理念,就是少数服从多数。支持分布式节点角色之间的轮换,即当协调者出现问题后,参与者可以变成协调者工作(选举机制),这样避免了单点问题(只有一个Leader时,Leader宕机)

例如ZooKeeper中使用的ZABZooKeeper Atomic Broadcast)协议就是一种改进,两种模式:消息原子广播(保证数据一致性)和崩溃恢复(避免单点问题)

6、数据库与数据仓库的比较

数据库目的是为线上系统提供实时数据,具有完整增删改查的能力,同时具有完整的事务能力。在处理时,尽量的避免冗余,提高存储和处理的效率;

数据仓库主要存储历史数据,做离线分析,存储的数据是多样化的,只支持一次写入多次查询,不强调事务的特性。在处理时,人为的制造冗余,用以提高查询的效率

7、传统关系型数据库的缺陷

1)高并发读写的瓶颈:数据操作只能达到万级别;

2)可扩展性的限制:在后期数据库进行扩展时,需要停机维护和数据迁移;

3)事务一致性的负面影响:数据库的一致性特性导致的性能的下降,在一些追求性能而不需要一致性时,一致性就带来了负面影响;

8、NoSQL数据库的优势

1)扩展性强:存储数据结构是Key-value形式,例如HBase的水平扩展性强;

2)并发性能好:具有良好的读写性能;

3)数据模型灵活:字段类型允许任意格式。

9、常见的存储结构

1hash存储:以key-value实现的存储方式,支持增、删、改以及随机读取,但不支持顺序读取,因为存储进去的key-value是通过一定的计算存储的。例如HashMap;

2B-Tree存储:支持对单条记录的增、删、盖、查操作,支持顺序查询。例如MySQL中实现的存储;

3LSMLog-Structured Merge Tree:支持对单条记录的增、删、盖、查操作,支持顺序查询;通过批量存储技术规避磁盘随机写入问题。例如HBase。

LSM设计思想:将对数据的操作保持在内存中,当数据量在内存中到达指定的容量后,批量执行操作写入磁盘,这样明显提高了写操作速度。但是在读取数据时,为了数据的正确性,需要将内存中的操作与磁盘中的数据进行合并,才能保证正确的读取。

 

 

你可能感兴趣的:(大数据学习,面试准备)