java - Hortonworks HDFS 名称节点在启动时出现 tryLock 问题
问题描述
我们正在使用 HDP HDFS 模块版本 2.7.3.2.6.5.0-292。
服务器卡住了,必须硬重置 - 现在名称节点服务在启动时会引发错误。
成功获取锁定文件后,它会通过尝试再次获取它而立即失败,即使它是针对同一个进程(可能是同一个线程) - 它失败了。
我们应该如何使用 tact 中的数据启动名称节点?
18/11/14 20:19:24 INFO util.GSet: Computing capacity for map NameNodeRetryCache
18/11/14 20:19:24 INFO util.GSet: VM type = 64-bit
18/11/14 20:19:24 INFO util.GSet: 0.029999999329447746% max memory 1011.3 MB = 310.7 KB
18/11/14 20:19:25 INFO util.GSet: capacity = 2^15 = 32768 entries
18/11/14 20:19:25 INFO common.Storage: Lock on /mnt/pd1/hadoop/hdfs/namenode/in_use.lock acquired by nodename 10635@hadoop-327
18/11/14 20:19:25 ERROR common.Storage: It appears that another node 10635@hadoop-327 has already locked the storage directory: /mnt/pd1/hadoop/hdfs/namenode
java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1113)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.tryLock(Storage.java:770)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.lock(Storage.java:738)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:551)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:502)
解决方案
因此,我们似乎有 2 个路径指向同一目录dfs.namenode.name.dir
,这导致了双重锁定。一旦我们使用单一路径,一切都恢复正常。
推荐阅读
- javascript - Vuejs - 如果满足条件,动态绑定一个类并执行函数
- docker - 如何删除 docker-credential-pass
- go - 如何根据文件内容在 Go strict 中解析 Yaml?
- ios - iOS 布局约束 | 宽度锚与前导和尾随锚
- ios - 应用程序仅在使用时请求位置访问
- discord.py - 我们如何在特定日期和时间在 discord.py 中发送消息
- git - 如何在 Jumphost/Gateway Server 中从 Tortoise svn v 1.9.3 切换到 GIT
- node.js - 如何使用节点 js grpc 服务器 vue js 发出请求
- performance - Javafx 在不中断播放的情况下平滑地改变音频的速度
- javascript - 加载海关多对多 TypeORM