前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1.报错:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors
.directExecutor()Ljava/util/concurrent/Executor;

2. 解决方法:

问题
当项目中同时集成Hbase和Elasticsearch时,经常遇到依赖包冲突的问题,如com.google.guava,org.joda等。造成guava冲突是因为集成Hbase和ES时都用到了guava包,但是两者要求的版本不一样,ES 2.0 版本以上的要求guava(19.0+),Hbase 1.0要求的guava为16.0,如果把guava统一为16.0,则ES会因为guava的版本太低而报错。joda也如此。所以,要同时使用Hbase和ES,就得解决这个冲突。

解决办法
1、首先,新建maven项目,对pom.xml进行如下配置:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.es</groupId><artifactId>esshade</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies>   <!-- elasticsearch --><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>2.4.1</version></dependency><dependency><groupId>org.elasticsearch.plugin</groupId><artifactId>delete-by-query</artifactId><version>2.4.1</version></dependency><!-- elasticsearch 依赖库结束 --></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.1</version><configuration><createDependencyReducedPom>false</createDependencyReducedPom></configuration><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><relocations><relocation><pattern>com.google.guava</pattern><shadedPattern>my.elasticsearch.guava</shadedPattern></relocation><relocation><pattern>org.joda</pattern><shadedPattern>my.elasticsearch.joda</shadedPattern></relocation><relocation><pattern>com.google.common</pattern><shadedPattern>my.elasticsearch.common</shadedPattern></relocation><relocation><pattern>com.google.thirdparty</pattern><shadedPattern>my.elasticsearch.thirdparty</shadedPattern></relocation></relocations><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" /></transformers></configuration></execution></executions></plugin></plugins></build><repositories><repository><id>elasticsearch-releases</id><url>http://maven.elasticsearch.org/releases</url><releases><enabled>true</enabled><updatePolicy>daily</updatePolicy></releases><snapshots><enabled>false</enabled></snapshots></repository></repositories>
</project>

pom.xml文件配置好后,构建,得到jar包。如下图,依赖关系加入.m2文件夹里。 
 
如上配置完成后,其实就是将com.google.guava等4个可能有冲突的jar包通过maven-shade-plugin插件迁移后,重新打个jar包从而使得在引入这个jar包时能够使用该jar包自己的依赖而不是使用外部依赖。

2、Hbase与ES的融合 
在同时集成Hbase与ES的项目中,加入Hbase的依赖包,并加入步骤1中构建的依赖包:

<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.6.4</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.4</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.2.1</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase</artifactId><version>1.2.1</version><type>pom</type></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>16.0.1</version></dependency><dependency><groupId>com.es</groupId><artifactId>esshade</artifactId><version>1.0-SNAPSHOT</version><exclusions><exclusion><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId></exclusion></exclusions></dependency>

配置好了,重新清理构建,测试一下,Hbase和ES就可以同时使用了。 
————————————————
版权声明:本文为CSDN博主「XiaoXiao_Yang77」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/XiaoXiao_Yang77/article/details/78226424

解决:Exception in thread main java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExe相关推荐

  1. hive启动报错:Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition

    报错如下 Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Precon ...

  2. Exception in thread “main” java.lang.NoClassDefFoundError: com/google/common/base/Preconditions

    问题原因,缺少 hadoop 提供的相关 jar 包,也即 guava-版本号.jar. 此 jar 包的位置,在 hadoop 目录下的/share/hadoop/tools/lib. 参考: 1. ...

  3. Exception in thread main java.lang.NoSuchMethodError

    Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.initinitinit(Lscala/ ...

  4. Exception in thread “main“ java.lang.NoSuchMethodError: scala.Predef$

    Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$ (我这里是idea + spark + ...

  5. Exception in thread “main“ java.lang.NoSuchMethodError: scala.reflect.ClassT

    运行环境:IntelliJ + scala + spark +hadoop 出错原因:IntelliJ 中的scala版本与Spark 自带的scala版本不同导致 我刚开始以为只要把IntelliJ ...

  6. IDEA 本地调试spark程序 Exception in thread main java.lang.NoSuchMethodError: scala.collection.immutable.

    1.很简单的一测试程序: 2.run运行时:出现ERROR,报错行显示在  new SparkContext 这行. val sc = new SparkContext(conf) Exception ...

  7. Spark启动错误Exception in thread “main” java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$

    1   错误 [error] (run-main-0) java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty() ...

  8. Exception in thread main java.lang.NoSuchMethodError: scala.Predef$

    使用intelli idea +scala+spark,运行程序代码如下: package cn.limbo.sparkimport org.apache.spark.SparkConf import ...

  9. Exception in thread main java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)

    其实这个错误就是编译的程序的scala版本和提交时的版本不一致导致的. 我是在idea上写的scala程序 用的是2.10.5,  但是在提交spark时  忽然发现spark用的是2.11.12 所 ...

最新文章

  1. Python 大括号和百分号
  2. Linux基础 常用命令学习
  3. android按钮最底,Android:点击按钮后布局上的动画,最低SDK版本为14
  4. 板材开料最优算法_板材套料软件AutoNest与Tekla Structures协同工作实现设计到加工自动化...
  5. Oracle存储过程procedure与函数function区别
  6. 2012年下半年我国信息化和信息安全走势分析与预测
  7. 基于FPGA实现压缩算法
  8. 【7.9校内test】T1挖地雷
  9. HTTP1.0 HTTP1.1 HTTP2.0 主要特性对比
  10. 181205每日一句
  11. 为什么品质一直做不好?因为法方有问题
  12. [matlab也能用来机器学习!?]保存工具箱模型并使用模型预测结果
  13. 三星 android 调试模式设置,三星 W2016 开启USB调试模式
  14. NIOS II——PIO寄存器分析及使用
  15. cisco2960(思科2960)
  16. 华为哪款手机是鸿蒙系统_华为鸿蒙系统不会用于手机?
  17. 接口隔离原则-快速理解
  18. C++判断素数(求素数)
  19. 一文搞懂│王者游戏中荣耀水晶难抽?探索游戏中的抽奖算法
  20. 电脑网络被别的计算机控制,电脑被别人远程控制了,怎么办?

热门文章

  1. VSTS TFS 强制删除签出锁定项 解除 锁定
  2. Hbase error: KeeperErrorCode = NoNode for /hbase/master错误
  3. Python 数据分析三剑客之 Matplotlib(五):散点图的绘制
  4. PWN-PRACTICE-BUUCTF-1
  5. 【2019牛客暑期多校训练营(第五场)- E】independent set 1(最大独立集,状压dp)
  6. 【Kattis - triangle 】Sierpiński Circumference(数学,求位数,取对数或Java)
  7. 【C语言实现反转数组】(用栈实现)51nod - 训练营
  8. Coursera自动驾驶课程第18讲:The Planning Problem
  9. 7.Handling Missing Values
  10. php实现播放直播_PHP直播技术分享(一:实现直播)