JDBC客戶端報錯
老師,請問下,走近大數據之Hive入門課程中,所用的hadoop是什么版本的?我用的hadoop1.2.1,apache-hive-0.13.0-bin, 實現HIVE的JDBC客戶端操作時,沒有hadoop-commom-2.4.1.jar文件。?
?另外:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable。這樣的是什么報錯?
老師,請問下,走近大數據之Hive入門課程中,所用的hadoop是什么版本的?我用的hadoop1.2.1,apache-hive-0.13.0-bin, 實現HIVE的JDBC客戶端操作時,沒有hadoop-commom-2.4.1.jar文件。?
?另外:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable。這樣的是什么報錯?
2017-11-17
舉報
2018-08-17
Hadoop1.2.1版本、Hive0.13.0版本需要引入的jar包:
Hadoop根目錄下的:
hadoop-core-1.2.1.jar
Hadoop的lib目錄下的:
commons-cli-1.2.jar
slf4j-api-1.4.3.jar
slf4j-log4j12-1.4.3.jar
hive的lib目錄下的:
commons-collections-3.1.jar
commons-logging-1.1.3.jar
hive-exec-0.13.0.jar
hive-jdbc-0.13.0.jar
hive-metastore-0.13.0.jar
hive-service-0.13.0.jar
libfb303-0.9.0.jar
log4j-1.2.16.jar
2018-08-17
需要引入commons-cli-1.2.jar、hadoop-core-1.2.1.jar
2017-12-09
hadoop版本早就到了3.0了,你用的太老了。還有Hive也是。
我用的hadoop是2.7的,Hive是2.1.1的。這兩個版本都很穩定,挺不錯的。
對于你這個問題是,沒有找到Writable類。關于類找不到有兩種情況,一種是編譯的時候,這個時候你的IDE會提示你(就是沒有導包,這個太明顯就不用解釋了)。另外一種就是你這個NoClassDefFoundError,編譯時能找到類,運行時找不到,就是沒有把類編譯成class字節碼文件。這個問題原因比較多,可能是jar沖突。你如果是Maven項目,更新下一般都能解決。
老哥,你其實應該把代碼貼出來。。。。
我懷疑你是不是MR作業的Key和Value類型用的不對,你需要用hadoop包下的(都實現了Writable接口)
,或者是Job中沒有指定Reduce的Key和Value類型。。。。
你要是簡單的使用Hadoop,在pom文件中導入
????<dependency>
?? ??? ??? ?<groupId>org.apache.hadoop</groupId>
?? ??? ??? ?<artifactId>hadoop-common</artifactId>
?? ??? ??? ?<version>2.7.3</version>
?? ??? ?</dependency>
?? ??? ?<dependency>
?? ??? ??? ?<groupId>org.apache.hadoop</groupId>
?? ??? ??? ?<artifactId>hadoop-client</artifactId>
?? ??? ??? ?<version>2.7.3</version>
?? ??? ?</dependency>
?? ??? ?<dependency>
?? ??? ??? ?<groupId>org.apache.hadoop</groupId>
?? ??? ??? ?<artifactId>hadoop-hdfs</artifactId>
?? ??? ??? ?<version>2.7.3</version>
?? ??? ?</dependency>