天道酬勤,学无止境

flume

在循环中获取“检查flume.conf 的更改”(Getting 'checking flume.conf for changes' in a loop)

问题 我正在使用 Apache Flume 1.4.0 来收集日志文件 (auth.log) 并存储在 HDFS (Hadoop 2.6.0) 中。 使用的命令是: bin/flume-ng agent --conf ./conf/ -f flume.conf -Dflume.root.logger=DEBUG,console -n agent Flume.conf文件包含以下内容: agent.channels.memory-channel.type = memory agent.sources.tail-source.type = exec agent.sources.tail-source.command = tail -F /var/log/auth.log agent.sources.tail-source.channels = memory-channel agent.sinks.log-sink.channel = memory-channel agent.sinks.log-sink.type = logger agent.sinks.hdfs-sink.channel = memory-channel agent.sinks.hdfs-sink.type = hdfs agent.sinks.hdfs-sink.hdfs.path = hdfs:/

2021-09-19 06:27:25    分类:技术分享    ubuntu   hadoop   flume   flume-ng

Flume - TwitterSource 语言过滤器(Flume - TwitterSource language filter)

问题 我想在以下情况下请求您的帮助。 我目前正在使用 Cloudera CDH 5.1.2,我尝试使用 Flume 收集 Twitter 数据,如以下文章 (Cloudera) 中所述: http://blog.cloudera.com/blog/2012/10/analyzing-twitter-data-with-hadoop-part-2-gathering-data-with-flume/ github.com/cloudera/cdh-twitter-example 我下载了源代码并在更新 pom.xml 中的版本后重建了水槽源: <flume.version>1.5.0-cdh5.1.2</flume.version> <hadoop.version>2.3.0-cdh5.1.2</hadoop.version> 它工作得很好。 之后,我想添加一个“语言”过滤器,以仅捕获特定语言的推文。 为此,我修改了 TwitterSource.java 以调用 FilterQuery.language 方法,如下所示: FilterQuery 查询 = new FilterQuery(); ... 如果(语言。长度!= 0){ 查询语言(语言); } 我正在尝试使用 twitter4j-stream 3.0.6 版。 我在 pom.xml 中更新了它: <!-- For the

2021-09-17 15:23:37    分类:技术分享    hadoop   twitter   flume   cloudera-cdh   flume-twitter

Flume配置上传同名文件(Flume configuration to upload files with same name)

问题 我有 10 个文件,其中一些数据的长度不同。我想将相应的数据存储在同一个文件中并使用相同的文件名,但水槽正在拆分数据并保存为 FlumeData.timestamp。 我使用的配置如下: a1.sources = r1 a1.sinks = k2 a1.channels = c1 a1.channels.c1.type = file a1.channels.c1.checkpointDir = /mnt/flume/checkpoint a1.channels.c1.dataDirs = /mnt/flume/data a1.channels.c1.trackerDir = /mnt/flume/track a1.channels.c1.transactionCapacity = 10000000 a1.channels.c1.capacity = 500000000 a1.channels.c1.maxFileSize = 10000000 a1.channels.c1.useDualCheckpoints = true a1.channels.c1.backupCheckpointDir = /mnt/flume/backup a1.channels.c1.checkpointInterval = 2000 a1.channels.c1

2021-09-16 04:35:09    分类:技术分享    flume

Apache Sqoop 和 Flume 可以互换使用吗?(Can Apache Sqoop and Flume be used interchangeably?)

问题 我是大数据的新手。 从Flume 和Sqoop 有什么区别?的一些回答来看,Flume 和Sqoop 都可以从source 拉取数据,然后push 到Hadoop。 任何人都可以指定使用水槽的地方和使用 sqoop 的地方吗? 两者可以用于相同的任务吗? 回答1 Flume 和 Sqoop 都旨在处理不同类型的数据源。 Sqoop 适用于任何支持 JDBC 连接的 RDBMS 系统。 另一方面,Flume 可以很好地处理流数据源,例如在您的环境中连续生成的日志数据。 具体来说, Sqoop 可用于向 RDBMS 系统(如 Oracle、MS SQL Server、MySQL、PostgreSQL、Netezza、Teradata 和其他一些支持 JDBC 连接的系统)导入/导出数据。 Flume 可用于从像下面这样的源摄取高吞吐量数据并插入到下面的目的地(接收器)中。 常用的水槽源: 假脱机目录 - 在其中创建大量文件的目录,主要用于收集和聚合日志数据 JMS - 从基于 JMS 的系统收集指标还有更多常用的水槽: 高密度文件系统 HBase 索尔弹性搜索还有更多 不,这两种工具不能用于完成相同的任务,例如,flume 不能用于数据库,sqoop 不能用于流数据源或平面文件。 如果您有兴趣,flume 也有一个替代品,它与 chukwa 做同样的事情。

