Yarn timeline service v2.0启动成功但查询日志报错:AbstractChannel$AnnotatedConnectException: Connection refused

报错详情:
yarn timeline service 2.0服务启动后查看后台日志有如下报错:

Wed May 06 16:47:10 CST 2020, RpcRetryingCaller{globalStartTime=1588754824588, pause=1000, maxAttempts=4}, java.net.ConnectException: Call to cjhdpnode21.zpepc.com.cn/21.48.35.21:17020 failed on connection exception: org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: cjhdpnode21.zpepc.com.cn/21.48.35.21:17020

        at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:145)
        at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:80)
        ... 3 more
Caused by: java.net.ConnectException: Call to cjhdpnode21.zpepc.com.cn/21.48.35.21:17020 failed on connection exception: org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: cjhdpnode21.zpepc.com.cn/21.48.35.21:17020
        at org.apache.hadoop.hbase.ipc.IPCUtil.wrapException(IPCUtil.java:165)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient.onCallFinished(AbstractRpcClient.java:390)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient.access$100(AbstractRpcClient.java:95)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:410)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:406)
        at org.apache.hadoop.hbase.ipc.Call.callComplete(Call.java:103)
        at org.apache.hadoop.hbase.ipc.Call.setException(Call.java:118)
        at org.apache.hadoop.hbase.ipc.BufferCallBeforeInitHandler.userEventTriggered(BufferCallBeforeInitHandler.java:92)
        at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:329)

问题分析:
1.看报错信息知道是连接客户端hbase 拒绝连接异常,而17020与hbase regionserver服务默认端口16020不同。查看yarn配置文件搜索“17020”相关配置。
2.发现Advanced yarn-hbase-site选项卡下,有hbase相关配置,但所有配置项的值与集群hbase的hbase-site.xml对应配置项的值均不同。
3.然后在选项卡Advanced yarn-hbase-env有配置项:use_external_hbase,该项是没勾选的,即使用内置的hbase,而不是集群的hbase,所以2中配置文件的值会出现差异。

解决办法:
使用集群HBase的方案
1.关闭Yarn服务
2.打开选项卡Advanced yarn-hbase-env,勾选配置项use_external_hbase
3.打开Advanced yarn-hbase-site选项卡,修改配置项:hbase.regionserver.info.port,hbase.regionserver.port,hbase.rootdir,zookeeper.znode.parent 的值,使其与集群hbase中对应配置项值一致
4.重启Yarn服务
5.登陆到某台机器,执行下面的命令,创建需要的表:

[hbase@master1 ~]$ export HBASE_CLASSPATH_PREFIX={hdp-dir}/hadoop-yarn/timelineservice/*

[hbase@master1 ~]$ hbase org.apache.hadoop.yarn.server.timelineservice.storage.TimelineSchemaCreator -Dhbase.client.retries.number=35 -create -s

6.登陆 HBase shell,给 yarn 用户赋权限

[hbase@master1 ~]$ hbase shell
hbase(main):001:0>grant 'yarn', 'RWXCA'

问题解决。

如果集群开启了Kerberos,则日志中仍有报错如下:

Thu May 07 09:36:26 CST 2020, RpcRetryingCaller{globalStartTime=1588815377956, pause=100, maxAttempts=8}, java.io.IOException: Call to cjhdpnode18.zpepc.com.cn/21.48.35.18:16020 failed on local exception: java.io.IOException: org.apache.hbase.thirdparty.io.netty.handler.codec.DecoderException: org.apache.hadoop.ipc.RemoteException(javax.security.sasl.SaslException): GSS initiate failed

        at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:145)
        at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:80)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Call to cjhdpnode18.zpepc.com.cn/21.48.35.18:16020 failed on local exception: java.io.IOException: org.apache.hbase.thirdparty.io.netty.handler.codec.DecoderException: org.apache.hadoop.ipc.RemoteException(javax.security.sasl.SaslException): GSS initiate failed
        at org.apache.hadoop.hbase.ipc.IPCUtil.wrapException(IPCUtil.java:180)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient.onCallFinished(AbstractRpcClient.java:390)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient.access$100(AbstractRpcClient.java:95)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:410)
        at org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:406)
        at org.apache.hadoop.hbase.ipc.Call.callComplete(Call.java:103)
        at org.apache.hadoop.hbase.ipc.Call.setException(Call.java:118)
        at org.apache.hadoop.hbase.ipc.BufferCallBeforeInitHandler.userEventTriggered(BufferCallBeforeInitHandler.java:92)
        at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:329)

原因是Kerberos认证失败,即timelines service使用的principal无法通过认证。

解决办法:
修改Kerberos中yarn选项卡里配置项:hbase.master.kerberos.principal、hbase.master.keytab.file、hbase.regionserver.kerberos.principal、hbase.regionserver.keytab.file。

当你在Ubuntu系统上尝试启动Hadoop服务时,如果遇到 Job for hadoop.service failed错误,这通常意味着Hadoop主服务(如NameNode或JobTracker)启动过程中遇到了问题,导致控制进程以非零退出代码结束。这种错误可能由多种原因引起,包括但不限于: 1. **配置文件问题**:检查Hadoop配置文件(如core-site.xml, hdfs-site.xml, yarn-site.xml等),确保它们正确地指定了Hadoop的安装路径、网络设置和资源限制。 2. **依赖缺失**:确保所有必要的库和组件已经安装,并且版本兼容。比如,Java、SSH、Zookeeper、HDFS和YARN等都需要正常运行。 3. **权限问题**:Hadoop服务可能需要特定的用户权限才能访问文件系统、日志目录或其他关键资源。确认这些权限是否已正确设置。 4. **磁盘空间不足**:检查Hadoop数据目录是否有足够的存储空间,如果没有,你需要清理一些空间或者调整配置。 5. **日志文件**:查看Hadoop的日志文件(通常是logs目录下的)以获取具体的错误信息,这有助于定位问题根源。 6. **网络问题**:确认集群内的节点间网络连接畅通,特别是Hadoop的通信端口(如8020, 9000等)是否对外开放并且可达。 7. **服务冲突**:检查是否有其他服务占用了Hadoop的服务端口,导致启动失败。 为了解决这个问题,你可以按照以下步骤进行排查: 1. **查看错误日志**:使用命令 `journalctl -u hadoop.service` 或 `sudo journalctl -xe` 查看详细错误信息。 2. **检查服务状态**:`systemctl status hadoop.service` 看服务是否启动,以及启动时的输出。 3. **尝试重启服务**:`sudo systemctl restart hadoop.service` 并观察是否能解决问题。 4. **修复问题后手动启动**:如果重启不成功,找到并解决日志中指出的具体错误,然后手动启动服务。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值