• 大数据面试总结三


    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中的解压命令是:
    1. tar负责打包,gzip负责压缩
    2. tar
    3. -c: 建立压缩档案
    4. -x:解压
    5. -t:查看内容
    6. -r:向压缩归档文件末尾追加文件
    7. -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格式文件,并将文件备份到远程存储。                                                                            

  • 相关阅读:
    面试题汇总
    [Python从零到壹] 四十九.图像增强及运算篇之顶帽运算和底帽运算
    【洛谷】P3378 【模板】堆
    力扣 | 2582递枕头 | 取余?滑动窗口?异曲同工?
    Android开发知识学习——从Retrofit原理来看HTTP
    SpringBoot整合Mongodb
    C++笔记3(函数提高,模板)
    神经网络图像细节分析,神经网络 图像相似度
    Leetcode—515.在每个树行中找最大值【中等】
    模拟实现ATM系统——Java
  • 原文地址:https://blog.csdn.net/m0_62078954/article/details/134914744