HBase出现java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration问题

hbase程序报错:java.lang.ClassNotFoundException: org.apache.hadoop.hbase.client.Scan 根据报错返回的日志内容,可以看出,大致是我们在使用MapReduce去执行hhbase程序时,未找到类:org.apache.hadoop.hbase.client.Scan。我们只需要将hbase的jar包引用到hadoop的jar包中即可,亦或者我们执行程序前声明一下hadoop的类路径指向hbase的jar包位置。本地编写hbase程序后,maven生成jar包,提交到测试环境,使用MapReduce执行时,不管采取了以上哪两种方式,处理之后,再次提交hbase程序,就不会有报错了。 阅读详情
AI摘要

本文介绍如何使用Java API在HBase中创建表,并解决在集群环境中遇到的NoClassDefFoundError错误。通过正确配置Hadoop classpath并添加必要的HBase JAR包,确保应用程序能在集群上顺利运行。

问题:Hbase在集群上运行报错:NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration
需求:HBase使用Java创建表,打包成jar,提交到集群上行运行!
在IDEA中使用Maven添加Hbase
代码:

 <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-it</artifactId>
            <version>1.1.3</version>
 </dependency>

Java代码:

package com.bynear.HBase;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import java.io.IOException;
/**
 * 2018/6/20
 * 15:35
 */
public class HBaseTest {
    public static void main(String[] args) throws Exception {
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "Spark1:2181,Spark2:2181");
        HBaseAdmin admin = new HBaseAdmin(conf);
        TableName name = TableName.valueOf("nvshen");
        HTableDescriptor desc = new HTableDescriptor(name);
        HColumnDescriptor base_info = new HColumnDescriptor("base_info");
        HColumnDescriptor extra_info = new HColumnDescriptor("extra_info");
        base_info.setMaxVersions(5);
        extra_info.setMaxVersions(5);
        desc.addFamily(base_info);
        desc.addFamily(extra_info);
        admin.createTable(desc);
    }
}

打包提价到集群上:

 hadoop jar /root/SparkStudy.jar com/bynear/HBase/HBaseTest

结果出现如下报错!

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
        at com.bynear.HBase.HBaseTest.main(HBaseTest.java:19)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 6 more

