我想使用flume将数据从hdfs目录传输到hdfs中的目录,在这个传输中我想应用处理行。例如:我的来源是
"hdfs://localhost:8020/user/flume/data"
我的Flume是
"hdfs://localhost:8020/user/morphline/"
有Flume可以吗?如果是,源Flume的类型是什么?
68bkxrlz1#
据我所知,没有读取hdfs数据的来源。主要原因是flume用于移动以某种方式发送给代理的大量数据。如文件所述:“flume源使用外部源(如web服务器)传递给它的事件。外部源以目标flume源识别的格式向flume发送事件。例如,avro flume源可用于接收来自avro客户端或流中其他flume代理(从avro接收器发送事件)的avro事件。可以使用thrift flume源来定义类似的流,以从thrift接收器或flume thrift rpc客户端接收事件,或使用flume thrift协议生成的任何语言编写的thrift客户端。”你在官方网页上有所有可用的资源。也就是说,您将需要一些进程来读取输入hdfs文件并将其发送到任何可用的源。可能是 ExecSource 适合您的需要,因为您可以指定将运行的命令以生成输入数据。这样的命令可能是 hadoop fs -cat /hdfs/path/to/input/data 或者类似的。然而,考虑到你想要做的处理,我猜你需要一个定制的Flume来实现它。我的意思是,源代码部分只是用来读取数据并以flume事件的形式将其放入flume通道。然后,一个或多个接收器将通过处理这些事件并生成适当的输出来使用这些事件。
ExecSource
hadoop fs -cat /hdfs/path/to/input/data
oo7oh9g92#
另一种选择是将netcat源连接到同一个接收器,然后 cat 把文件放进去。。。
cat
2条答案
按热度按时间68bkxrlz1#
据我所知,没有读取hdfs数据的来源。主要原因是flume用于移动以某种方式发送给代理的大量数据。如文件所述:
“flume源使用外部源(如web服务器)传递给它的事件。外部源以目标flume源识别的格式向flume发送事件。例如,avro flume源可用于接收来自avro客户端或流中其他flume代理(从avro接收器发送事件)的avro事件。可以使用thrift flume源来定义类似的流,以从thrift接收器或flume thrift rpc客户端接收事件,或使用flume thrift协议生成的任何语言编写的thrift客户端。”
你在官方网页上有所有可用的资源。
也就是说,您将需要一些进程来读取输入hdfs文件并将其发送到任何可用的源。可能是
ExecSource
适合您的需要,因为您可以指定将运行的命令以生成输入数据。这样的命令可能是hadoop fs -cat /hdfs/path/to/input/data
或者类似的。然而,考虑到你想要做的处理,我猜你需要一个定制的Flume来实现它。我的意思是,源代码部分只是用来读取数据并以flume事件的形式将其放入flume通道。然后,一个或多个接收器将通过处理这些事件并生成适当的输出来使用这些事件。
oo7oh9g92#
另一种选择是将netcat源连接到同一个接收器,然后
cat
把文件放进去。。。