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,这是解压后的文件夹
Flume源码分析01-概述及环境搭建
可以看到.pom文件,说明使用了Maven构建,我们只需要配置一个基本的学习环境,所以不需要将其全部导入,只导入最基本的即可,我们选以下这三个包

  • flume-ng-configuration 配置相关

  • flume-ng-core 包含基本的框架定义

  • flume-ng-node 启动入口

导入到Eclipse

这里推荐使用Eclipse的Maven插件直接导入,我的Maven出了一些问题,所以采用手动导入的方法
在Eclipse中建立一个Java Project
Flume源码分析01-概述及环境搭建
在该项目中创建 org.apache.flume 包
在文件系统中,将对应文件拖入到flume目录下,以flume-ng-configuration为例
将flume-ng-configurationsrcmainjavaorgapacheflume中的文件
Flume源码分析01-概述及环境搭建
拖放到eclipse-workspaceflumesrcorgapacheflume中
Flume源码分析01-概述及环境搭建
完成之后,刷新Eclipse项目
Flume源码分析01-概述及环境搭建
可以看到一万个报错,因为没有使用Maven配置项目,所以依赖还没配置
右键项目,新建一个名为libs的文件夹,解压bin,将lib里的文件复制到项目下的libs文件夹,新建一个 User Library
将libs文件夹下的jar包导入
Flume源码分析01-概述及环境搭建
在项目的build-path中加入刚刚创建的库,哦了
Flume源码分析01-概述及环境搭建
将binconflog4j.properties,复制到项目下的src中,在下列语句末尾添加console

flume.root.logger=INFO,LOGFILE,console

在项目根目录创建配置文件 example.conf


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#example.conf:单节点Flume配置

#命名此代理上的组件
a1.sources  =  r1
a1.sinks  =  k1
a1.channels  =  c1

#描述/配置源
a1.sources.r1.type  =  netcat
a1.sources.r1.bind  =  localhost
a1.sources.r1.port  =  44444

#描述接收器
a1.sinks.k1.type  =  logger

#使用缓冲存储器中事件的通道
a1.channels.c1.type  =  memory
a1.channels.c1.capacity  =  1000
a1.channels.c1.transactionCapacity  = 100

#将信源和信宿绑定到信道
a1.sources.r1.channels  =  c1
a1.sinks.k1.channel  =  c1



测试运行,为org.apache.flume.node.Application类加上启动参数 -n a1 -f example.conf
Flume源码分析01-概述及环境搭建
可以看到启动成功,接下来测试一下
使用telnet连接localhost:44444


以上是关于Flume源码分析01-概述及环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

mybatis复习

flume原理及代码实现

Flume-NG源码分析-整体结构及配置载入分析

Flume实用环境搭建:source(spooldir)+channel(file)+sink(hdfs)方式

SpringBoot.01.SpringBoot概述及基本环境搭建

SpringBoot.01.SpringBoot概述及基本环境搭建