解决办法:
把hbase的jar包加入到hadoop classpath中
在hadoop安装目录下找到hadoop-env.sh文件,
添加 : export HADOOP_CLASSPATH=/home/hadoop/apps/hbase/lib/*
不需要重启,重新执行命令hadoop jar mapreducehbase.jar hbase.TxHBase 运行成功。

HBase的安装!
tar -zxvf hbase.tar -C 到指定的目录
vim hbase-env.sh
添加 JAVA_HOME 将自导的Zookeeper 修改为flase
vim hbase-site.xml

<configuration>
<property>
//添加HDFS的路径(自动创建)
        <name>hbase.rootdir</name>
        <value>hdfs://Spark1:9000/hbase</value>
</property>
<property>
//是否启用分布式
        <name>hbase.cluster.distributed</name>
        <value>true</value>
</property>
<property>
//配置zookeeper
        <name>hbase.zookeeper.quorum</name>
        <value>Spark1:2181,Spark2:2181</value>
</property>
</configuration>

注意:
需要将 Hadoop 的 hdfs-site.xml 和 core-site.xml 拷贝到Hbase的conf目录中,因为HBase集群是依赖于Hadoop集群的,HBase的region产生的HFile,存储在hbase-site.xml中创建的HDFS指定的目录中!
执行结果:

18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:java.library.path=/root/app/hadoop-2.5.0-cdh5.3.6/lib/native
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA>
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:os.arch=i386
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:os.version=2.6.32-431.el6.x86_64
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:user.name=root
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:user.home=/root
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Client environment:user.dir=/root
18/06/21 01:01:36 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=Spark1:2181,Spark2:2181 sessionTimeout=90000 watcher=hconnection-0xcb18130x0, quorum=Spark1:2181,Spark2:2181, baseZNode=/hbase
18/06/21 01:01:36 INFO zookeeper.ClientCnxn: Opening socket connection to server Spark1/192.168.2.15:2181. Will not attempt to authenticate using SASL (unknown error)
18/06/21 01:01:36 INFO zookeeper.ClientCnxn: Socket connection established, initiating session, client: /192.168.2.15:47408, server: Spark1/192.168.2.15:2181
18/06/21 01:01:36 INFO zookeeper.ClientCnxn: Session establishment complete on server Spark1/192.168.2.15:2181, sessionid = 0x641d2794760039, negotiated timeout = 40000
18/06/21 01:01:40 INFO client.HBaseAdmin: Created nvshen

运行结果:

hbase(main):001:0> list
TABLE                                                                                                                                
nvshen                                                                                                                               
1 row(s) in 0.4150 seconds

=> ["nvshen"]
hbase(main):002:0> 
Web项目整合Hbase报错java.lang.ClassNotFoundException 问题描述:在idea上运行web项目,本来以为使用maven引入habse的包就行了,这样编译可以通过。没想到在运行时抛出错误,说NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration&lt;dependency&gt; &lt;groupId&gt;org.apache.hbase&lt;/groupId&gt; ... 阅读详情

相关推荐

Exception in thread “main“java.lang.NoClassDefFoundError:org/apache/HBaseConfiguration

今天用eclipse构建基于maven的spark+hbase工程(scala语言)的项目时,在eclipse中运行成功,打包也成功但是在spark本地运行时报了这样的错误 原因是因为有些包调用错误,所以导致无法加载HBASE配置文件 【解决方法】 HADOOP配置文件里加入HBase lib路径 hadoop-env.sh在$HADOOP_CLASSPATH/etc/hadoop下 vihadoop-env.sh export HADOOP_CLASSPATH=$HADOOP_CLASS.

weixin_54490958的博客 1673

集群提交HBase代码报错:Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguratio

原因分析 HBase官网 已经告诉我们原因以及解决方法了: 原因: 默认情况下,部署到MapReduce群集的MapReduce作业无法访问$ HBASE_CONF_DIR下的HBase配置或HBase类。 解决方法: 要为MapReduce作业提供所需的访问权限,可以将hbase-site.xml_添加到_ $ HADOOP_HOME / conf并将HBase jar添加到$ HADOOP_H...

SunnyRivers 3587

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

用sbt打包Spark程序,并未将所有依赖都打入包中,把Spark应用放到集群中运行时,出现异常:Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at SparkHbase.main(SparkHbase.scala:34)at

mtj66的博客,交流WX:SpringBreeze1104 1万+

解决spark+hbase 报错 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

spark2.2.1+hbase1.2.6+hadoop2.6.1+jdk1.8.1 提交spark作业时报错如下:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at fsm.FreqSubGraphMining.init(FreqSubGr...

zjwcsdn123的博客 3359

深入浅出卡尔曼滤波器算法

深入浅出讲解卡尔曼滤波器的工作原理及其公式推导,讨论卡尔曼滤波器的核心公式所代表的意义及个人的理解。

m0_37835056的博客 1366

Vivado静态时序分析学习笔记(1)

静态时序分析分为片内时序分析(寄存器与寄存器之间的时序关系)和片外时序分析(IO时序分析)。(1)建立时间 setup time在时钟事件(上升沿/下降沿)发生之前数据信号应保持稳定的时间。把实际电路抽象成前级D触发器+组合逻辑+后级D触发器。

Fantaasky的博客 4377

运行jar包报错:java.lang.NoClassDefFoundError org/apache/hadoop/hbase/HBaseConfiguration

之前都是在Windows客户端操作HBase,今天把程序打成jar包在MR上跑的时候,报了错误,详细信息如下: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at hadoop02.exer.hbase010301.HBaseImportDemo.<init>(HBaseImportDemo.java:26)

qq_43437122的博客 4231

更多 LSTM 变种——应用于 CMAPSS 数据集

本文并模型介绍,只是把一些比较火的技术,像双向注意力机制,自注意力机制这样的比较火的内容,简单的和LSTM堆叠,结果发现效果都不如最基础的,这里作者将本人代码及实现结果,进行展示,给各位想更改LSTM的朋友一些。

2301_77491330的博客 1765

MapReduce读写HBase时报错:java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

报错信息如下: Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at test.OfflineComputation.MapReduceHBase.main(MapReduceHBase.java:107) at sun.reflect...

TT-Learning 3723

Kylin-Desktop-V10-SP1-General-Release-2303-X86_64-海光版(hygon c86)安装与配置指南

本文提供了在国产海光C86处理器平台上安装与配置Kylin Desktop V10 SP1操作系统的详细指南。内容涵盖从下载专用镜像、制作启动盘、BIOS关键设置、磁盘分区方案,到系统安装后的驱动优化、必备软件安装及常见故障排除,旨在帮助用户顺利完成hygon c86平台的系统部署与优化。

tree的博客 1388

银河麒麟V10 SP3下NFS客户端挂载失败?5个常见问题排查与修复

本文针对银河麒麟V10 SP3系统中NFS客户端挂载失败的常见问题,提供了5个实战排查方案。从基础服务状态检查到防火墙配置、版本兼容性、/etc/fstab设置及权限映射,详细解析了问题根源与解决方案,帮助用户快速恢复NFS文件共享功能。

weixin_42525005的博客 363

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration] with root cause

在用Java web和hbase连接时,报出来这个错误,一开始我以为是hbase导入的包位置不对,不从build path那里导入,而是从WEB-INF下的lib中导入,尝试了之后结果仍是这个错误 十月 19, 2018 8:18:10 下午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for...

weixin_30530339的博客 1190

把 SAP S/4HANA 中的 Maintain Email Templates 用好:从模板维护、语言变体、业务绑定到传输治理的完整实践

摘要:SAP邮件模板管理常被低估,实则关乎审批通知、业务提醒等关键输出。官方推荐通过复制标准模板实现自定义,而非直接修改标准内容,以保持核心稳定。模板维护涉及语言变体、业务绑定、数据传输等治理环节,需业务顾问与开发团队协作确保字段来源与渲染逻辑。实施时需注意Fiori配置、权限分配及传输管理,避免测试与生产环境差异。模板设计应平衡灵活性与复杂度,遵循分层测试策略(内容、数据、流程),并建立命名规范以维护资产清晰度。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 70

hdfs文件操作命令&jar包运行命令&报错java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

注意:一下提到的”目录“,含义均为:”位置“。就是觉得说目录好像书面语一点啦。 1.文件上传 [hadoop@hadoop000 tmp]$ hadoop dfs -put ./info.txt /data/info.txt 命令格式:hadoop dfs -put 要上传的文件所在目录 上传到hdfs上的文件目录 目录形式: 2.文件查看 hadoop dfs -text /data/info.txt 命令格式: hadoop dfs -text 需要查看的hdfs文件目录 3.文件删除 .

m0_45899013的博客 1170

华为od 面试八股文_测试/测试开发_02_含答案

华为od 面试八股文_测试/测试开发_02_含答案

MISAYAONE的博客 2174

C#开发的OpenRA游戏之网络接收后找到游戏对象

而这个队列是在创建这个游戏对象时组件,因为一个游戏对象有很多特性,当发现创建游戏对象时有IResolveOrder继承接口的对象,就添加到这个数组。在这里先检查一下命令是否有效的,接着就调用命令的执行对象,即是游戏对象来执行这个命令了。order.Subject就是上面解释游戏对象ID,并从游戏世界里找到的游戏对象,再从各个字段里找到对应的信息,再把这个动作交给游戏世界里的对象执行。从前面分析可知,要找到游戏世界里的对象,就需要游戏对象的ID,因此, 我们来分析游戏对象的ResolveOrder函数。

大坡3D软件开发 1035

spark读取hbase报错:java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

原文地址:http://mangocool.com/1437009997261.html用sbt打包Spark程序,并未将所有依赖都打入包中,把Spark应用放到集群中运行时,出现异常:?1234567891011121314151617181920Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoo...

hwcptbtptp的专栏 3797

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java同时连接MySQL、Hive与HBase的工程实践

在现代大数据架构中,MySQL作为OLTP关系型数据库保障事务一致性,Hive构建于HDFS之上提供离线批处理能力,HBase则以LSM树和分布式Key-Value模型支撑高并发实时读写。三者分属不同数据范式——关系型、SQL-on-Hadoop与NoSQL,其协议语义、连接生命周期与资源模型存在本质差异。统一JDBC抽象不仅无法发挥各自优势,反而引发依赖冲突、连接泄漏与监控失焦。本文聚焦Java应用中三库协同的真实落地场景,涵盖驱动兼容性(如JDK17下Hive的JAXB缺失、HBase的ZooKeepe

weixin_31960565的博客 128

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HBase Java客户端实战:从本地连接到批量写入的完整链路

HBase作为面向列的分布式NoSQL存储,其核心价值在于海量稀疏数据的低延迟随机读写。理解其基于RowKey字典序的查询原理、Region分布机制及WAL持久化模型,是发挥性能优势的前提。技术选型上,Java原生客户端因深度集成Protocol Buffer RPC与ACL权限体系,成为生产环境唯一可靠选择;而伪分布式部署模式则为开发者提供了最贴近真实集群的本地调试环境。本文聚焦HBase 2.4.16 + JDK 11组合下的工程落地,覆盖连接配置、表结构设计、BufferedMutator批量写入、S

weixin_33507732的博客 166

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Apache Atlas 独立部署避坑指南:HBase、Solr、Kafka 依赖选型与常见报错排查

元数据管理与数据血缘追踪是大数据治理的核心能力,而 Apache Atlas 正是实现这一能力的主流框架。其独立部署依赖 HBase 存储元数据、Solr 提供全文检索、Kafka 接收变更事件,三者版本兼容性与配置正确性直接决定部署成败。理解各组件间的协作原理,有助于在环境准备阶段规避 JDK 版本冲突、主机名解析异常、端口占用等高频问题。在生产环境中,外置部署模式可保障数据可靠性与集群扩展性,适用于 Hive、HBase、Spark 等多数据源的统一元数据管理场景。本文围绕 Atlas 独立部署全流程,

weixin_34130389的博客 133

Spark读写HBase实战:Scala开发与性能优化指南

大数据处理场景中,分布式计算框架与分布式存储系统的配合往往决定整体效率。Spark作为内存计算引擎,擅长大规模数据并行处理;HBase作为海量随机读写的列式存储,承担实时查询职责。二者结合可覆盖离线批量写入、日志分析、特征回填等典型应用,但实际开发中常面临版本冲突、资源泄露、写入吞吐低、Scan全表扫爆等问题。本文从基础原理出发,以Scala语言为例,介绍Spark读写HBase的两种核心接入方式,重点解析TableOutputFormat、BufferedMutator和BulkLoad三种写入方案,以及

weixin_33708633的博客 266

java后觉,hbase java操作代码简介和NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguratio – 后知后觉的it路 –...

将上面代码打包后 放在hadoop上通过执行:bin/hadoop jar XX.jar 包.类执行的时候,报错如下:Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration错误原因: hadoop2 节点无法加载到hbase包处理方式:将hbase ...

weixin_39955154的博客 691

hadoop+hbase导致报错(NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration)

Exception in thread "main" java.io.IOException: Error opening job jar: ./ADReport2Hbase_0309.jar         at org.apache.hadoop.util.RunJar.main(RunJar.java:90) Caused by: java.util.zip.ZipException:

6万+
上一篇: 基于ZooKeeper实现HA高可用性以及自动主备切换
下一篇: 新版csdn
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值