2021-09-16 02:26:04    分类:技术分享    hadoop   bigdata   sqoop   flume

Apache Sqoop 和 Flume 可以互换使用吗?(Can Apache Sqoop and Flume be used interchangeably?)

问题 我是大数据的新手。 从Flume 和Sqoop 有什么区别?的一些回答来看,Flume 和Sqoop 都可以从source 拉取数据,然后push 到Hadoop。 任何人都可以指定使用水槽的地方和使用 sqoop 的地方吗? 两者可以用于相同的任务吗? 回答1 Flume 和 Sqoop 都旨在处理不同类型的数据源。 Sqoop 适用于任何支持 JDBC 连接的 RDBMS 系统。 另一方面,Flume 可以很好地处理流数据源,例如在您的环境中连续生成的日志数据。 具体来说, Sqoop 可用于向 RDBMS 系统(如 Oracle、MS SQL Server、MySQL、PostgreSQL、Netezza、Teradata 和其他一些支持 JDBC 连接的系统)导入/导出数据。 Flume 可用于从像下面这样的源摄取高吞吐量数据并插入到下面的目的地(接收器)中。 常用的水槽源: 假脱机目录 - 在其中创建大量文件的目录,主要用于收集和聚合日志数据 JMS - 从基于 JMS 的系统收集指标还有更多常用的水槽: 高密度文件系统 HBase 索尔弹性搜索还有更多 不,这两种工具不能用于完成相同的任务,例如,flume 不能用于数据库,sqoop 不能用于流数据源或平面文件。 如果您有兴趣,flume 也有一个替代品,它与 chukwa 做同样的事情。

2021-09-16 02:24:25    分类:技术分享    hadoop   bigdata   sqoop   flume

使用 Flume 将文件从远程节点传输到 HDFS(Transferring files from remote node to HDFS with Flume)

问题 我有一堆压缩成 *gz 格式的二进制文件。 这些是在远程节点上生成的,必须传输到位于数据中心服务器之一的 HDFS。 我正在探索使用 Flume 发送文件的选项; 我探索了使用假脱机目录配置执行此操作的选项,但显然这仅在文件目录位于同一 HDFS 节点本地时才有效。 任何建议如何解决这个问题? 回答1 对于这种情况,没有现成的解决方案。 但是您可以尝试以下解决方法: 您可以为此目的创建自己的源代码实现(通过使用 Flume SDK)。 例如,这个项目似乎可以通过 ssh 连接到远程目录并将其用作源。 您可以创建一个自定义计划脚本来定期将远程文件复制到本地 spool 目录中,然后将其用作水槽代理的 spooling 目录源。 您可以尝试创建另一个脚本来读取远程数据,然后将其写入其输出并在 Exec 源中使用此类脚本。 您可以在数据所在的机器上找到您的水槽(和代理)(请参阅水槽的假脱机目录可以在远程机器中吗?)。 回答2 为什么不运行两个不同的 Flume 代理,一个在远程机器上,另一个在您的日期节点上。 远程机器上的代理可以读取假脱机目录并将其发送到 avro sink。 并且数据节点上的代理可以读取 avro 源并将数据转储到 HDFS。

2021-09-14 12:16:14    分类:技术分享    hadoop   hdfs   bigdata   flume

并行读取 Flume spoolDir(Reading Flume spoolDir in parallel)

