Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡

简介: Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡

章节内容

上一节我们完成了:


HiveServer2 的介绍和配置安装

修改 core-size hdfs-site 实现集群的启动

Beeline 简单上手

HCatalog 简单上手

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。

之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。


注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!

请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!


但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:


2C4G 编号 h121

2C4G 编号 h122

2C2G 编号 h123

Flume 简介

Flume 是一个分布式,高可靠,高可用的海量日志采集、聚合、传输的系统。

Flume 支持在日志系统中定制各类数据发送方,用于采集数据。

Flume 提供对数据进行简单处理,并写到各种数据接收方的能力。


简单概括: Flume是实时采集日志的数据采集引擎。它有三个重要的组件概念:


Source

Channel

Sink

他们之间的关系如下图表示:

Flume特点

分布式:Flume分布式集群部署,扩展性好

可靠性好:当节点出现故障时,日志能够被传送到其他节点上而不会丢失

易用性:Flume配置使用繁琐,对使用人员专业度要求高

实时采集:Flume采集流模式对数据进行实时采集

类似工具

DataX 阿里异构数据源同步工具

Kettle 开源ETL

LogStash 应用程序日志、事件的传输、处理、管理和搜索的平台

Scribe FaceBook 开源的日志收集系统

Flume架构

Agent

本质上一个JVM进程,该JVM进程控制Event数据流从外部日志生产者传输到目的地,或是下一个Agent。

一个完整的Agent中包含了三个完整的组件:Source、Channel、Sink。

Source是指数据的来源方式,Channel是一个数据缓冲池,Sink定义了数据输出的方式和目的地。


Source

负责接受数据到 Flume Agent的组件。Source组件可以处理各种类型,各种格式的日志数据。


Channel

为了Source和Sink之间的缓冲,Channel允许Source和Sink运作在不同的速率上。


Channel是线程安全的,可以同时处理多个Source写入操作以及多个SInk的读取操作。


常见的Channel如下:


Memory Channel 是内存中的队列。Memory Channel在允许数据丢失的情况下使用

File Channel 将所有事件都写到磁盘。

Sink

不断地轮询Channel中的事件并且批量的移除它们,将这些事件批量写入存储或者索引系统,或者被发送到另一个Agent。


Event

是Flume定义的是一个数据流传输的最小单位。


Flume拓扑

串行模式

多个 Flume 结合起来,从最初的Source到最终Sink。

此模式不建议过多的Flume,过多不仅会影响传输速率,而且一旦传输过程中某个节点宕机,会影响整个系统。

复制模式

将事件流向一个或者多个目的地,这种模式将数据源复制到多个Channel中,每个Channel都有相同的数据,Sink可以选择传入不同的目的地。

负载均衡

多个 Sink 逻辑上划分到一个Sink组,Flume将数据发送到不同的Sink上。

Flume内部原理

  • Source接受事件,交给其Channel处理
  • 处理器通过拦截器 Interceptor,对事件进行处理,比如压缩解码、正则拦截、时间戳
  • 经过拦截的事件再传给Channel选择器,将事件写入相应的Channel。
  • 最后由Sink处理各个Channel事件。

项目下载

下载Flume

这里我选择:1.9.0

http://archive.apache.org/dist/flume/
• 1

使用 wegt 下载,或者 你现在好传到服务器上。我传到了 h122 机器上。

h122 /opt/software/

上传后进行解压

cd /opt/software
tar zxvf apache-flume-1.9.0-bin.tar.gz -C ../servers/
cd ../servers
ls

环境变量

修改配置文件

vim /etc/profile

写入如下的内容:

# flume
export FLUME_HOME=/opt/servers/apache-flume-1.9.0-bin
export PATH=$PATH:$FLUME_HOME/bin

写入的内容如下图:

配置文件

cd $FLUME_HOME/conf
mv flume-env.sh.template flume-env.sh
vim flume-env.sh

刷新配置文件即可。

JAVA_HOME 配置进去,防止出错。

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

配置的结果如下图:

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
478 7
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
249 3
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
246 2
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
308 1
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
270 0
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4495 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
483 9
|
10月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1014 54
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
1012 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log

相关实验场景

更多