日常問題——flume連接hive時報錯Caused by: java.lang.NoSuchMethodError

問題描述:

今天新安裝的flume,使用flume來做kafka與hive對接時出現了以下兩個的錯誤:

Caused by: org.apache.hive.hcatalog.streaming.ConnectionError: HiveEndPoint{metaStoreUri='thrift://localhost:9083', database='db', table='student', partitionVals=}
(HiveWriter.java:99)
	at org.apache.flume.sink.hive.HiveSink.getOrCreateWriter(HiveSink.java:346)
	at org.apache.flume.sink.hive.HiveSink.drainOneBatch(HiveSink.java:297)
	at org.apache.flume.sink.hive.HiveSink.process(HiveSink.java:254)
	at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67)
Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
	at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
	at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
	at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
	at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
	at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:448)
	at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)

本着問題要一個一個順序解決的態度,對Caused by: org.apache.hive.hcatalog.streaming.ConnectionError: HiveEndPoint{metaStoreUri=‘thrift://localhost:9083’, database=‘db’, table=‘student’, partitionVals=}問題進行搜索,但是大多數百度的內容都是表要分桶,開啓事務,格式是:org ,因爲他們的問題也與我的不全一樣。

解決方案(過程):

第一個問題解決無果後,我聯想會不會是第二個問題導致的第一個發生錯誤,是他的前置條件,於是查看第二個報錯的問題

Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

哈哈,發現是hive/lib下與flume/lib下的guava的jar包的版本不一致導致的,這個問題在安裝運行hive時與hadoop下的guava版本不一致時就遇到過,就很可惜,用了很長的一塊時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章