版本描述:开发工具的系统是windows 7 ,开发工具eclipse (Oxygen Release (4.7.0)),
框架以及工具版本:
springboot 1.5.9.RELEASE,
springcloud Edgware.SR1
mybatis-spring-boot-starter 1.3.0,
hive-jdbc 3.1.0,
hbase-client 1.3.0
问题描述:
1.Could not locate executable null\bin\winutils.exe in the Hadoop binaries
是因为开发的window环境需要一些hadoop调试工具的支持,所以下载hadoop-common-x工具,并配置环境变量HADOOP_HOME,然后其添加到path中。
下载地址:
hadoop2.2版本:https://github.com/srccodes/hadoop-common-2.2.0-bin
hadoop2.6版本:https://github.com/amihalik/hadoop-common-2.6.0-bin
下载完成后,解压为hadoop-common-x,创建环境变量HADOOP_HOME,其值为hadoop-common-x的路径(eg:D:\Program Files\hadoop-common-2.6.0),再编辑环境变量path,添加;%HADOOP_HOME%\bin;。然后需要重启才会生效(测试的时候,重启后才生效),重新运行工程,发现该问题解决。
2.org.apache.hadoop.hbase.client.RpcRetryingCaller - Call exception, tries=11, retries=35, started=61413 ms ago, cancelled=true, msg=develop54 row 'testTable,rowkey,99999999999999' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=develop54,60020,1538299550430, seqNum=0。出现很多这种信息,读取数据需要很久并且不能成功(不停的重试),其原因是没有成功访问到zookeeper的地址上去(window上ping和telnetzookeeper地址都是成功的),解决办法是将zookeeper上的hosts映射添加到window的hosts里面即可。(为什么这样可以,没有去深入探究,囧~~)
----------------------------分割线用hive的jdbc查询impala-------------------------------------------
3.加入hive-jdbc的依赖后,需要排除一系列jar,查找网上的资料,得知了需要排除:commons-codec、httpcore、commons-lang、slf4j-log4j12、org.eclipse.jetty.aggregate、hive-shims、javax.servlet-api。排除这些jar后,启动应用报错:
2018-10-11 14:59:58,730 [main] WARN org.apache.tomcat.util.scan.StandardJarScanner - Failed to scan [file:/C:/Users/admin/.m2/repository/org/apache/derby/derby/10.13.1.1/derbyLocale_zh_CN.jar] from classloader hierarchy
java.io.FileNotFoundException: C:\Users\admin\.m2\repository\org\apache\derby\derby\10.13.1.1\derbyLocale_zh_CN.jar (系统找不到指定的文件。)
经过排查,发现hive-jdbc中存在jetty-runner依赖,也会去加载jar(加载报错,并且我们已经有tomcat了),不需要这个jetty-runner,排除后,恢复正常。
此时,使用jdbc直连impala查询成功。
加入mybatis-spring-boot-starter依赖后,填写基本配置:
就可以查询impala的表了(跟查询mysql只有url和驱动名称不同)