Storm/Cassandra集成錯誤:NoSuchMethodError: concurrent.Futures.withFallback

本文原文出處: http://blog.csdn.net/bluishglc/article/details/50443205 嚴禁不論什麼形式的轉載。不然將託付CSDN官方維護權益。java

2015年的最後一篇博文了,本想着來個年終總結,終究仍是沒能打破慣例。在技術博客上寫一篇非技術博文,因此這2015年的最後一篇文章是關於一個很是小很是小的小問題,爲啥沒準備一篇宏篇大論呢?近期忙的跟鬼似的,趕哪算哪吧,就是它了:markdown

Storm和Cassandra集成,提交topology後報錯:post

java.lang.NoSuchMethodError: com.google.common.util.concurrent.Futures.withFallback(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureFallback;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;

這個問題的解決辦法是Strorm和Cassandra使用的guava版本號不一致引發的。Strom (V0.10 ) 依賴了一個低版本號的guava ( V11.0.2 ), 這個版本號尚未提供錯誤中指明的方法。但是Cassandra ( V 2.1.6 ) 的driver client使用的倒是一個提供了該方法的高版本號guava ( V14.0.1 )。ui

Storm的應用是將所有依賴jar打成單一jar包部署的,很是顯然,提交topology以後。storm終於採納的是strom自身配置在STORM_HOME/extlib-daemon/下的低版本號guava,從而致使了這個錯誤。google

解決方法就是使用高版本號的guava替換STORM_HOME/extlib-daemon/下的低版本號guava。spa

相關文章
相關標籤/搜索