大数据面试总结三

本文详细解析了HDFS的分布式存储结构、主从架构、副本机制,以及Hadoop集群间的通信方式。同时讨论了MySQL事务、索引和HDFS在处理小文件、块大小设置上的特性。还比较了Spark、MapReduce、Flink和SparkStreaming在性能、容错和架构上的区别,以及HBase的数据保护措施。
摘要由CSDN通过智能技术生成
1、hdfs作为分布式存储系统,底层的实现的方式(可能不正确)

1、底层是一个分布式存储的,底层会将数据进行切分多个block块(128M),并存储在不同的节点上面,这种分布式方式有助于提高数据的可靠性护额并行度

2、底层主从架构,hdfs底层是一个主从架构,又一个节点(namenode)和多个子节点(datanode)组成,namenode负责管理文件系统的的命名空间以及文件元数据信息。datanode负责存储真实的数据块。

3、副本机制:HDFS通过复制机制(Replication)实现数据的冗余和容错性。它默认将数据块复制到多个DataNode上(通常是3个副本),以防止数据丢失。这种冗余机制提高了数据的可靠性和容错性。

4、数据流式访问HDFS支持数据的流式访问。客户端可以通过流式操作读取或写入文件,不需要一次性加载整个文件,这在处理大文件时很有优势

5、一次写入、多次读取,HDFS的设计假设数据通常是一次写入,多次读取。这使得在读取频繁的应用场景中具有高效性。

6、容错和自愈的能力:HDFS具有强大的容错和自愈能力。当某个DataNode出现故障时,HDFS能够自动将副本移动到其他健康的DataNode,保证数据的可用性。

 2、hdfs不同节点之间的通信的方式是:

hadoop集群中机架之间的通信的方式是通过rpc通信,rpc是一种远程调度协议,主要是用于分布式系统之间的远程通信,允许一个计算机程序调度另外一个地址空间的函数和过程。

3、在centos7中的解压命令是:
tar负责打包,gzip负责压缩

tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
4、mysql中的事务

在mysql中,事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作都看成一个整体,一起向系统提交或撤销,最终的结果要么是成功,要么就是失败。

5、在MySQL中什么是索引,为什么要创建索引

mysql中的索引是一种数据结构,创建索引的目的是为了加快查询的效率。

6、当问到对hadoop的理解(就是在三大组件,分别的流程,架构,原理)
7、对于此时有一万个小文件存储在hdfs上可以吗?
8、block块的大小是多少(两种版本不同,都需要知道),如何修改
9、为什么spark要比mapreduce的速度要快(spark与mapreduce的区别)                                                                                                                                                          

1、spark底层是DAG有向无关图

2、spark是基于内存的。

3、spark的粗粒度调度,对于mapreduce是细粒度调度。(粗粒度调度:指的是将整个任务所需要的资源一次性申请,细粒度调度指的是需要多少资源就申请多少资源)

10、谈谈flink与spark streaming的区别:

flink是标准的实时的处理引擎,是基于事件驱动,主要是以流为核心,然而对于spark 的RDD来说实际上就是一组小批次的RDD集合,是微批的模型,是以批为核心。

主要的区别:

1、时间机制:

spark streaming支持的时间机制有限,只支持处理时间。

flink支持流处理程序在时间上的三个定义:事件事件、摄入时间、处理时间,同时也支持watermark机制来处理滞后数据

2、容错机制

spark   streaming中可以通过开启checkpoint来保证容错,当出现问题的时候,恢复到原先checkpoint的位置继续,此时没有办法做到恰好一次处理语义。

flink是通过使用两阶段提交协议来解决这个问题的

3、架构不同:

Spark Streaming 在运行时的主要角色包括:

服务架构集群和资源管理 Master Yarn Application Master;

工作节点 Work Node Manager;

任务调度器 Driver;任务执行器 Executor

Flink 在运行时主要包含:客户端 Client、作业管理 Jobmanager、任务管理Taskmanager。

4、任务调度:

Spark Streaming 连续不断的生成微小的数据批次,构建有向无环图DAG,Spark Streaming 会依次创建 DStreamGraph、JobScheduler。

Flink 根据用户提交的代码生成 StreamGraph,经过优化生成 JobGraph,然后提交给 JobManager进行处理,JobManager 会根据 JobGraph 生成 ExecutionGraph,ExecutionGraph 是 Flink 调度最核心的数据结构,JobManager 根据 ExecutionGraph 对 Job 进行调度,根据物理执行图部署到Taskmanager上形成具体的Task执行。

11、hbase中是如何保证大量数据不丢失的?

1、HBase使用WAL(Write-Ahead Log)来保护数据的完整性。WAL是一种日志文件,它记录了所有写入操作的顺序和内容。在发生故障或崩溃时,可以使用WAL来恢复数据,确保数据的一致性和完整性。

2、提供了数据备份和恢复机制,可以将数据备份到远程存储,以防止数据的丢失或者是损坏。

3、hbase的数据备份可以通过导出和导入工具进行,将数据导出hfile格式文件,并将文件备份到远程存储。                                                                            

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值