Data_Seven level
获赞
283
粉丝
249
关注
10
看过 TA
1164
杭州电子科技大学
2023
大数据开发工程师
IP属地:四川
我是Seven,定期分享大数据技术的实用教程和资源
私信
关注
## 15、介绍下HDFS,说下HDFS优缺点,以及使用场景?HDFS(hadoop distributed file system)优点高容错:将文件分为多个块,可以在多个节点上进行复制存储,当节点发生故障时,可以自动恢复数据高吞吐:并行处理数据块,较高的读写速度,高效进行批处理操作适应大文件存储:将文件划分为多个小块,分布在各个节点上,适合大文件存储和处理缺点:高延迟数据访问不适合小文件存储:对小文件的存储不够高效,浪费存储空间和元数据开销使用场景:大规模数据存储和计算、日志分析## 16、HDFS作用存储大规模数据集、数据的冗余和备份、高吞吐的数据访问、故障监测和恢复## 17、HDFS有哪些容错机制数据冗余和备份:将一个文件划分为多个块存储到各个节点上并做副本备份,当某一个节点出问题的时候,其他节点数据依然可用心跳机制:DN会定时向NN发送心跳信号,确保依然在工作,如果NN在某一时间段内未接收到DN的信号,则标记该DN不可用副本恢复:当某一节点发生故障时候,HDFS会自动启用副本恢复机制,将该节点上的块副本复制到其他可用的数据节点上,保证数据的完整新容错检测和恢复:HDFS会定期监测节点和块的完整性,并自动修复损坏的块## 18、HDFS的副本机制冗余存储:会将每个块的副本存储在不同数据节点上,默认的将每个块的副本数设置为3数据本地性:副本机制会尽量将数据存储在离计算节点比较近的节点上,减少网络传输副本同步:某个节点故障或者新增节点,HDFS会自动将副本从其他节点复制到新的节点上,保持副本数量和位置平衡## 19、HDFS的常见数据格式,列式存储格式和行存储格式异同点,列式存储优点有哪些?HDFS中常见的数据格式:文本文件、序列文件、Avro文件、Parquet文件、ORC文件按行存储:数据按行进行存储,一行的所有值都连续存储按列存储:数据按列进行存储,同一列的数据连续存储列示存储优点:压缩率高:由于列示存储同一列的数据类型相同,可以采用更高效的算法进行压缩,减少存储空间查询性能优异:对于特定查询需求的列,只需要读取该列的数据,提高查询性能更好的数据压缩和解压缩效率:列式存储格式在读取时候只需要解压缩需要的列数据,效率更高## 20、HDFS如何保证数据不丢失(HDFS如何保证数据一致性、保证数据安全)数据副本机制:多个副本保存在不同节点上,可从副本中恢复心跳监测:DN周期性的向NN发送心跳信号,确保还在工作状态,若长时间没有心跳信号,则NN将该故障DN山上的数据副本复制到其他节点上数据完整性校验:客户端写入数据的时候,会计算数据块的校验和,将其存储在NN上,当读取数据的时候,使用检验和检验数据是否完整容错机制:在节点故障或者网络问题时候,数据能保持一致性和可用性## 21、HDFS NN高可用如何实现?HDFS高可用机制使用了一个Active-StandBy架构,当其中一个NN处于活动状态时候,另一个NN处于备用状态;需要Active NameNode、Standby NameNode、JournalNode、ZooKeeper;JournalNode用于存储NN的编辑日志,确保在NN切换时候的数据一致性。Zookeeper用于监控和管理活动和备用NN之间的切换;## 22、HDFS的mapper和reducer的个数如何确定?reducer的个数依据是什么?1、Mapper的个数由输入数据的分片数决定,hdfs将数据文件划分为多个块,每一个块由一个mapper进行处理2、在确定reducer个数时候,需要考虑集群中的硬件资源,一般来说reducer个数不超过集群中可用计算节点数3、对于计算密集型任务,可以增加reduer的个数提高计算速度,对于IO密集型的任务,增加mapper的个数加快数据处理速度reduce个数可以由程序员自行设定,也决定了输出文件的个数;设置的数量范围为:(0.95——1.75)* 节点数量*每个节点上最大的容器数## 23、HDFS中向DN中写入数据失败怎么办?## 24、HDFS中DN怎么存储数据的?1、客户端向NN发起写请求,将需要写入的文件名、文件大小等信息告诉NN。2、NN将文件进行划分,记录数据块的副本位置信息并返回给客户端3、客户端根据副本位置信息,将数据块发送给对应的DN4、DN接收到数据块后,将数据块存储在本地磁盘上,5、DN写入数据的时候,先写入一个临时文件,一旦数据块写入完成,则转变为永久存储文件6、DN会定时向NN报告存储的数据块信息## 补充:HDFS读文件过程1、客户端访问NN,查询元数据信息,获得这个文件的数据块位置列表,返回输入流对象2、就近挑选一台DN服务器,请求建立输入流3、DN向输入流中写数据,以packet为单位来校验4、关闭输入流## 补充:300m,切片大小是128m,切几片第一片:0-128M,第二片:128-256M,第三片:256-300M每次切片的时候,都要判断切完剩下的部分是否大于块的1.1倍,大于时候,继续按照规定切块,小于1.1倍时候,将剩下的文件大小归到一个切片上去
查看12道真题和解析
0 点赞 评论 收藏
分享
从事数据开发,手写面试题5W字,涉及hadoop、zookeeper、kafka、spark、flink、clickhouse等常见的大数据中间件,文档可以后台踢我1、Hadoop特点hadoop是一个分布式计算平台,能够允许使用编程模型在集群上对大型数据集进行分布式处理hadoop的三大组件:HDFS(分布式文件存储平台)、MR(计算引擎)、YARN(资源调度平台)特点:高扩容:hadoop在集群键分发数据并完成数据计算,集群可以方便进行扩展节点成本低:hadoop使用链家的机器组成集群来分发和处理数据,不依赖高端成本,高效率:在集群中处理和分发数据,处理速度非常快可靠性:存储在hdfs上的数据文件,一般有多个备份,保证数据的可靠性2、说下Hadoop生态圈组件及其作用hive(离线数据仓库):基于hdfs,结合类SQL引擎,底层执行MR任务,用于OLAP分析查询的数据仓库。zookeeper(管理员): 分布式协调服务。就是为用户的分布式应用程序提供协调服务,如:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务等等。kafka(消息通信中间件)flume(日志传输组件):是一个分布式可靠的高可用的海量日志收集、聚合、移动的工具,通俗来说flume就是一个日志采集工具spark(批处理计算框架):是一个快速的,通用的集群计算系统。flink(流处理计算框架)3、Hadoop主要分哪几个部分?他们有什么作用?HDFS:高容错、高可靠性、高可扩展性、高吞吐率的分布式文件存储系统,负责海量数据的存储YARN:资源管理调度系统,负责hadoop生态系统中任务的调度和监控MR:基于HDFS、YARN的分布式并行计算框架,负责海量数据的计算4、Hadoop集群工作时启动哪些进程?它们有什么作用?NN:是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件访问,这些元数据信息是存储在内存中的,也可以持久化到磁盘上。并且可以管理DNSNN:不是NN的冗余守护进程,而是提供周期性检查点和清理任务,帮助NN合并editslog,减少NN的启动时间(并不是NN的备用节点)fsimage - 它是在NameNode启动时对整个文件系统的快照edit logs - 它是在NameNode启动后,对文件系统的改动序列只有NN重启的时候,editlogs才会合并到fsimage文件中,得到一个文件系统的最新快照,但是在NN工作很久以后,editlogs文件变得很大。导致NN的重启会花费很长时间,此时SNN的职责就是帮助editlogs合并到fsimage文件中。定时去获取NN去获取editlogs,并更新到自己的fsimage上,一旦有了新的fsimage,它将拷贝回NN中DN:提供真实的文件数据的存储服务,以数据的形式存储HDFS文件,相应HDFS客户端的读写请求,周期性地向NN汇报心跳信息、数据块信息、缓存数据块信息RM:负责整个集群资源的管理和调度,功能包括对ApplicationMaster的管理、NM的管理、Application管理等,负责整个集群中所有资源的统一管理和分配,并且接受来自各个节点的资源汇报信息;NM:主要处理来自RM分配的任务,监测并且报告Container使用信息给RMJN:两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。5、在集群计算的时候,什么是集群的主要瓶颈网络带宽:集群中节点通常通过网络进行数据传输和通信,网络带宽不足,会导致数据传输速度慢,影响整个集群计算性能存储性能:如果存储系统的读写能力较低,会影响数据的读取和写入速度,降低整个集群的计算效率处理能力:集群中的节点数据量和节点的计算能力都会影响整体的计算能力,集群规模较小或者节点的计算能力较低,无法满足大规模数据处理的需求内存容量:进行大规模数据分析和处理,需要大量的内存资源来存储和操作数据,若节点的内存不足,会导致数据无法完全加载到内存中,影响性能数据倾斜:由于数据分布不均匀,导致某些节点的数据负载过重,从而使得这些节点成为整个集群的瓶颈(解决数据倾斜方法后续详谈)6、搭建Hadoop集群的xml文件有哪些?core-site.xml:配置Hadoop的核心参数,如文件系统默认方案、HDFS地址等。hdfs-site.xml:配置HDFS的相关参数,如副本数量、数据块大小等。mapred-site.xml:配置MapReduce相关参数,如作业跟踪器地址、任务分配器等。yarn-site.xml:配置YARN相关参数,如资源管理器地址、节点管理器等。hive-site.xml:如果需要使用Hive,则需要配置Hive的相关参数,如元数据存储位置、数据库连接等。7、Hadoop的Checkpoint流程?该流程是指在集群中,将正在运行的任务的状态信息和元数据信息保存在持久化存储中,以便在集群发生故障时候能够及时恢复任务;若不适用HA,hadoop的checkpoint机制就是主节点的元数据备份机制,通过SN,每隔一段时间将NN的元数据更新并备份,然后返回给fsimage和NN,SNN会每隔默认60分钟,都会通知更新日志信息edits,以便后续元数据备份操作;元数据是保存在内存当中的,这样容易丢失,NN的工作量巨大,管理众多DN,还要更新操作日志文件edits,还要将元数据信息序列化到本地,所以SNN就会开始代替NN完成元数据的保存工作流程如下:1、当一个任务开始执行时,Hadoop会周期性地将任务地状态信息和元数据信息写入到Checkpoint目录中。这些信息包括任务的进度、输入数据的位置、已经完成的工作等。2、Checkpoint目录通常位于分布式文件系统(如HDFS)中,以保证数据的安全性和可靠性。3、Hadoop还会在内存中保存一个Checkpoint ID,用于标识当前的Checkpoint。4、在任务执行过程中,如果集群发生故障或节点失效,任务会停止执行。5、当集群恢复正常后,Hadoop会检查Checkpoint目录中的状态信息和元数据信息,并根据Checkpoint ID找到最新的Checkpoint。6、Hadoop会使用Checkpoint中的信息来恢复任务的执行状态,包括任务的进度、输入数据的位置等。7、任务恢复完成后,Hadoop会继续执行任务,并从上次Checkpoint的位置继续处理数据,以确保不会重复执行已经完成的工作。
查看7道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务