1.什么是flume?
分布式的海量日志的收集,聚合,移动,传输的框架:
- fulme Agent是一个jvm进程,包括Source, Channel, Sink三部分。
- flume event是数据流中的一个基本单位
- Source接收并且消费外部数据源传递过来的events,Channel用于中间的存储,Sink做数据输出。外部数据源发送数据到flume,必须按照Source支持的格式发,例如Avro Source接收的是Avro events(可能是外部的avro client 或 avro sink发来的数据)
- 复杂的流:flume支持多跳的流(多个agent连接到一起),扇入,扇出,上下文路由,备份路由
- 可靠性保证:events是保存在agent的channel中的,这些events会被分发到先一个agent或者是终端存储(例如hdfs),这些events只有当它们被下一个agent的channel或者终端存储保存后,才会从前一个channel中删除掉
- 可恢复性: file channel 保存在本地文件系统上;memory channel 保存在内存中,它更快,但是agent挂掉,内存中的events无法恢复
2.为flume社区做贡献或者提交bug的网址
http://flume.apache.org/getinvolved.html
3.flume 安装
(1)下载flume 1.8版本(注意:flume 1.8 需要 java 1.8 or later)
(2)修改conf下的flume-conf.properties
hd1.sources=s1 hd1.sources.s1.type=netcat hd1.sources.s1.bind=localhost hd1.sources.s1.port=44444 hd1.channels=c1 hd1.channels.c1.type=memory hd1.channels.c1.capacity=1000 hd1.channels.c1.transcationCapacity=100 hd1.sinks=sk1 hd1.sinks.sk1.type=logger #把source 和 sink 关联到channel上 #1个source可以对应多个channel(重点) hd1.sources.s1.channels=c1 #一个sink只对应1个sink(重点) hd1.sinks.sk1.channel=c1
配置文件主要分为3个步骤:
- 给当前的agent起个名字(此处是hd1)
- 配置agent的source,channel, sink三个组件,每个组件都有名字和类型,以及自己的额外属性;
- 关联source -> channels (1个source可以有多个channels) 和 sink -> channel (1个channel只能有1个sink)
(3)启动命令:
-n指定agent的名字(和配置文件里的一致,否则启动后会发现不报错,但是没有44444端口),命令不要写错,-D后面的参数是小写(否则不输出到屏幕)
flume-ng agent -n hd1 -c /data/apache-flume-1.8.0-bin/conf/ -f /data/apache-flume-1.8.0-bin/conf/flume-conf.properties -Dflume.root.logger=INFO,console
4.在flume的配置文件中,也支持环境变量
例如,下面的配置方式:
启动的命令是(注意一定要 -D 指定 -DpropertiesImplementation):
NC_PORT=44444 flume-ng agent -n hd1 -c /data/apache-flume-1.8.0-bin/conf/ -f /data/apache-flume-1.8.0-bin/conf/flume-conf.properties -Dflume.root.logger=INFO,console
-DpropertiesImplementation=org.apache.flume.node.EnvVarResolverProperties
5.--no-reload-conf参数默认是false,表示配置文件发生变更就会重新加载配置文件
测试流程:
(1)启动flume
(2)telnet localhost 44444 ( 发测试信息,不断开)
(3)修改配置文件,把端口号改为44445
(4)等待1s左右,flume会重新加载配置文件,端口号改为新的44445
(5)此时(2)中的telnet一直未挂关闭(端口是44444),继续发信息,屏幕上依然可以输出接收到的信息
(6)netstat -nptl | grep 44444 发现端口已经不在了,netstat -nptl | grep 44445 变成了新的端口在发数据
通过(5)和(6)可知,改变了配置,flume自动加载了配置,不影响尚未关闭的原来的服务(source端的接收,和sink端的输出未受影响)
6.一些flume用到的java参数
-Dflume.root.logger=DEBUG,console
-Dorg.apache.flume.log.printconfig=true
-Dorg.apache.flume.log.rawdata=true
相关推荐
Flume安装详细步骤 Flume是一款基于Java的分布式日志收集系统,主要用于收集和传输大规模日志数据。下面是Flume安装的详细步骤: Step 1: 安装JDK环境 在安装Flume之前,需要确保JDK环境已经安装。这里我们使用...
接下来,我将详细介绍与Flume安装使用相关的知识点。 ### Flume的安装步骤 1. **下载安装包**:首先需要从Apache官方网站下载Flume的tar.gz压缩包,例如文档中提到的apache-flume-1.6.0-bin.tar.gz。 2. **解压...
在本安装指南中,我们将深入探讨如何使用提供的`flume-1.6.0-bin.tar`安装包来安装和配置Apache Flume。 1. **下载与准备**: 首先,你需要从Apache官方网站下载Flume的最新稳定版本。在本例中,我们已有一个名为`...
### Hadoop中Flume安装指南 #### 知识点一:Hadoop与Flume简介 - **Hadoop**:一个能够对大量数据进行分布式处理的软件框架,它为用户提供了高扩展性的系统来存储和运行应用程序。 - **Flume**:一款高可靠、高...
### Flume安装过程详解及其配置步骤 #### 一、Flume简介 Apache Flume是一款高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。Flume支持简单灵活的配置,可以很好地满足多种场景下的数据采集需求。Flume...
Flume 安装搭建使用 Flume 是一个分布式的、可靠的、高效的日志收集、聚集、移动服务。它可以实时处理大数据量的日志,提供了一个灵活的架构来处理大数据。 一、Flume 简介 Flume 是一个基于流式架构的服务,能够...
3. 将下载好的Flume安装文件上传到目标服务器的指定目录下,例如/opt/psrv/programes目录。 4. 解压安装包:使用命令`tar -zvxf flume-distribution-0.9.4-bin.tar.gz`来解压文件到当前目录。 5. 在解压后的目录中...
在这个“flume安装文档”中,我们将探讨 Flume 的安装步骤、配置以及一个简单的 Avro 类型的数据传输示例。 **一、Flume 安装** 1. **下载 Flume**:首先,你需要从 Apache 官方网站下载最新稳定版本的 Flume。在...
1.flume是什么? 这里简单介绍一下,它是Cloudera的一个产品 2.flume是干什么的? 收集日志的 3.flume如何搜集日志? 我们把flume比作情报人员 (1)搜集信息 (2)获取记忆信息 (3)传递报告间谍信息
启动命令位于 Flume 安装目录的 `bin` 子目录下,使用 `flume-ng agent` 命令,指定配置文件启动服务。 为了验证 Flume 集群的工作,可以在 hadoop12 的 `logs` 目录下创建一个测试文件,然后观察 hadoop13 上 `...
安装 Flume 首先需要确保你的系统上已经安装了 Java 1.7 或更高版本,并且正确配置了 Java 环境变量。你可以通过 `java -version` 命令检查 Java 版本。然后,你可以从 Flume 的官方网站...
在本文档中,我们将深入探讨Flume的安装部署以及配置文件的使用。 首先,要安装Flume,你需要访问官方网站http://flume.apache.org/下载最新版本的Flume。在下载完成后,解压缩文件到你的服务器或开发环境中。安装...
Flume 1.8 安装部署 Flume 是一个分布式、可靠、可扩展的日志收集、聚合和移动系统,广泛应用于大数据和实时数据处理领域。以下是 Flume 1.8 安装部署的详细步骤和相关知识点。 一、准备工作 1. 下载 apache ...
### Flume安装手册 #### 一、Flume简介与应用场景 Apache Flume 是一款高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。它具有简单的架构和灵活的配置,非常适合分布式日志收集场景。 #### 二、Flume在...
4. 将flume/conf下的flume-env.sh.template文件修改为flume-env.sh,并配置JAVA_HOME环境变量,指向JDK的安装目录。 入门案例: 1. 创建配置文件:例如使用Flume实时监控整个目录的新文件,自动输出到控制台。 2. ...
在进行Flume安装之前,需要确保以下条件: - **操作系统**: 本文档假设使用的操作系统为Linux。 - **JDK**: 已经安装了JDK,并且JDK版本至少为1.7或以上。Flume依赖于Java运行环境。 - **Hadoop**: 如果需要集成...
在这个场景中,我们将探讨如何安装和配置Flume,以及如何利用它进行数据采集。 首先,Flume的安装过程非常直观。你可以从Apache的官方镜像站点(如描述中给出的...
`flume安装及使用.conf`文件可能包含以下内容: ``` a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = avro a1.sources.r1.bind = localhost a1.sources.r1...