【翻译】Flume 1.8.0 User Guide(用户指南)

翻译自官网flume1.8用户指南,原文地址:Flume 1.8.0 User Guide

一、 介绍

1. 概述

  Apache Flume 是收集、汇总和移动大数据量的不同数据源到集中的数据仓库的分布式的、可靠的、可用的系统。

  使用flume 不仅仅可以做日志收集。自从数据源可自定义,flume可以转移大量的事件数据,包括但不限于网络数据、社交网络数据、邮件数据和处理任何数据源的问题。

  Apache Flume是Apache基金会的顶级项目。

  现有两个可用的发布版本:0.x 和 1.x。

  0.9.x的文档在 flume0.9.x 用户指南

  这篇文档适用于1.4.x版本。

  新的和已使用的用户推荐使用1.x版本,这是可以使用最新版本带来的性能提升和更灵活的配置。

2. 系统要求

  1. Java运行环境 java1.8 及以上

  2. 内存-给source、channel、sink配置足够的内存

  3. 磁盘空间-给channel或sink配置足够的磁盘空间

  4. 目录全选-给agent目录的读写权限

3. 架构

1.1 数据流模型

  一个flume的事件定为为一个byte的数据流和一组可选的字符串属性。flume的 agent(JVm)进程是外部数据源通过(agent)到下一个目的地的组件。

      

  flume的source,消费外部(比如一个web 系统)传递给它的事件。外部source 发送目标flume source可识别的格式的事件到flume。如:一个Avro flume source 可以接收Avro客户端发送的Avro格式的事件,或者接收另一个flume agent 的Avro sink发送的数据。一个相似的流可以使用flume的 Thrift source接收Thrift sink 或者Thrift  RPC客户端和Thrift 客户端用任何语言使用flume Thrift 协议生成的事件。文件channel是一个例子,使用本地文件系统支撑,sink从channel里面拿出数据,放到外部的资源库(如HDFS)或者在流中转发到另一个flume的agent的source。source和sink在指定的agent中以异步的方式传递事件。

1.2 复杂流

  flume 允许用户创建复杂的数据链路,事件在到达终点前可以经过多个agent,也允许fail-in和fail-out的流,为失败的跳跃点创建上下文路由和备份路由。

1.3 可靠性

  流中的事件事件在交付到下一个agent或者最终的仓库(如HDFS),在每个agent的channel中事件是分段的。事件只有在他们存储到下一个agent的channl或最终的仓库中,才会从channel中删除。这就是flume在流支持的“simple-hop”的端到端可靠性交付语义。

  flume使用一个交易方法保证数据交付。source和sink分别将事件从一个channel中存储和取出,这样可以确保事件流可靠的从一个点到另一个点。在多链路的流中,为了保证数据安全的存储到下一个链路的channel中,上一个链路的sink和下一个链路的source都会执行交易。

1.4 可恢复性

  channel存储事件,并管理数据恢复。flume支持持久化的备份在本地文件系统中的channel。flume也有事件存储在内存队列的channel,更快,但是事件存放在内存中,agent进程死亡不能恢复。

二、配置

2.1 配置一个agent

  flume的agent 配置存储在本地配置文件中。这是一个java properties 文件格式。一个配置文件里面可以有一个或多个agent。配置文件里面包括每一个source,sink和channel的配置和他们怎么绑定数据流的连接。

2.2 配置单个组件   

  每个组件(source,sink和channel)在流中名字,类型和配置,都有特定的类型。例如,Avrosource需要接收数据的hostname(或ip 地址) 和端口号。内存channel有最大队列容量, HDFS sink需要知道文件系统的URI, 创建文件的路径,文件滚动的频率等。flume agent的所有配置属性都需要在配置文件中配置。

2.3 连接组件

  agent需要知道加载的组件和他们的连接方式去构建一个流。这是监听每一个agent的source,sinks和channel名字完成的和每一个sink和source跟channel的连接。例如,一个事件流从avroWeb的Avro source到hdfs集群的HDFS sink ,通过一文件channel连接。配置文件包含组件的名字和avroWeb source和hdfs-cluster sinke的绑定。

2.4 启动一个aget

  使用flume发布版本bin目录下的shell脚本flume-ng启动一个agent。你需要在命令行下执行agent命名、配置文件路径和配置文件:

$ bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template

  现在agent会启动配置文件中的source和sink。

2.5 一个简单的案列

  我们提供一个配置文件的样例,描述一个简单的flume部署节点。这个配置文件让用户生成事件,并打印在console日志中。

# example.conf: A single-node Flume configuration

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

--------------未完待续---------------------

原文地址:https://www.cnblogs.com/Springmoon-venn/p/10328803.html

时间: 2024-08-08 12:39:05

【翻译】Flume 1.8.0 User Guide(用户指南)的相关文章

Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(一)

Flume 1.7.0 User Guide Introduction(简介) Overview(综述) System Requirements(系统需求) Architecture(架构) Data flow model(数据流模型) Complex flows(复杂流) Reliability(可靠性) Recoverability(可恢复性) Setup(配置)Configuration(配置 Setting up an agent(设置一个agent) Configuring indiv

Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(二) Flume Properties Property Name            Default  Description flume.called.from.service – If this property is specified then the

Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw stream of data flowing through the ingest pipeline is not desired behaviour in many production environments because this may result in leaking sensit

flume 1.8.0 开发基础

本文由云+社区发表 作者:皮皮熊 概述 Apache Flume是一个用于高效地从大量异构数据源收集.聚合.传输到一个集中式数据存储的分布式.高可靠.高可用的系统. Apache Flume是Apache基金会的顶级项目.现在有两个代码版本线可以获取:0.9.x和1.x.本文档对应的是1.x版本. 数据流模型 Event是流经flume agent的最小数据单元.一个Event(由Event接口实现)从source流向channel,再到sink.Event包含了一个payload(byte a

scons用户指南翻译(附gcc/g++参数详解)

scons用户指南 翻译 http://blog.csdn.net/andyelvis/article/category/948141 官网文档 http://www.scons.org/documentation.php ===================================== UNIX系统开发-gcc参数详解 [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2

Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件

其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,兼容

【翻译自mos文章】改变数据库用户sysman(该用户是DB Control Repository 的schema)密码的方法

改变数据库用户sysman(该用户是DB Control Repository 的schema)密码的方法 参考原文: How To Change the Password of the Database User Sysman (DB Control Repository Schema) (Doc ID 259379.1) 适用于: Enterprise Manager for Oracle Database - Version 10.1.0.2 to 11.2.0.3 [Release 10

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级. 这个版本发布过之后,再发布新的版本需要到下个月的中下旬,老朋友可以使用本版本后面延续升级 目前有大约127家用户在用,没有修改过注册授权文件,系统非常成熟,推荐指数为五星,QQ:619920289 麦枫论坛http://www.mfsun.com 简介 EXCEL服务器作为一款客户化.综合性管理软件,它通过Excel就能构造出您自主的管理系统:同时,她也可将您公司现

Flume 1.7.0单机版安装

下载解压到/usr/local/flume 配置环境变量 export FLUME_HOME=/usr/local/flume export FLUME_CONF_DIR=$FLUME_HOME/conf export PATH=.:$PATH::$FLUME_HOME/bin 在conf里配置flume-env.sh  添加jdk路径 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 flume-ng version 验证是否安装成功 [em