我有25-20个代理将数据发送给几个收集代理,然后这些收集代理必须将数据写入HDFS。
在哪里运行这些收集器代理?在Hadoop集群的Data节点上还是集群外?每种方法的优点/缺点是什么?人们目前是如何运行它们的?
我假设您使用Flume之类的东西。如果是这种情况,Flume代理(至少第一层)会在数据来源的任何地方运行。IE: Web Server for Web Logs…
Flume确实支持其他协议,如JMS,因此在这些场景中位置会有所不同。
对于生产集群,您不想在Datanode上运行像水槽这样的“代理”。最好为集群均衡该硬件的资源。
如果您有很多代理,您将希望使用分层架构来整合和漏斗众多源到一组较小的代理中,这些代理将写入HDFS。这有助于控制集群的可见性和对外部服务器的暴露。
第2层水槽代理使用hdfsSink直接写入HDFS。更重要的是,Tier1可以使用故障转移sinkgroup。在第2层水槽代理之一关闭的情况下。
我是使用Flume和Hadoop的新手,所以我试图尽可能设置一个最简单的(但有些帮助/现实的)例子。我在虚拟机客户端中使用HortonWorks沙盒。在完成了教程12(包括设置和使用Flume)之后,一切看起来都正常了。 所以我建立了自己的flume.conf 从apache访问日志中读取 使用内存通道 写入HDFS 够简单吧?这是我的会议文件 我见过几个人在给HDFS写信时遇到问题,大多数情况下
我想使用 flume 将数据从 hdfs 目录传输到 hdfs 中的目录,在此传输中,我想应用处理形态线。 例如:我的来源是 我的水槽是 有水槽可能吗? 如果是,源水槽的类型是什么?
我们可以为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写入单个文件,但它不会关闭文件,新记录对其他进程不