HDFS2.X升级3.X案例与相关Issue

文章目录

HDFS2.X升级3.X案例与相关Issue

案例

案例编号 原始版本 目标版本 使用公司 文章网址
1 2.6.0 3.1.1 VIVO https://segmentfault.com/a/1190000041835472
2 2.6.0 3.2.1 58 https://tech.58.com/article?id=128
3 2.7.2 3.2.1 滴滴 https://cloud.tencent.com/developer/news/578420
4 2.7.2 3.3.4 奇安信 https://blog.51cto.com/u_13719114/7349341
5 2.7.3 3.2.3 车好多 https://www.sohu.com/a/433313804_315839
6 2.7.3 3.3.3 eBay https://mp.weixin.qq.com/s/74l-ZzvAYUhyjB4VHc95IA

遇到问题

问题 详细描述 案例编号 涉及issue
DataNode升级后降级失败 DataNode升级后,DataNode layoutVersion不兼容,HDFS 3.x DataNode降级到HDFS 2.x DataNode无法启动。 1,4,5,6 HDFS-8791
升级后手动 Failover Namenode 失败 Namenode Failover 时,Standby Namenode 转变成 Active 过程中初始化 Quota 的时间超过了zkfc超时时间,所以Standby Namenode 挂掉。初始化 Quota 线程数默认值为4 ,增加dfs.namenode.quota.init-threads 后解决。 5 HDFS-8865
DataNode坏盘问题导致无法服务 DN里突然出现的坏盘会导致DN处理Rolling Upgrade信息操作出错,DN无法服务 6 HDFS-8893
NameNode升级DatanodeProtocol.proto不兼容 Hadoop3中改变了HeartbeatResponseProto里部分字段的顺序导致新老版本DN(DataNode缩写)和NN(NameNode缩写)之间无法进行heartbeat操作。 1,4,6 HDFS-9788
NameNode性能问题 Hadoop3里对group组检查的逻辑里做了对象分配的优化,将之前的Set结构存储改成了List的结构。当某个用户属于非常多group的时候,NN需要做繁重的遍历操作去确认其是否是目标访问路径下的group。如下火焰图所示,我们能够看到RPC很多时间花在了isMemberOfGroup的操作检查上。 revert了社区HDFS-10711关于这块的改动 6 HDFS-10711
无效的QOP值导致DN SASL认证问题,数据无法读写 在新版本逻辑中DN会利用client里传来的QOP值做自身SASL QOP的覆盖,它在这里少了关键的QOP校验操作。当有别的老版本的client端发送了一个无效的QOP值后,就会导致DN SASL认证问题。社区有一个类似的issue JIRA(HDFS-16644 )但没有最终解决,后来在内部版本里添加了开关直接禁用了此逻辑。 6 HDFS-13541 HDFS-16644
fsimage结构变化导致NN降级失败 Hadoop3 EC功能的引入导致了fsimage的不兼容问题,社区3.3版本已经包含有相关的2个fix(HDFS-14396HDFS-13596 2,3,4,5,6 HDFS-14396 HDFS-13596
StringTable的改动导致的兼容性问题 在3.3版本中revet了HDFS-14831里涉及的相关commit解决了这个问题。 1,2,3,5,6 HDFS-14831
集群StaleDataNode数量积压导致的性能问题 HDFS 2.6.0版本FoldedTreeSet红黑树数据结构导致NameNode运行一段时间后RPC性能下降,集群出现大量StaleDataNode,导致任务读取block块失败。Hadoop 3.4.0 HDFS-13671修复了这个问题,将FoldedTreeSet回退为原来的LightWeightResizableGSet 链表数据结构。我们也将HDFS-13671 patch引入我们升级的HDP HDFS 3.1.1版本。 3 HDFS-13671
DataNode Du性能问题 从内存中计算DataNode使用空间,不再使用Du操作, 完美的解决了DataNode Du性能问题 3,4 HDFS-14313
Hadoop2 DataNode block token验证失败问题 升级过程中 NameNode 和 DataNode 由于数据结构的变化,生成了不同的 password,导致无法认证,读写数据会失败。该 ISSUE 记录了这个问题,需要先升级到 2.x 的最新版本进行过度,之后才能滚动升级到 3.x 版本。 2,4,5,6 HDFS-14509
JournalNode 升级出现 Unknown protocol HDFS 3.x新增了InterQJournalProtocol,新增加的InterQJournalProtocol用于JournalNode之间同步旧的edits数据。 对此问题进行了优化,日志级别从ERROR改成DEBUG。此问题不影响升级,当三个HDFS 2.x JN全部升级为HDFS 3.x JN时,JN之间能正常同步数据。 3 HDFS-14942
ViewFileSystem的FileSystem instance泄漏问题 Hadoop3的ViewFileSystem里引入了内部cache(HADOOP-15565 )来存放它所创建的FileSystem实例。这个功能改变了之前通过调用FileSystem.get(uri, conf)来实际创建FileSystem instance的逻辑,新的API会每次创建新的实例而老的API会复用已创建的实例。这会导致之前没有close FileSystem实例的应用在切换使用Hadoop3的API后会出现instance泄漏问题,最终导致OOM错误。 解决的办法是client端可以通过设置 fs.viewfs.enable.inner.cache=false 来关闭这个功能。 6 HADOOP-15565
Hadoop2和Hadoop3之间的StorageType不兼容 在集群部分path上设置了StorageType ,但是在NN升级到Hadoop3之后,Hadoop2的client在执行contentSummary call去统计汇总信息时会出现缺少必要字段的错误。 需要client将相关storage type字段从required类型改成optional类型,但这需要client升级到Hadoop3版本来解决这个问题。社区的fix是一个client side的改动,client side的升级需要有一定的时间周期来做,不是当下最优的解决办法。最终通过在NN server端跳过了storage type quota的设置检查来避免了这个问题。 6 HDFS-15660
HADOOP3Kerberos 认证失败 升级观察过程中发现旧版本HDFS 在 Kerberos 认证后去连接 3.1.3 建立连接失败。因为在3.1.3 版本中增加了 hadoop.security.auth_to_local.mechanism 默认值为hadoop , 不接受带有 '@' 或者 o'/' 的用户名 ,而旧版本Client 在kinit 之后会携带 'test@HADOOP.COM' 这样的用户名去建立连接,所以连接失败。在修改 hadoop.security.auth_to_local.mechanism = MIT 后解决,详见: HADOOP-15996[7] 。反思:考虑集群本身没有开启 Kerberos 认证,在升级测试过程并未把 Kerberos 相关内容划到测试范围内,导致一个故障。以后在测试时要 Involve 更多的依赖方,做更全面的Testing。 5 HADOOP-15996
异步删除block造成NN性能下降 Hadoop 3.3版本引入了异步删除block的功能(HDFS-16043 ),这个功能在极端场景下会造成NN性能下降的问题。比如当集群在一段时间内有大量块删除的情况,随之会引发DeletedBlock queue的大量堆积,然后NN会lock非常长的时间来做块的异步删除。 将NN delete block的lock时间从hard-coded的500ms改成了可配置化,以此降低此行为带来的潜在性能影响 6 HDFS-16043
Hadoop3版本加载Openssl 3.x失败问题 Hadoop slave机器上所使用的openssl版本是3.0版本,但是Hadoop3版本无法加载这个系列版本,导致HDFS会fallback到默认的JceAesCtrCryptoCodec方法来做数据读写的加解密操作。默认的JceAesCtrCryptoCodec方法在性能上比依赖于openssl提供的加解密算法OpensslAesCtrCryptoCodec方法差很多,最坏情况导致HDFS读写性能可以有1~4倍左右的差距。 6 HADOOP-18583
相关推荐
AC赳赳老秦7 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
QYR-分析8 小时前
高功率飞秒激光器行业发展现状、市场机遇及未来趋势分析
大数据·人工智能
微擎应用8 小时前
全渠道批发订货商城小程序管理系统
大数据·小程序
卷毛迷你猪9 小时前
快速实验篇(A1)干旱气象数据上传至HDFS
大数据·hadoop·hdfs
头歌实践平台11 小时前
招聘大数据可视化
大数据·python
头歌实践平台11 小时前
Hadoop开发环境搭建
java·大数据·hadoop
Alter123011 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能
2501_9288171212 小时前
大模型如何决定推荐谁?拆解精准触达的底层算法工艺
大数据
ApacheSeaTunnel12 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·ai·开源·数据集成·seatunnel·技术分享·数据同步