我使用HBase
安装了Flume
和Apache Cloudera
。我在flume
服务器上运行linux
代理,HBase
当前主服务器正在运行。
我正在尝试从spooldir
写到HBase
,但我收到以下错误:
...
ERROR org.apache.flume.node.PollingPropertiesFileConfigurationProvider: Failed to start agent because dependencies were not found in classpath. Error follows.
java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
at org.apache.flume.sink.hbase.HBaseSink.<init>(HbaseSink.java:116)
...
Flume配置:
...
#Sinks
tier1.sinks.hbase-sink.channel = memory-channel
tier1.sinks.hbase-sink.type = org.apache.flume.sink.hbase.HBaseSink
tier1.sinks.hbase-sink.table = FlumeTable
tier1.sinks.hbase-sink.columnFamily = FlumeColumn
我尝试修改flume-env.sh
并设置HBASE_HOME
HADOOP_HOME
,但它没有改变任何内容。
我已成功写信HDFS
,但HBase
正在制作问题。
答案 0 :(得分:1)
我可以通过将hbase-libraries的路径添加到conf / flume-env.sh中的FLUME_CLASSPATH来解决此问题,即在我的情况下文件看起来像:
FLUME_CLASSPATH="/home/USERNAME/hbase-1.0.1.1/lib/*"
希望它有所帮助。