How-to: resolve regionserver died with "No lease on /hbase/oldWALs/..."

这篇博客介绍了如何处理HBase RegionServer在日志中出现的'No lease on /hbase/oldWALs/...'错误。错误源于 LeaseExpiredException,文件没有在写入时保持租约。解决方案是在hdfs-site.xml配置文件中增加'dfs.datanode.max.transfer.threads'属性,并将其值设置为8192或更高,以应对可能的高并发需求。
Error Log from died regionserver:
 2015-06-11 16:23:03,072 ERROR [regionserver/slave04/172.31.34.64:60020] regionserver.HRegionServer: Shutdown / close of WAL failed: org.apache.hadoop.hdfs.server.namen
ode.LeaseExpiredException: No lease on /hbase/oldWALs/slave04%2C60020%2C1434005076158.default.1434008679797 (inode 120999): File is not open for writing. Holder DFSCli
ent_NONMAPREDUCE_-2110154852_1 does not have any open files.
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:3334)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalDatanode(FSNamesystem.java:3237)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getAdditionalDatanode(NameNodeRpcServer.java:647)
at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.getAdditionalDatanode(Authorizati
### 错误分析 该错误发生在 Maven 构建过程中,具体是在 **依赖解析阶段**。Maven 无法从配置的远程仓库下载所需的依赖包,导致构建失败。 --- ### 错误信息逐层解析: #### 1. **主错误信息** ``` Failed to execute goal on project vms-api-gateway-port-cloud: Could not resolve dependencies for project com.tplink.cdd:vms-api-gateway-port-cloud:jar:2.2.1042 ``` - Maven 无法解析项目 `vms-api-gateway-port-cloud` 所需的依赖。 - 具体是无法下载依赖 `com.tplink.cdd:vms-identityaccess-port-grpc-api:jar:2.2.1042`。 #### 2. **仓库访问失败** ``` Could not transfer artifact com.tplink.cdd:vms-identityaccess-port-grpc-api:jar:2.2.1042 from/to release.repository.tplinkra.com (s3://repository.tplinkra.com/release) ``` - Maven 试图从 `s3://repository.tplinkra.com/release` 下载依赖。 - 但无法访问该 S3 仓库。 #### 3. **核心异常** ``` Cannot access s3://repository.tplinkra.com/release using the registered transporter factories: WagonTransporterFactory: java.util.NoSuchElementException ``` - Maven 使用 `WagonTransporterFactory` 来处理 S3 协议,但没有找到合适的 `Wagon` 实现。 - 报错 `roleHint: s3` 表示 Maven 缺少支持 S3 的 wagon 插件。 --- ### 常见原因总结: | 原因 | 说明 | |------|------| | **缺少 S3 协议支持** | Maven 默认不支持 S3 协议,需要额外配置 `wagon-http` 或 `aws-maven-wagon` 插件 | | **网络问题或权限不足** | 无法访问 S3 存储桶,可能是网络限制、IAM 权限不足或配置错误 | | **仓库配置错误** | `settings.xml` 或 `pom.xml` 中仓库 URL 配置错误 | | **依赖不存在** | 指定的 artifact(如 `vms-identityaccess-port-grpc-api:2.2.1042`)在仓库中不存在 | --- ### 解决方案建议: #### ✅ 1. **配置 S3 支持插件** 在 `pom.xml` 或 Maven 全局配置中添加支持 S3 的 wagon 插件,例如: ```xml <build> <extensions> <extension> <groupId>org.springframework.build.aws</groupId> <artifactId>aws-maven-wagon</artifactId> <version>5.0.0.RELEASE</version> </extension> </extensions> </build> ``` #### ✅ 2. **检查 `settings.xml` 中的仓库配置** 确保配置了正确的 S3 访问密钥和仓库地址: ```xml <servers> <server> <id>release.repository.tplinkra.com</id> <username>YOUR_AWS_ACCESS_KEY</username> <password>YOUR_AWS_SECRET_KEY</password> </server> </servers> <profiles> <profile> <repositories> <repository> <id>release.repository.tplinkra.com</id> <url>s3://repository.tplinkra.com/release</url> </repository> </repositories> </profile> </profiles> ``` #### ✅ 3. **验证依赖是否存在** 手动检查 S3 仓库中是否存在该 artifact: ``` s3://repository.tplinkra.com/release/com/tplink/cdd/vms-identityaccess-port-grpc-api/2.2.1042/ ``` #### ✅ 4. **使用本地或镜像仓库** 如果无法访问 S3,可考虑: - 将依赖上传到本地 Nexus 仓库 - 使用 Maven `install:install-file` 命令手动安装依赖到本地仓库 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值