问题 由于我不允许在 prod 服务器上设置 Flume,我必须下载日志,将它们放入 Flume spoolDir 并有一个接收器从通道使用并写入 Cassandra。 一切正常。 但是,由于我在 spoolDir 中有很多日志文件,并且当前设置一次只处理 1 个文件,所以需要一段时间。 我希望能够同时处理多个文件。 我想到的一种方法是使用 spoolDir 但将文件分发到 5-10 个不同的目录中,并定义多个源/通道/接收器,但这有点笨拙。 有没有更好的方法来实现这一目标? 谢谢 回答1 只是为了记录,这已在 Flume 的邮件列表中得到回答: Hari Shreedharan 写道: 抱歉不行。 spoolDir 源保持单线程,以便反序列化器实现可以保持简单。 使用多个 spoolDir 源的方法是正确的,尽管它们都可以写入相同的通道 - 所以你只需要更多的源,它们都可以共享相同的通道而你不需要'除非您想更快地提取数据,否则不需要更多接收器。 http://mail-archives.apache.org/mod_mbox/flume-user/201409.mbox/browser

2021-09-14 02:56:15    分类:技术分享    apache   flume   flume-ng

为 Flume-ng 编写一个自定义的 HTTPSource 处理程序(Write a custom HTTPSource Handler for Flume-ng)

问题 是否有任何资源可以帮助我为 Flume-ng 的 HTTPSource 编写自定义处理程序。 我阅读了文档,并且有一个 Json 示例处理程序,但我想知道是否有人需要编写一个处理程序来从 XML 消息正文创建 Flume 事件。 HttpSource 现在在 Flume-ng 1.3.1 中可用,但我们需要处理程序来解释我们的数据。 谢谢。 回答1 你看 JSONHandler 源码了吗? XMLHandler 的唯一区别是使用一些 XML 解串器而不是 Gson。 您只需要转换如下内容: <dataList> <data> ... </data> <data> ... </data> </dataList> 进入 List<SimpleEvent> (或者引入您自己的 HTTPEvent,就像 Flume 开发人员对 JSONEvent 所做的那样,如果您需要处理不同的编码)。 这些事件的主体将包含您的<data>..</data>块作为字符串的字节表示。 我不建议在 Flume 中实现任何额外的业务逻辑来解析这些事件,因为业务规则往往会经常变化,而 Flume 作为基础设施软件应该是稳定的。 最后,将代码打包到 jar 中,将此 jar 放入 Flume 的 lib 目录(Cloudera 的 rpm 发行版为 /usr/lib/flume-ng/lib),在flume

2021-09-11 20:28:55    分类:技术分享    flume

Flume - TwitterSource language filter

I would like to ask your help in the following case. I'm currently using Cloudera CDH 5.1.2 and I tried to collect Twitter data using Flume as it is described in the following porsts (Cloudera): http://blog.cloudera.com/blog/2012/10/analyzing-twitter-data-with-hadoop-part-2-gathering-data-with-flume/ github.com/cloudera/cdh-twitter-example I downloaded the source and rebuilt the flume-sources after updating the versions in pom.xml: <flume.version>1.5.0-cdh5.1.2</flume.version> <hadoop.version>2.3.0-cdh5.1.2</hadoop.version> It worked perfectly. After that I wanted to add a "language" filter

2021-09-09 00:59:06    分类:问答    hadoop   twitter   flume   cloudera-cdh   flume-twitter

JSON data sink to Apache Phoenix with Apache Flume Error

I want to sink JSON data into Apache Phoenix with Apache Flume, followed an online guide http://kalyanbigdatatraining.blogspot.com/2016/10/how-to-stream-json-data-into-phoenix.html, but met the following error. How to resolve it? Many thanks! My environment list as: hadoop-2.7.3 hbase-1.3.1 phoenix-4.12.0-HBase-1.3-bin flume-1.7.0 In flume, I added phoenix sink related jars in $FLUME_HOME/plugins.d/phoenix-sink/lib commons-io-2.4.jar twill-api-0.8.0.jar twill-discovery-api-0.8.0.jar json-path-2.2.0.jar twill-common-0.8.0.jar twill-discovery-core-0.8.0.jar phoenix-flume-4.12.0-HBase-1.3.jar

2021-09-08 06:20:33    分类:问答    apache   flume   phoenix