1. 程式人生 > >eclipse上除錯java對hbase和impala(springboot+mybatis)的查詢遇到的問題

eclipse上除錯java對hbase和impala(springboot+mybatis)的查詢遇到的問題

版本描述:開發工具的系統是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中。

下載地址:

下載完成後,解壓為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和驅動名稱不同)