HBase自定义Observer协处理器报错“ cannot be cast to org.apache.hadoop.hbase.client.HTable Cause:”

本文主要是介绍HBase自定义Observer协处理器报错“ cannot be cast to org.apache.hadoop.hbase.client.HTable Cause:”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HBase自定义Observer协处理器在向其中一张表插入数据时,将数据保存到另一张表,执行逻辑报错如下

2021-11-30 14:28:13,884 ERROR [RpcServer.FifoWFPBQ.default.handler=29,queue=2,port=16000] master.MasterRpcServices: Region server linux121,16020,1638253313319 reported a fatal error:
ABORTING region server xxx,16020,1638253313319: The coprocessor com.wufabao.processor.MyProcessor threw java.lang.ClassCastException: org.apache.hadoop.hbase.client.HTableWrapper cannot be cast to org.apache.hadoop.hbase.client.HTable
Cause:
java.lang.ClassCastException: org.apache.hadoop.hbase.client.HTableWrapper cannot be cast to org.apache.hadoop.hbase.client.HTableat com.wufabao.processor.MyProcessor.prePut(MyProcessor.java:27)at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$30.call(RegionCoprocessorHost.java:918)at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionOperation.call(RegionCoprocessorHost.java:1673)at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.execOperation(RegionCoprocessorHost.java:1749)at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.execOperation(RegionCoprocessorHost.java:1705)at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.prePut(RegionCoprocessorHost.java:914)at org.apache.hadoop.hbase.regionserver.HRegion.doPreMutationHook(HRegion.java:2997)at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2972)at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2918)at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:823)at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:785)at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2239)at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34958)at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2339)at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168)

原因

HTable tb1 = (HTable) e.getEnvironment().getTable(TableName.valueOf(“t2”));
原因是“=”后面返回的数据类型是HTableInterface,无法强制转换为HTable类型,因此报错,但是在IDE中提示HTableInterface已经过期,不建议把“=”左边的数据类型修改为HTableInterface类型
在这里插入图片描述

解决方案一

把“=”左边的数据类型改成HTableInterface继承的Table类型,经测试可以使用
Table t2 = e.getEnvironment().getTable(TableName.valueOf(“t2”));

解决方案二

不使用中间变量,直接获取到某张表的对象直接给该对象赋值
原代码:

HTable tb1 = (HTable) e.getEnvironment().getTable(TableName.valueOf("t2"));
tb1.put(put1);

现代码:
e.getEnvironment().getTable(TableName.valueOf("t2")).put(put1);

这篇关于HBase自定义Observer协处理器报错“ cannot be cast to org.apache.hadoop.hbase.client.HTable Cause:”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389647

相关文章

SpringBoot全局异常拦截与自定义错误页面实现过程解读

《SpringBoot全局异常拦截与自定义错误页面实现过程解读》本文介绍了SpringBoot中全局异常拦截与自定义错误页面的实现方法,包括异常的分类、SpringBoot默认异常处理机制、全局异常拦... 目录一、引言二、Spring Boot异常处理基础2.1 异常的分类2.2 Spring Boot默

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

解决java.util.RandomAccessSubList cannot be cast to java.util.ArrayList错误的问题

《解决java.util.RandomAccessSubListcannotbecasttojava.util.ArrayList错误的问题》当你尝试将RandomAccessSubList... 目录Java.util.RandomAccessSubList cannot be cast to java.

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日