我正在尝试使用以下代理配置将实时Wireshark数据与Flume一起放入HBase。
来源
A1.Source.k1.type= exec
A1.Source.k1.command = tail -f /usr/sbin/tshark
接收器
A1.Sinks.C1.Type = hbase
A1.Sinks.C1.columnFamily =
A1.Sinks.C1.table =
而且我在根目录中使用tshark
Tshark -i eth0
似乎已存储数据,但看起来像这样-x0/x0/x0/
。
任何我错的地方
Flume HBase Sinks要求您提供一些用于配置事件序列化器的附加参数。哪一个与序列化器有关。
由于您未在接收器配置中指定任何串行器,因此将使用默认的org.apache.flume.sink.hbase.SimpleHbaseEventSerializer
。基于the documentation,它至少需要三个参数才能执行有用的操作:
[
cf
:列族。没有默认值的组件,如果为null则不使用:
payloadColumn
:将有效负载放入哪一列。如果为null,则事件数据将不会被写入。
incColumn
:要增加的列。空值表示没有列增加。
由于您已经在提供色谱柱系列,我相信您需要添加其他两个,如下所示:
A1.Sinks.C1.payloadColumn = data
A1.Sinks.C1.table.incColumn = lnum
-编辑-
水槽来源:
tshark
的专家,但您不必重定向它标出要捕获的文件吗?试试这个$ tshark -i eth0 > /<some/path>/tshark.out
A1.Source.k1.command = tail -F /<some/path>/tshark.out
(-F后跟重试选项)。