hbase-MR任务-将hdfs导入hbase-NoClassDefFoundError

在执行Hadoop MapReduce任务时遇到NoClassDefFoundError,原因是任务中引用了HBase的TableReducer类,但Hadoop环境中未包含HBase的库。解决方法包括手动在所有节点上添加HBase依赖或通过Maven的maven-assembly-plugin插件将依赖一起打包。在pom.xml中配置该插件,可以创建包含所有依赖的jar包,避免集群部署时的复杂性。
摘要由CSDN通过智能技术生成

报错

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/mapreduce/TableReducer

找不到指:定jar

原因:执行hadoop的任务,但是需要用到hbase的包,而Hadoop中没有hbase的包

解决1:将hbase用到的包导入到每台节点的hadoop包 ,但是如果集群节点很多部署会特别麻烦

解决2:打包mapreduce时,将maven下载的包一起打包

在代码中的pom文件中添加如下:

 <build>
     <plugins>
         <!-- compiler插件, 设定JDK版本 -->
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
             <version>2.3.2</version>
             <configuration>
                 <encoding>UTF-8</encoding>
                 <source>1.8</source>
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值