Apache Flume- 安装部署&简单入门|学习笔记

简介: 快速学习 Apache Flume- 安装部署&简单入门

开发者学堂课程【Flume 基础应用实战-企业全场景解决方案Apache Flume- 安装部署&简单入门】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/715/detail/12767


Apache Flume- 安装部署 & 简单入门

内容介绍:

一、Flume 的安装部署

二、简单入门

三、小结


一、Flume 的安装部署

Flume 的安装部署相比较于其他大数据软件显得非常简单,只需要在机器上解压装包配置一个环境变量即可Flume 工作的重点在于配置一个叫做采集方案的文件所谓的采集方案指需要个人根据业务需求描述清楚 Flume中三个组件source、channel、sink 的类型,我们只需要根据业务需求确定 source、channel、sink 的类型,比如把数据放在 HDFS 上,接下来去官网看有没有开发出这一个,然后只需要它复制过来,把里面参数属性修改一下不需要从去配置这些东西

1、采集方案的取名:

这个采集方案的名通常都是以 .conf 结尾的,至于前面叫什么名字没有强制的约束,可以给它起名叫做 1.conf2.conf,但在企业,要求见名知意,就是别人看到名字就知道代表了什么含义

2、采集方案的参数如何编写:

重点在里面的内容如何编写,打开官网会发现,网站左边有一个叫做Documentation 文档,点击一下打开之后选择 user guide 用户指导手册,这里面有各种各的选项,可以浏览一下

图片1.png

configuration 怎么去配置重点在下面

图片2.png

第一块叫做 Flume 的数据源,这个模块当中列举出来了当下版本 Flume 支持的各种各样的数据,有 Avro SourceThrift Source,Exec Source (执行义务命令),还有 JMS Source(java 消息队列)我们要做的就是根据需求找到对应的选项,然后看里面的相关配置参数甚至下面还会给一个例子只要把例子复制过来,根据需求修改即可

同样其他两个组件也有官方自带的说明。

图片24.png

这里有好多 sink,比如把数据放在 HDFS上,存放在 Hive 等,只要官方支持都可以来使用,同样的还是点击它根据需求来确定参数,如果不知道,这里官方私例后面有相关的文档说明

Channel 也有相关的描述

图片25.png

有缓存到内存当中的 memory channel, 有缓存到数据库当中 JDBC 来缓存的,有缓存在卡卡当中等,每个类型各有优缺点,要根据需求来做一个相关的选择。

3、采集方案的内容:

做一个采集去监听一个网络端口,比如可以通过网络端口发送数据只要端口有数据,就可以把数据通过 Flume 收集到把它传递到屏幕终端上,就是把它打印出来,但这个没有任何实战意义,只是为了做一个简单的入式

图片26.png

首先,它的名字是 netcat-logger.conf,netcat 就是官方支持的一个组件用于监听某个端口,logger 就是打印在屏幕中端以日志的形式来输出

方案当中需要东西

(1)首先第一大块,需要给三个组件分别起个名字,这里起名字叫做 r1、k1、c1命名规则来自于官网,官网的例子当中都叫 r1、k1、c1事实上名字可以任意起描述清楚即可

(2)描述和配置 source 组件 r1它的类型叫做 netcat。通过官网会发现下面有解释说明,它可以去监听一个给定的端口,然后把收到的文本变成一个 event 传递source 就是去监听端口的数据,把文本变成 event 放在 Flume 传递下面绑定 localhost 这个端口端口是44444,这三个选项就把 source 描述清楚了

(3)描述和配置 sink 组件 s1把数据放在屏幕终端上打印,这在企业当中没有实际的意义,这里是做一个 hello 的入门叫做 logger, 把它打印屏幕上,后面可以把它改为 hive放在任何想放的地方叫它支持就可以.

(4)描述和配置 channel 组件 c1它的类型叫做 memory, 是一个内存 channel,简单说就是把数据放在内存当中一个缓存,但是内存的缓存可能不能无限释放,内存容易撑爆,来一个容量 capacity=10001000就表示 event 的个数它把收集的数据包装成一个 event 的格式,它最多可以内存中放1000个,下面的 transaction 叫做事物的容量,这100个当中会存在一个事物概念,要么一起成功,要么一起失败.

(5)描述和配置 source、channel、sink 之间的连接关系:通过组件配置把这三个做一个拼接source 的 channel 为 c1,sink 的 channel

c1这两个条件写完之后就相当于构成了这样一个图。

图片27.png

中间就是 c1一手拉着 sourcee一手拉着sink就构成了一个 agent 的进程,就是采集方案文件,在这里只是一个简单的入门,在后续过程或者在企业当中,需要结合具体的业务来把采集方案描述的更加的详细清楚方案当中参数拆除的写法可以去官网上寻找

4、演示部署

图片36.png

打开服务器进入到常见的安装软件的目录,在 export 下的 servers 下,把 Flume 的安装包拖进来,这里用的是版本1.8,选择软件 Flume 安装包拖上来,选择 tar-zxvf 然后上传,然后做解压,解压到当前路径下。

输入:tar zxvf apache-flume-1.8.0-bin.tar.ge

解压完后通常会删除安装包,做一个重命名。

图片28.png

接下来 cd 到当中ll来查看一下文件的格式

图片29.png

