当我运行我的hbase自定义筛选器时,我收到此错误:
org.apache.hadoop.hbase.client.RpcRetryingCaller@459c8c0a,java.io.IOException:java.io.IOException:java.lang.reflect.InvocationTargetException at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil. java:1360)org.apache.hadoop.hbase.protobuf.ProtobufUtil.toScan(ProtobufUtil.java:916)org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3056)org.apache位于org.apache.hadoop的org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2008)的.hadoop.hbase.protobuf.generated.ClientProtos $ ClientService $ 2.callBlockingMethod(ClientProtos.java:28454). hbase.ipc.CallRunner.run(CallRunner.java:92)位于org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.consumerLoop(SimpleRpcScheduler.java:160)org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.access $ 000 (SimpleRpcScheduler.java:38)atg.apache.hadoop.hbase.ipc.SimpleRpcScheduler $ 1.run(SimpleRpcScheduler.java:110)at java.lang.Thread.run(Thread.java:744)引起:java.lang .reflect.InvocationTargetExcept 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)中的离子,位于java.lang.reflect的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43).方法.invoke(Method.java:606)at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1358)... 9更多引起:org.apache.hadoop.hbase.exceptions.DeserializationException :java.io.IOException:java.lang.reflect.InvocationTargetException at org.apache.hadoop.hbase.filter.FilterList.parseFrom(FilterList.java:406)... 14更多引起:java.io.IOException:java位于org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1360)的.lang.reflect.InvocationTargetException,位于org.apache.hadoop.hbase.filter.FilterList.parseFrom(FilterList.java:403).. .14更多引起:sun.reflect.NativeMethodAc的sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)中的java.lang.reflect.InvocationTargetException 位于org.apache.hadoop.hbase的java.lang.reflect.Method.invoke(Method.java:606)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中的cessorImpl.invoke(NativeMethodAccessorImpl.java:57) .protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1358)... 15更多引起:org.apache.hadoop.hbase.exceptions.DeserializationException:parseFrom在基础Filter上调用,但应在org.apache上的派生类型上调用.hadoop.hbase.filter.Filter.parseFrom(Filter.java:267)... 20更多
谁知道我该怎么办呢?
小智 6
尝试制作自定义过滤器时,我也遇到此错误.我的问题是我没有在我的过滤器中包含函数"toByteArray"和"parseFrom".请参阅此处了解我找到解决方案的位置以及示例链接.(花了我两个星期的时间挖掘 - HBase真的可以使用一些更好的文档...)
至于需要采用哪些方法,我在这方面仍然遇到麻烦.从概念上讲(据我所知),它们的目的是将过滤器实例的识别信息(基本上,您将发送给构造函数的信息)编码和解码为序列化的字节串.这样,特定的过滤器可以在任何需要的地方"实例化".
对我来说,包括这些方法可以防止挂起和错误,我的程序现在可以完成.我不认为我完全理解这些方法,因为看起来过滤器仍然没有实际运行,但这是另一个主题.(如果你弄清楚了,请告诉我!)
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |