hadoop生态 apache-Flume-1.8.0 的安装和 使用

hadoop生态 怎么 安装 apache-Flume-1.8.0

Flume 1.8.0 是 Apache Flume 的一个版本,Flume 是一个分布式、可靠且可用的服务,用于高效地收集、聚合和传输大量日志数据到 Hadoop 存储。Flume 主要用于大数据生态系统中,尤其是与 Apache Hadoop 结合使用,来处理大规模的流数据。

主要常见的应用场景:

日志收集: Flume 常被用来收集应用程序日志、服务器日志等,并将其传输到 Hadoop 存储系统中进行进一步分析。

实时数据流: 它还可以用于实时流数据的处理和分析,广泛应用于日志分析、监控系统等场景。

总的来说,Flume 1.8.0 是一个高效的、可靠的数据传输系统,特别适用于处理大规模的流数据,并且与 Hadoop 生态中的其他工具(如 HDFS、HBase)无缝集成。


文章目录

  • [hadoop生态 怎么 安装 apache-Flume-1.8.0](#hadoop生态 怎么 安装 apache-Flume-1.8.0)

Flume安装部署

安装apache-flume-1.8.0

第一步

下载好 apache-flume-1.8.0-bin.tar.gz

第二步 解压

bash 复制代码
tar -zxvf apache-flume-1.8.0-bin.tar.gz

第三步 修改 权限

bash 复制代码
chmod 777 apache-flume-1.8.0-bin

进⼊apache-flume-1.8.0-bin的⽬录

第四步 重命名flume-env.sh.template ⽂件

bash 复制代码
mv flume-env.sh.template flume-env.sh

第五步 配置 flume-env.sh

bash 复制代码
vi flume-env.sh

第六步

升级替换 guava jar包

bash 复制代码
cp /opt/module/hadoop-3.3.0/share/hadoop/hdfs/lib/guava-27.0-jre.jar /opt/m
odule/apache-flume-1.8.0-bin/lib/

示例 1

1、先在flume的conf⽬录下新建⼀个⽂件

vim netcat-logger.conf

将下面的 数据 copy 到 netcat-logger.conf

bash 复制代码
# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置source组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.spoolDir = /home/hadoop/logs
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 描述和配置sink组件:k1
a1.sinks.k1.type = logger
# 描述和配置channel组件,此处使⽤是内存缓存的⽅式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置source channel sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

解释

Flume 配置说明

  1. 定义 Agent 中各组件的名字
properties 复制代码
a1.sources = r1
a1.sinks = k1
a1.channels = c1

a1 是 Flume agent 的名称。在这个 agent 中,我们定义了三个组件:source、sink 和 channel。

r1 是 source 的名字。

k1 是 sink 的名字。

c1 是 channel 的名字。

2 配置 Source 组件 r1

properties 复制代码
a1.sources.r1.type = netcat
a1.sources.r1.spoolDir = /home/hadoop/logs
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

a1.sources.r1.type = netcat:该配置表示使用 netcat 类型的 source。netcat 是一个可以通过网络接收数据的 source 类型。

a1.sources.r1.spoolDir = /home/hadoop/logs:这个配置通常用于 spooldir 类型的 source,但在 netcat 类型中可能不会使用到。它指定了一个目录路径(/home/hadoop/logs)用于收集日志文件。

a1.sources.r1.bind = localhost:表示该 source 会绑定到本地网络地址(localhost)。

a1.sources.r1.port = 44444:该配置指定了 source 监听的端口(44444)。该端口将接收来自其他应用或者客户端的网络数据。

  1. 配置 Sink 组件 k1
properties 复制代码
a1.sinks.k1.type = logger

a1.sinks.k1.type = logger:该配置表示使用 logger 类型的 sink。logger 是一个将接收到的数据打印到 Flume 日志的 sink,而不是将数据写入到其他存储系统。通常在开发和调试过程中使用。

  1. 配置 Channel 组件 c1
properties 复制代码
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

a1.channels.c1.type = memory:表示该 channel 使用内存作为缓存。这种配置适用于简单场景,数据将被存储在内存中。

a1.channels.c1.capacity = 1000:该配置设置了 c1 channel 能够存储的最大事件数量。最多可以缓存 1000 个事件。

a1.channels.c1.transactionCapacity = 100:表示在一次事务中,最多可以处理 100 个事件。

  1. 配置 Source、Sink 和 Channel 之间的连接关系
properties 复制代码
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

a1.sources.r1.channels = c1:表示 r1 source 组件将事件发送到 c1 channel。

a1.sinks.k1.channel = c1:表示 k1 sink 组件从 c1 channel 获取事件并进行处理。

整体流程

r1(netcat source)从 localhost:44444 端口接收数据。

接收到的数据会被传输到 c1(内存类型的 channel)。

k1(logger sink)从 c1 channel 获取事件并将其输出到 Flume 日志中。

采集

1、测试

先要往agent采集监听的端⼝上发送数据,让agent有数据可采。

随便在⼀个能跟agent节点联⽹的机器上:

telnet anget-hostname port

2、启动agent去采集数据

telnet localhost 44444

在看一个窗口

bash 复制代码
执行命令 
bin/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console

测试

打入 hello world

Flume 1.8.0 主要特点:

事件驱动的流处理: Flume 允许通过事件驱动的方式从各种来源(例如:日志文件、网络服务等)收集数据,并通过管道进行传输。

支持多种来源与接收器: Flume 提供了多种 Source、Sink 和 Channel,用于适应不同的数据源和存储需求。例如,可以从日志文件、数据库、HTTP 请求等多个来源中读取数据,并将数据发送到 HDFS、Kafka 等接收器。

可靠性和容错: Flume 在传输数据时具有内建的可靠性机制,能够确保在网络故障、节点崩溃等情况下尽量避免数据丢失。

高吞吐量与低延迟: Flume 被设计为高吞吐量、低延迟的流数据传输系统,适用于实时流数据的处理需求。

集成 Hadoop 生态: Flume 作为 Hadoop 生态的一部分,能够方便地将数据送入 HDFS 或 HBase,并与其他 Hadoop 组件如 Hive、Spark 等无缝集成。

改进的性能: Flume 1.8.0 在性能方面进行了优化,包括更好的内存管理、事件批处理优化等,使得在高负载场景下的处理更加高效。

新增功能与修复: 这个版本还修复了一些bug,并新增了一些功能,例如更灵活的配置选项、更丰富的监控工具等,提升了使用体验。

常见的应用场景:

日志收集: Flume 常被用来收集应用程序日志、服务器日志等,并将其传输到 Hadoop 存储系统中进行进一步分析。

实时数据流: 它还可以用于实时流数据的处理和分析,广泛应用于日志分析、监控系统等场景。

相关推荐
m0_7482329228 分钟前
Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider
hadoop·python·flask
B站计算机毕业设计超人3 小时前
计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价预测 机器学习 深度学习 Python爬虫 HDFS集群
大数据·hive·hadoop·python·机器学习·spark·课程设计
不喝可乐_10 小时前
配置Apache本地服务支持PHP8--易错点
apache
chimchim6610 小时前
【starrocks学习】之将hive表数据同步到starrocks
hive·hadoop·学习
chimchim661 天前
【starrocks学习】之将starrocks表同步到hive
hive·hadoop·学习
IT古董1 天前
【深度学习框架】MXNet(Apache MXNet)
深度学习·apache·mxnet
jukuya1 天前
Apache HttpClient
爬虫·apache
WHYBIGDATA2 天前
Hive之数据定义DDL
大数据·数据库·hive·hadoop