| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 2021-07-08 -> 正文阅读 |
|
[大数据]2021-07-08 |
大数据面经收藏
hadoop2.x和3.x的区别不停机升级过程中有哪些不兼容的地方(namenode的editlog、datanode的块布局等)版本回滚会有啥问题?当前滚动升级存在的问题记录在 Apache Hadoop Wiki 中,主要问题是 Edit Log 不兼容,无法进行滚动升级, 1 .JournalNode升级,使用新版本依次重启 JournalNode 升级准备,生成 fallback fsimage 文件 使用新版本 Hadoop 重启 Standby NameNode,重启 ZKFC 做 failover,使升级后的 NameNode 变成 Active 节点 使用新版本 Hadoop 重启另一个 NameNode,重启 ZKFC 3.升级 DataNode,使用新版本 Hadoop 重启所有 DataNode 节点 4.做 Finalize,确认集群变更到3.2 第二个问题,由于 NameNode 对 StringTable 的修改导致了 Fsimage 的不兼容,目前该问题可以通过回滚 commit 进行解决,社区反馈修复也不是很必要,可以通过先升级到无该 commit 的版本,滚动升级稳定后,直接进行小版本升级,跨过这个不兼容特性。记录 ISSUE 为 HDFS-14831,总结起来,需要做 HDFS2.x 到 3.x 的滚动升级,需要关注这些 ISSUE,HDFS-13596,HDFS-14396,HDFS-14831,HDFS-14509。 hdfs写数据过程,写的过程中有哪些故障,分别会怎么处理?dataqueue和ackqueue如何交互的?ackqueue中的数据如何重新放回到dataqueue中?如何保证有序?写数据的过程中是一个个package写入并确认成功后再写下一个吗?不过不是,是怎么写的,除了错误如何恢复的?那么问题来了,如果他们之间的一个datanode突然坏掉了怎么办。 1、如果传输过程中,有某个datanode出现了故障,那么当前的pipeline会被关闭,出现故障的datanode会从当前的pipeline中移除,剩余的block会继续剩下的datanode中继续以pipeline的形式传输,同时Namenode会分配一个新的datanode,保持replicas设定的数量。 spark比mapreduce快的原因数据倾斜问题,怎么解决一、绝大多数task执行得都非常快,但个别task执行的极慢。 2、增加reduce的个数,这适用于第二种情况(唯一值比较多,这个字段的某些值有远远多于其他值的记录数,但是它的占比也小于百分之一或千分之一),我们知道,这种情况下,最容易造成的结果就是大量相同key被partition到一个分区,从而一个reduce执行了大量的工作,而如果我们增加了reduce的个数,这种情况相对来说会减轻很多,毕竟计算的节点多了,就算工作量还是不均匀的,那也要小很多。 3、自定义分区,这需要用户自己继承partition类,指定分区策略,这种方式效果比较显著。 4、重新设计key,有一种方案是在map阶段时给key加上一个随机数,有了随机数的key就不会被大量的分配到同一节点(小几率),待到reduce后再把随机数去掉即可。 5、使用combinner合并,combinner是在map阶段,reduce之前的一个中间阶段,在这个阶段可以选择性的把大量的相同key数据先进行一个合并,可以看做是local reduce,然后再交给reduce来处理,这样做的好处很多,即减轻了map端向reduce端发送的数据量(减轻了网络带宽),也减轻了map端和reduce端中间的shuffle阶段的数据拉取数量(本地化磁盘IO速率),推荐使用这种方法。 kafka的ack机制简单点理解就是: producer发送消息到leader收到消息之后发送ack 实际上ack可以看做一种信号,用于消费者来确认消息是否落盘 这种的问题出现场景不多,解决方案目前来说我能想到的就只能是架构、运维层面优化,保持服务稳定。 2.重复消费场景,这种问题大多出现在ack应答机制设置为0或者1的情况,举个1的例子,某一个consume因消费过慢、网络问题或者无法消费,触发rebalanced(kafka集群的一个保护设定,用于剔除掉无法消费或者过慢的消费者 ), 此时数据会重新发到一个新的consume里消费,这时候就会出现重复消费的问题,根本上就是记录消费位置的offset因某种情况没有改变,消费进入死循环或者多次从同一个offset消费。试想,kafka应用在扣除用户金币的场景,多扣一次,又会怎么样呢? 重复消费问题的解决方案我们可以从下面的角度入手: 1确认consume的消费速度,过慢是不行滴 hive的order by 和 sort by有什么区别hive调优Hive中的数据在哪存放,mysql的在哪存放Hadoop中的小文件问题,怎么解决数据倾斜问题。Spark的架构。Spark提交一个任务的具体流程。划分stage是依据什么划分的。Rdd的五个特性。Stage的数量等于什么,等于宽依赖数量+1Spark中的并行度等于什么等于rdd的一个分区数 Kafka集群架构,其中一个节点挂掉怎么选主的。(zookeeper) zookeeper的选主策略 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/22 0:14:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |