2015-04-30 70 views
1

我已經寫了一個水槽直接寫入cassandra數據庫。我還爲水槽代理提供了所有必要的cassandra依賴。 但在執行,我得到一個錯誤如何在水槽中首先加載自定義庫

015-04-30 00:53:25,736 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:149)] Unhandled error 
java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet()Ljava/util/Set; 
    at com.datastax.driver.core.Cluster$ConnectionReaper.<init>(Cluster.java:2065) 
    at com.datastax.driver.core.Cluster$Manager.<init>(Cluster.java:1163) 

現在,這是因爲卡桑德拉罐需要番石榴16.0.1.jar。我已經提供了這個,但是我看到flume選擇了缺省情況下在CDH5中發貨的guava-11.X.X.jar。

像job.getConfiguration()。set(「mapreduce.job.user.classpath.first」,「true」);

我怎麼能告訴水槽拿起我的罐子第一

回答

1

你已經[APACHE_FLUME_HOME]/plugins.d/mynewsink/lib下安裝新的水槽(打包成.jar文件)?相關的依賴關係應在[APACHE_FLUME_HOME]/plugins.d/mynewsink/libext之下。

您也可以將.jar文件與依賴項打包,而不是將它們放入libext

+0

FLUME_HOME =/usr/lib目錄/水槽-ng的 我已經把第三方庫和我在FLUME_HOME的lib/lib目錄 我的命令 #水槽-NG代理\ --conf文件的mysql-到卡桑德拉.properties \ --name MyAgent \ --conf $ FLUME_HOME/conf \ -Dflume.root.logger = INFO,console –

+0

這是我的源碼 https://github.com/sksumit1/bigdata/tree/master/flume –

+0

建議您不要將新的接收器放入'[FLUME_HOME]/lib',而是嘗試將其安裝在'[FLUME_HOME]/plugins.d'下。相關文檔:https://flume.apache.org/FlumeUserGuide.html#installing-third-party-plugins – frb