这个目录结构跟 Apache 的软件非常相似,上面这个 Bin 应该放的是启动相关的脚本,下面 conf 存放配置文件文档架包工具等。

修改 conf 下的 flume-env.sh,在里面配置 JAVA HOME 即可。现在来做操作cd到conf 路径下。

图片30.png

它叫做 flume-env.sh 脚本,但是这里有一个叫做 template 后缀,一个模板

图片31.png

因此第一步给它重命名,把 Flume-env.sh.template 改个名字把后面的 .template 去掉

接下来编辑一下这个脚本

图片32.png 

可以发现在光标闪烁这一行导入 JAVA_HOME,但现在应该先把前面的注释给它释放开那么 java 路径在哪里这时候有一个小技巧

图片33.png

一下本机来克隆一下找一下 javawhich java), 就可以知道 java 的所在路径下,但是指向 jdk 安装的根目录配置好之后做一个快速保存,这样就配置好了。

现在这个脚本没有执行的权限,来一个 chmod a+x,所有的用户都加一个执行的的权限

图片34.png

这样这个脚本就有执行权限了也就配置好 Flume 了。

图片35.png 


二、Hello World 简单入门

打开文件,首先给这个文件起个名字就叫做 netcat-logger 再 cd 到 conf 当中做一个编辑 vim。

图片15.png

配置下图内容

图片16.png

然后打开编辑器粘贴,之后再做一个确认 ,r1,c1,k1, 尤其端口 IP 的一定要保持一致,确认工作做一个快速的保存接下来就是启动 Flume启动 Flume 命令也非常死

图片17.png 

首先 bin/flume-ng 表面它是新的 flume首先指定配置文件 conf 在哪里,然后指定它具体的采集方案的名字,这个名字就是刚才写名字,然后的名字叫 a1,这有个小插曲,大家发现--name a1,这不是写,这里面都叫 a1,说明这个 agent进程名字就叫做 a1那里面应该就是 a1的具体描述里面就应该和对应上,后面是开启日志,把日志打印在 console 终端上

接下来把命令做一个复制做一个执行,看一下 Flume 怎样进行数据的采集。来到终端,因为没有配置环境变量,就返回到它的根目录做一个执行回车 ),这时就启动flume。

图片18.png 

它说现在正在监听本机的5个四端口,但现在并没有数据

怎么模这个端口有数据?这有一个小命令叫做 telnet,可以本机进行一个交互如下图

图片19.png

可以通过这个小工具连接到了本机五个端口,现在比如说一句哈喽然后车。

图片20.png

可以看到这边敲个 hello 之后,有变成蓝色,说明有数据输出,也就是它把 hello数据出来了

图片21.png 

这一个类型就是所说的 event 类型,ecent 相当于一个数据包,当中有 hand看对面没有信息,然后后面是 body,数 headers, 数据 hello 就在 body 当中。这就正好演示了通过工具往本机端口发送的数据,把它收集到包装成一个 event 打印在屏幕终端上,这就完成了 Flume 数据搬运的工作这个简单的 hello world 并没有任何实际的意义,只在这里帮解释,重点感受一下 flume 的采集方案如何编写以及如何去启动 flume。


三、小结

1、flume 的安装部署

在 conf/flume-envsh 导入 java 环境变量保证 flume 工作的时候一定可以正确的加载到环境变量

2、flume 开发步骤

(1)重点就是根据业务需求编写采集方案配置文件

(2)文件名见名知意通常以 souce--sink.conf

(3)具体需要描述清楚 sink source channel 组件配置信息,要结合官网配置

(4)启动命令

bin/flume-ng agent--conf conf--conf-file conf/netcat-1ogger.conf --name a1- Df1ume.root.logger=INFO.console

--conf 指定配置文件的目录

--conf-file 指定采集方案路径

--name agent 进程名字,要跟采集方案中保持一致

相关文章
|
6月前
|
Java 应用服务中间件 Apache
从零手写实现 apache Tomcat-01-入门介绍
创建简易Tomcat涉及理解其作为Java服务器的角色,建立HTTP服务器,实现Servlet接口处理动态和静态内容,以及启动和关闭服务器。项目mini-cat是一个简化版Tomcat实现,支持Servlet、静态网页和基础功能。可通过maven添加依赖并运行测试类快速体验。开源项目位于[GitHub](https://github.com/houbb/minicat)。
|
6月前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
308 2
|
1月前
|
存储 消息中间件 druid
大数据-150 Apache Druid 安装部署 单机启动 系统架构
大数据-150 Apache Druid 安装部署 单机启动 系统架构
39 1
|
6月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
127 0
|
6月前
|
分布式计算 Java 大数据
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
98 0
|
5月前
|
Java 应用服务中间件 Apache
Apache HTTP配置反向代理入门
Apache HTTP配置反向代理入门
424 0
Apache HTTP配置反向代理入门
|
5月前
|
SQL 资源调度 分布式计算
Apache DolphinScheduler 【安装部署】
Apache DolphinScheduler 【安装部署】
|
6月前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
|
6月前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
204 0
|
6月前
|
监控 测试技术 Linux
性能工具之 Apache Bench 入门使用
ab 全称为:apache bench,ab 为小型压力工具,对于在 Linux 中简单压测 HTTP 接口轻巧灵活。
110 1

推荐镜像

更多