Flume HDFS源

Ahm*_*med 1 hdfs flume

我想使用flume将数据从hdfs目录传输到hdfs中的目录,在此传输中我想应用处理morphline.

例如:我的来源是

"hdfs://localhost:8020/user/flume/data"
Run Code Online (Sandbox Code Playgroud)

而我的水槽是

"hdfs://localhost:8020/user/morphline/"
Run Code Online (Sandbox Code Playgroud)

水槽有可能吗?

如果是,源水槽的类型是什么?

frb*_*frb 5

据我所知,没有读取HDFS数据的来源.主要原因是Flume旨在移动以某种方式发送给代理的大量数据.如文档中所述:

"Flume源消耗由外部源(如Web服务器)传递给它的事件.外部源以目标Flume源识别的格式向Flume发送事件.例如,Avro Flume源可用于接收Avro来自Avro客户端或其他Flume代理的事件,从Avro接收器发送事件的流程.可以使用Thrift Flume Source定义类似的流程,以接收Thrift Sink或Flume Thrift Rpc客户端或用任何语言编写的Thrift客户端的事件从Flume节俭协议中产生."

您可以在官方网页上找到所有可用的来源.

话虽如此,您需要一些负责读取输入HDFS文件的过程并将其发送到任何可用的源.可能ExecSource适合您的需求,因为您可以指定将运行的命令以生成输入数据.这样的命令可以是hadoop fs -cat /hdfs/path/to/input/data类似的东西.

然而,考虑到你想要做的处理,我想你需要一个自定义接收器才能实现它.我的意思是,源部分仅用于读取数据并以Flume事件的形式将其放入Flume通道.然后,接收器或接收器将通过处理它们并生成适当的输出来消耗这些事件.