flume java 安装部署_Flume概述及安装部署

本文介绍了Flume,一个用于收集、聚合和传输大量日志数据的分布式服务。Flume由Source、Channel和Sink组成,提供实时数据读取并写入HDFS。文中详细阐述了其基础架构,包括Agent的组件、Event的概念,以及安装部署的步骤,包括配置环境变量和入门案例,展示了如何监听端口并打印数据到控制台。
摘要由CSDN通过智能技术生成

一、Flume概述

1.1、Flume定义

Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data.

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。

bc2f9f466a595aed886d85bbfdbd39c0.png

Flume最主要的作用就是实时读取服务器本地磁盘的数据,将数据写入到HDFS。

1.2、Flume基础架构

4f56824dd16342cb0f868e44bb8a2f07.png

1)Agent

Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。

Agent 主要有 3 个部分组成,Source、Channel、Sink。

2)Source

Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格式的日志数据,包括 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。

3)Sink

Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个 Flume Agent。 Sink 组件目的地包括 hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。

4)Channel

Channel 是位于 Source 和 Sink 之间的缓冲区。因此,Channel 允许 Source 和 Sink 运作在不同的速率上。Channel 是线程安全的,可以同时处理几个 Source 的写入操作和几个Sink 的读取操作。

Flume 自带两种 Channel:Memory Channel 和 File Channel 以及 Kafka Channel。Memory Channel 是内存中的队列。Memory Channel 在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么 Memory Channel 就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。File Channel 将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

5)Event

传输单元,Flume 数据传输的基本单元,以 Event 的形式将数据从源头送至目的地。 Event 由 Header 和 Body 两部分组成,Header 用来存放该 event 的一些属性,为 K-V 结构, Body 用来存放该条数据,形式为字节数组。

d0008d0c80159d310eb9e7f374964b41.png

二、Flume安装部署

2.1、安装地址

1) Flume 官网地址

2)文档查看地址

3)下载地址

2.2、安装部署

d3d5c75163f56db1a8558728a041f251.png

5)配置环境变量

6)查看版本

三、Flume入门案例

3.1、监控端口数据官方案例

3.1.1、案例需求

使用 Flume 监听一个端口,收集该端口数据,并打印到控制台。

3.1.2、需求分析

a3572626f8aa79db47cfbe7b6a11f71e.png

3.1.3、实现步骤

1)安装 netcat 工具并判断 44444 端口是否被占用

2)创建 Flume Agent 配置文件 flume-netcat-logger.conf

969ba29580692e4de1742a4383cdedf8.png

3)开启 flume 监听端口

参数说明:

--conf/-c:表示配置文件存储在 conf/目录

--name/-n:表示给 agent 起名为 a1

--conf-file/-f:flume 本次启动读取的配置文件是在 job 文件夹下的 flume-telnet.conf

-Dflume.root.logger=INFO,console :-D 表示 flume 运行时动态修改 flume.root.logger参数属性值,并将控制台日志打印级别设置为 INFO 级别。日志级别包括:log、info、warn、error。

4)使用 netcat 工具向本机的 44444 端口发送内容,在 Flume 监听页面观察接收数据情况

8b76f0d9a5d34621ee43de23f45346c7.png

4810ee34a1116d8f1ba0c5d1b2196352.png

注意:不能使用nc hadoop102 44444

90ea009bd2337e2c34ad46b879154051.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值