遇到的错误记录
1. Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflow
这个错误一直解决不了,pom文件里添加apach的依赖和阿里的云hbase依赖都解决不了,以exclude的形式将其排除也不行,后来找到jdk的路径,之前添加了排除slf4j-log4j12.jar的exclude还是不行,删除本机上的也不行,后来换了中思路,找到了本机上jdk安装路径下的log4j-over-slf4j.jar 文件,删除,在运行就好了。
2.ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
这个错误首先下载hadoop的安装文件,之后在系统变量中添加HADOOP_HOME,指向你解压的文件路径。然后再path中添加%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin ,之后下载winutils的windows版本
GitHub上,有人提供了winutils的windows的版本,项目地址是:https://github.com/srccodes/hadoop-common-2.2.0-bin,直接下载此项目的zip包,下载后是文件名是hadoop-common-2.2.0-bin-master.zip,把bin下的文件替换到之前下的hadoop安装路径。
3.java.lang.VerifyError: class com.google.protobuf.LiteralByteString overrides final method toString.(Ljava/lang/String;)Ljava/lang/String;
尝试将
com.google.protobuf.jar 删除不行,最后偶然看到hbase-shaded-client
是社区里有人将HBase里面比较常见的依赖进行了重命名,在pom文件中我们可以将引入的hbase-client
替换成hbase-shaded-client,这个方法测试了可以使用