Flume安装部署

相关知识

概述
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

作用:
1.串联
2.聚合
3.分发/路由
4.负载均衡

FLUME-NG架构图
Flume安装部署_第1张图片

Flume的架构主要有一下几个核心概念:
• Event:一个数据单元,带有一个可选的消息头
• Flow:Event从源点到达目的点的迁移的抽象
• Client:操作位于源点处的Event,将其发送到Flume Agent
• Agent:一个独立的Flume进程,包含组件Source、Channel、Sink
• Source:用来消费传递到该组件的Event
• Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event
• Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)

• Flume Source
Source类型 说明
Avro Source 支持Avro协议(实际上是Avro RPC),内置支持
Thrift Source 支持Thrift协议,内置支持
Exec Source 基于Unix的command在标准输出上生产数据
JMS Source 从JMS系统(消息、主题)中读取数据,ActiveMQ已经测试过
Spooling Directory Source 监控指定目录内数据变更
Twitter 1% firehose Source 通过API持续下载Twitter数据,试验性质
Netcat Source 监控某个端口,将流经端口的每一个文本行数据作为Event输入
Sequence Generator Source 序列生成器数据源,生产序列数据
Syslog Sources 读取syslog数据,产生Event,支持UDP和TCP两种协议
HTTP Source 基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式
Legacy Sources 兼容老的Flume OG中Source(0.9.x版本)

• Flume Channel
Channel类型 说明
Memory Channel Event数据存储在内存中,注:实现高速的吞吐,无法保证数据的完整性。
JDBC Channel Event数据存储在持久化存储中,当前Flume Channel内置支持Derby
File Channel Event数据存储在磁盘文件中,注:保证了数据的完整性,在配置FileChannel设置的目录和程序日志文件保存的目录设置成不同的磁盘,可以提高效率。
Spillable Memory Channel Event数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用)
Pseudo Transaction Channel 测试用途
Custom Channel 自定义Channel实现

• Flume Sink
Sink类型 说明
HDFS Sink 数据写入HDFS
Logger Sink 数据写入日志文件
Avro Sink 数据被转换成Avro Event,然后发送到配置的RPC端口上
Thrift Sink 数据被转换成Thrift Event,然后发送到配置的RPC端口上
IRC Sink 数据在IRC上进行回放
File Roll Sink 存储数据到本地文件系统
Null Sink 丢弃到所有数据
HBase Sink 数据写入HBase数据库
Morphline Solr Sink 数据发送到Solr搜索服务器(集群)
ElasticSearch Sink 数据发送到Elastic Search搜索服务器(集群)
Kite Dataset Sink 写数据到Kite Dataset,试验性质的
Custom Sink 自定义Sink实现
另外还有Channel Selector、Sink Processor、Event Serializer、Interceptor等组件

系统环境

Linux Ubuntu 14.04
jdk-7u75-linux-x64

任务内容

在已安装好的Hadoop环境基础上,安装并配置Flume。

任务步骤

1、下载软件并解压
mkdir -p /data/flume
cd /data/flume
wget http://www.apache.org/dyn/closer.lua/flume/1.9.0/apache-flume-1.9.0-src.tar.gz
tar -xzvf /data/flume/apache-flume-1.9.0-src.tar.gz -C /apps
cd /apps
mv ./apache-flume-1.9.0-src.tar.gz ./flume
2.修改环境变量
sudo vim ~/.bashrc

添加以下内容:

#flume config  
export FLUME_HOME=/apps/flume  
export FLUME_CONF_DIR=$FLUME_HOME/conf  
export PATH=$FLUME_HOME/bin:$PATH

是环境变量生效:

source  ~/.bashrc
3、配置Flume
cd /apps/flume/conf
mv ./flume-env.sh.template ./flume-env.sh
vim flume-env.sh

添加以下内容:

export JAVA_HOME=/apps/java
4、启动Flume
flume-ng version

你可能感兴趣的:(数据采集,数据处理,Flume学习)