Flume源码分析01-概述及环境搭建
Posted 矢量操作
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flume源码分析01-概述及环境搭建相关的知识,希望对你有一定的参考价值。
Flume源码分析01-概述及环境搭建
概述
介绍
Apache Flume是一个分布式,可靠且可用的系统,用于高效地收集,汇总和将来自多个不同源的大量日志数据移动到集中式数据存储区。
组成
Flume由 Source,Channel,Sink 三大组件组成
Source 数据源,用于将数据包装为Event对象,推送给Channel
Channel 数据通道,用于缓存Source推送的数据
Sink 从Channel中消耗一个Event,将其存储到目的地,例如 HDFS,ElasticSearch
数据流模型
环境搭建
准备
Eclipse 集成开发环境
apache-flume-1.8.0-bin.tar.gz
apache-flume-1.8.0-src.tar.gz
解压
解压src,这是解压后的文件夹
可以看到.pom文件,说明使用了Maven构建,我们只需要配置一个基本的学习环境,所以不需要将其全部导入,只导入最基本的即可,我们选以下这三个包
flume-ng-configuration 配置相关
flume-ng-core 包含基本的框架定义
flume-ng-node 启动入口
导入到Eclipse
这里推荐使用Eclipse的Maven插件直接导入,我的Maven出了一些问题,所以采用手动导入的方法
在Eclipse中建立一个Java Project
在该项目中创建 org.apache.flume 包
在文件系统中,将对应文件拖入到flume目录下,以flume-ng-configuration为例
将flume-ng-configurationsrcmainjavaorgapacheflume中的文件
拖放到eclipse-workspaceflumesrcorgapacheflume中
完成之后,刷新Eclipse项目
可以看到一万个报错,因为没有使用Maven配置项目,所以依赖还没配置
右键项目,新建一个名为libs的文件夹,解压bin,将lib里的文件复制到项目下的libs文件夹,新建一个 User Library
将libs文件夹下的jar包导入
在项目的build-path中加入刚刚创建的库,哦了
将binconflog4j.properties,复制到项目下的src中,在下列语句末尾添加console
flume.root.logger=INFO,LOGFILE,console
在项目根目录创建配置文件 example.conf
1 |
#example.conf:单节点Flume配置 |
测试运行,为org.apache.flume.node.Application类加上启动参数 -n a1 -f example.conf
可以看到启动成功,接下来测试一下
使用telnet连接localhost:44444
以上是关于Flume源码分析01-概述及环境搭建的主要内容,如果未能解决你的问题,请参考以下文章
Flume实用环境搭建:source(spooldir)+channel(file)+sink(hdfs)方式