java调用Hbase API 出现org.apache.hadoop.hbase.protobuf.generated.ClientProtos$Result overrides final 错误_class org.apache.hadoop.hbase.protobuf.generated.c_IT_xhf的博客-程序员宅基地

技术标签: hive  hadoop  hbase  

今天写了一段简单的java代码调用Hbase的API,代码如下:

public class HbaseApi {
	private HTable hTable ;
	private String tableName;
	public HbaseApi(String tableName) throws IOException {
		this.tableName = tableName;
		HBaseConfiguration hconfig = new HBaseConfiguration();
		hconfig.set("hbase.zookeeper.property.clientPort","2181");
		hconfig.set("hbase.zookeeper.quorum", "192.168.179.130");  
		hTable = new HTable(hconfig, this.tableName.getBytes());
	}
	
	public void scan(String family, String qualifier) throws IOException {
		Scan scan = new Scan();
		scan.addColumn(family.getBytes(), qualifier.getBytes());
		
		ResultScanner scanner = hTable.getScanner(scan);
		
		for(Result result = scanner.next(); result != null; result = scanner.next() ) {
		}
	}
	
	public static void main(String[] args) {
		try {
			new HbaseApi("teacher").scan("teacher", "info");;
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}


执行的时候出现错误:从错误上看,应该是Hbase的一个类重载了protobuf-java的一个final方法导致的。我使用hadoop的版本是2.2.0, Hbase版本是0.96,protobuf的版本是2.5.如有大神遇到相同的问题,请提供以下解决方法,再此谢过

java.io.IOException: java.lang.reflect.InvocationTargetException
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:389)
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:366)
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:247)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:188)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:165)
    at com.hadoop.study.hbase.HbaseApi.<init>(HbaseApi.java:19)
    at com.hadoop.study.hbase.HbaseApi.main(HbaseApi.java:34)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:387)
    ... 6 more
Caused by: java.lang.VerifyError: class org.apache.hadoop.hbase.protobuf.generated.ClientProtos$Result overrides final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at org.apache.hadoop.hbase.protobuf.ProtobufUtil.<clinit>(ProtobufUtil.java:172)
    at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:64)
    at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:69)
    at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:83)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:801)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:633)
    ... 11 more


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/IT_xhf/article/details/37963993

智能推荐

docker安装kafka、springboot整合kafka demo_wonder why的博客-程序员宅基地

1. docker安装启动 kafka#下载镜像docker pull zookeeperdocker pull wurstmeister/kafka#查看镜像docker images#启动zookeeper docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper..._kafka docker 安装和demo

Tomcat服务部署及优化_tomcat 前台运行_一念去殇的博客-程序员宅基地

文章目录一、Tomcat介绍二、Tomcat组件1.Servlet介绍2.JSP介绍一、Tomcat介绍Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,_tomcat 前台运行

LeetCode刷题(python)——557. 反转字符串中的单词 III_python解决给定一个字符串,你需要反转字符串中每个单词的字符顺序_论程序员的自我修养的博客-程序员宅基地

题目描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。解题思路:将字符串以空格为分界分开,得到一个列表。 ..._python解决给定一个字符串,你需要反转字符串中每个单词的字符顺序

c语言报错e0028表达式必须含有常量值,C++面试知识点搜集 - osc_25qqqijt的个人空间 - OSCHINA - 中文开源技术交流社区..._姜小邑的博客-程序员宅基地

c++如何避免头文件重复使用**防卫式声明**#ifndef __MYSTRING_H__#define __MYSTRING_H__.........#endif// !__MYSTRING_H__两个类的内存大小两个类继承关系构造和析构函数的先后顺序重要提示:枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从0开始。 ..._e0028表达式必须含有常量值

CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection)..._weixin_33884611的博客-程序员宅基地

CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection) 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了。CSharpGL源码中包含10多个独立的Demo,更适合入门参考。 为了尽可能提升渲染效率,CSharpGL是面向Sh..._glsl pointlight

2018跟着小虎玩着去软考--新品尝鲜讲解2017上半年信息系统项目管理师上午试题-刘畅-专题视频课程..._littletigerat的博客-程序员宅基地

2017年5月20日,上半年国家软件考试开考。小虎尝鲜讲解2017上半年信息系统项目管理师上午试题

随便推点

HBase分布式数据库的安装与配置(详细过程)_hbase config/regionservers配置_Runningluffy的博客-程序员宅基地

HBase版本:1.4.71.1 解压安装包hbase-1.4.7-bin.tar.gz至路径 /usr/local,命令如下:sudo tar -zxf ~/下载/hbase-1.1.2-bin.tar.gz -C /usr/local1.2 将解压的文件名hbase-1.4.7改为hbase,命令如下:sudo mv /usr/local/hbase-1.1.2 /usr..._hbase config/regionservers配置

Books 思维题_zhangjinlei321的博客-程序员宅基地

题目:DreamGrid went to the bookshop yesterday. There are n books in the bookshop in total. Because DreamGrid is very rich, he bought the books according to the strategy below:Check the n books from ...

【转载】Mybatis-Plus使用updateById()、update()将字段更新为null_mybatis更新null字段_如来神掌十八式的博客-程序员宅基地

问题背景 昨晚同事找我帮他看一个问题,他使用mybatis-plus中提供的updateById方法,想将查询结果中某个字段原本不为null的值更新为null(数据库设计允许为null),但结果该字段更新失败,执行更新方法后还是查询的结果。 问题原因 mybatis-plus ..._mybatis更新null字段

Python (paramiko的再次封装)_python 如何再次封装sshclient_嘟嘟嘟托马斯的博客-程序员宅基地

1. 导入第三方模块1.1 导入os: import os1.2 导入sys: import sys1.3 导入paramiko import paramiko2. 建立SShRemoteHost2.1 class SshRemoteHost(object):3. 实现__init__方法 def __init__(self, host, user, pwd, cmd..._python 如何再次封装sshclient

勒索老黄未果!黑客公布英伟达核心源代码,超40万个文件、75GB机密数据_互联网架构的博客-程序员宅基地

上一篇:字节跳动面试经验总结,已顺利拿到offer!来源:智能改变世界https://www.163.com/dy/article/H1JNNLB1055225XN.html资料来源:薛定谔的元宇宙、快科技等。如侵,请联系删除导读最近,国际芯片设计巨头英伟达(NVIDIA)遇上了一件烦心事儿,并且大有可能已经演变成了一出“电视连续剧”。当所有人把目光放在被别国黑客攻..._nvidia falcon

金额小数点后面和前面字体大小不一致的实现_css中有没有针对小数点后数字设置大小的样式_零下十五度w的博客-程序员宅基地

今天遇到一个需求,一个价格小数点后的要比小数点前的小,如果放两个textview感觉特别麻烦,上网上查了查可以用spannable,现整理一下基本用法方便以后使用。布局:&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout ="http://schemas.android.com/apk/res..._css中有没有针对小数点后数字设置大小的样式

推荐文章

热门文章

相关标签