我想使用 flume 将数据从 hdfs 目录传输到 hdfs 中的目录,在此传输中,我想应用处理形态线。
例如:我的来源是
"hdfs://localhost:8020/user/flume/data"
我的水槽是
"hdfs://localhost:8020/user/morphline/"
有水槽可能吗?
如果是,源水槽的类型是什么?
另一种选择是将 netcat 源连接到同一个接收器,然后将文件
放入其中......
据我所知,没有读取HDFS数据的来源。主要原因是Flume旨在移动以某种方式发送给代理的大量数据。如文档中所述:
“Flume源使用外部源(如Web服务器)传递给它的事件。外部源以目标Flume源识别的格式向Flume发送事件。例如,Avro Flume源可用于从Avro客户端或流中的其他Flume代理接收Avro事件,这些代理从Avro接收器发送事件。可以使用Thrift Flume Source定义类似的流,以接收来自Thrift Sink或Flume Thrift Rpc客户端或用Flume节俭协议生成的任何语言编写的Thrift客户端的事件。”
您可以在官方网页上找到所有可用的来源。
也就是说,您需要一些进程负责读取输入的HDFS文件并将其发送到任何可用的来源。可能ExecSource
适合您的需求,因为您可以指定一个命令,该命令将被运行以生成输入数据。这样的命令可以是hadoop fs-cat /hdfs/path/to/input/data
或类似的东西。
然而,考虑到你想要做的处理,我想你需要一个定制的水槽来实现它。我的意思是,源部分只是用于读取数据,并以Flume事件的形式将其放入Flume通道。然后,一个或多个接收器将通过处理这些事件并生成适当的输出来消费它们。
我们可以为HDFS Sink添加分隔符吗?写入文件时,我们如何添加记录分隔符? 以下是配置:-
我正在尝试使用hdfs水槽运行水槽。hdfs在不同的机器上正常运行,我甚至可以与水槽机器上的hdfs交互,但是当我运行水槽并向其发送事件时,我收到以下错误: 同样,一致性不是问题,因为我可以使用hadoop命令行与hdfs交互(水槽机不是datanode)。最奇怪的是,在杀死水槽后,我可以看到tmp文件是在hdfs中创建的,但它是空的(扩展名仍然是. tmp)。 关于为什么会发生这种情况的任何想法
我遇到了Flume的问题(Cloudera CDH 5.3上的1.5): 我想做的是:每5分钟,大约20个文件被推送到假脱机目录(从远程存储中抓取)。每个文件包含多行,每行是一个日志(在JSON中)。文件大小在10KB到1MB之间。 当我启动代理时,所有文件都被成功推送到HDFS。1分钟后(这是我在flume.conf中设置的),文件被滚动(删除. tmp后缀并关闭)。 但是,当在假脱机目录中找到
https://cwiki.apache.org/confluence/display/FLUME/Getting 开始的页面说 HDFS sink 支持追加,但我无法找到有关如何启用它的任何信息,每个示例都在滚动文件上。因此,如果可能的话,我将不胜感激有关如何将水槽附加到现有文件的任何信息) 使现代化 可以将所有滚动属性设置为0,这将使flume写入单个文件,但它不会关闭文件,新记录对其他进程不
我是使用Flume和Hadoop的新手,所以我试图尽可能设置一个最简单的(但有些帮助/现实的)例子。我在虚拟机客户端中使用HortonWorks沙盒。在完成了教程12(包括设置和使用Flume)之后,一切看起来都正常了。 所以我建立了自己的flume.conf 从apache访问日志中读取 使用内存通道 写入HDFS 够简单吧?这是我的会议文件 我见过几个人在给HDFS写信时遇到问题,大多数情况下
我试图将FLUME与HDFS集成,我的FLUME配置文件是 我的核心站点文件是 当我尝试运行flume代理时,它正在启动,并且能够从nc命令中读取,但是在写入hdfs时,我得到了下面的异常。我尝试使用< code > Hadoop DFS admin-safe mode leave 在安全模式下启动,但仍然出现以下异常。 如果在任何属性文件中配置了错误,请告诉我,以便它可以工作。 另外,如果我为此