logo资料库

08_尚硅谷大数据技术之Flume.docx

第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
资料共45页,剩余部分请下载后查看
第1章 概述
1.1 Flume定义
1.2 Flume组成架构
1.2.1 Agent
1.2.2 Source
1.2.3 Channel
1.2.4 Sink
1.2.5 Event
1.3 Flume拓扑结构
1.4 Flume Agent内部原理
第2章 快速入门
2.1 Flume安装地址
2.2 安装部署
第3章 企业开发案例
3.1 监控端口数据官方案例
3.2 实时读取本地文件到HDFS案例
3.3 实时读取目录文件到HDFS案例
3.4 单数据源多出口案例(选择器)
3.5 单数据源多出口案例(Sink组)
3.6 多数据源汇总案例
第4章 Flume监控之Ganglia
4.1 Ganglia的安装与部署
4.2 操作Flume测试监控
第5章 Flume高级之自定义MySQLSource
5.1 自定义Source说明
5.3 自定义MySQLSource组成
5.2 自定义MySQLSource步骤
5.4 代码实现
5.4.1 导入Pom依赖
5.4.2 添加配置信息
5.4.3 SQLSourceHelper
5.4.4 MySQLSource
5.5 测试
5.5.1 Jar包准备
5.5.2 配置文件准备
5.5.3 MySql表准备
5.5.4测试并查看结果
第6章 知识扩展
6.1 常见正则表达式语法
6.2 练习
第7章 企业真实面试题(重点)
7.1 你是如何实现Flume数据传输的监控的
7.2 Flume的Source,Sink,Channel的作用?你们Source是什么类型?
7.3 Flume的Channel Selectors
7.4 Flume参数调优
7.5 Flume的事务机制
7.6 Flume采集数据会丢失吗?
——————————————————————————— —— 尚硅谷大数据技术之 Flume 尚硅谷大数据技术之 Flume (作者:尚硅谷大数据研发部) 版本:V1.4 第 1 章 概述 1.1 Flume 定义 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传 输的系统。Flume 基于流式架构,灵活简单。 1.2 Flume 组成架构 Flume 组成架构如图 1-1,图 1-2 所示: 图 1-1 Flume 组成架构 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— 尚硅谷大数据技术之 Flume 下面我们来详细介绍一下 Flume 架构中的组件。 图 1-2 Flume 组成架构详解 1.2.1 Agent Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的,是 Flume 数据传输 的基本单元。 Agent 主要有 3 个部分组成,Source、Channel、Sink。 1.2.2 Source Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格 式的日志数据,包括 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、 syslog、http、legacy。 1.2.3 Channel Channel 是位于 Source 和 Sink 之间的缓冲区。因此,Channel 允许 Source 和 Sink 运作 在不同的速率上。Channel 是线程安全的,可以同时处理几个 Source 的写入操作和几个 Sink 的读取操作。 Flume 自带两种 Channel:Memory Channel 和 File Channel。 Memory Channel 是内存中的队列。Memory Channel 在不需要关心数据丢失的情景下适 用。如果需要关心数据丢失,那么 Memory Channel 就不应该使用,因为程序死亡、机器宕 机或者重启都会导致数据丢失。 File Channel 将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— 1.2.4 Sink 尚硅谷大数据技术之 Flume Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或 索引系统、或者被发送到另一个 Flume Agent。 Sink 是完全事务性的。在从 Channel 批量删除数据之前,每个 Sink 用 Channel 启动一 个事务。批量事件一旦成功写出到存储系统或下一个 Flume Agent,Sink 就利用 Channel 提 交事务。事务一旦被提交,该 Channel 从自己的内部缓冲区删除事件。 Sink 组件目的地包括 hdfs、logger、avro、thrift、ipc、file、null、HBase、solr、自定义。 1.2.5 Event 传输单元,Flume 数据传输的基本单元,以事件的形式将数据从源头送至目的地。 1.3 Flume 拓扑结构 Flume 的拓扑结构如图 1-3、1-4、1-5 和 1-6 所示: 图 1-3 Flume Agent 连接 图 1-4 单 source,多 channel、sink 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— 尚硅谷大数据技术之 Flume 图 1-5 Flume 负载均衡 图 1-6 Flume Agent 聚合 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— 1.4 Flume Agent 内部原理 尚硅谷大数据技术之 Flume 第 2 章 快速入门 2.1 Flume 安装地址 1) Flume 官网地址 http://flume.apache.org/ 2)文档查看地址 http://flume.apache.org/FlumeUserGuide.html 3)下载地址 http://archive.apache.org/dist/flume/ 2.2 安装部署 1)将 apache-flume-1.7.0-bin.tar.gz 上传到 linux 的/opt/software 目录下 2)解压 apache-flume-1.7.0-bin.tar.gz 到/opt/module/目录下 [atguigu@hadoop102 apache-flume-1.7.0-bin.tar.gz -C /opt/module/ 3)修改 apache-flume-1.7.0-bin 的名称为 flume [atguigu@hadoop102 module]$ mv apache-flume-1.7.0-bin flume 4) 将 flume/conf 下 的 flume-env.sh.template 文 件 修 改 为 flume-env.sh , 并 配 置 software]$ tar -zxf flume-env.sh 文件 [atguigu@hadoop102 conf]$ mv flume-env.sh.template flume-env.sh [atguigu@hadoop102 conf]$ vi flume-env.sh 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— export JAVA_HOME=/opt/module/jdk1.8.0_144 尚硅谷大数据技术之 Flume 第 3 章 企业开发案例 3.1 监控端口数据官方案例 1)案例需求:首先,Flume 监控本机 44444 端口,然后通过 telnet 工具向本机 44444 端口发 送消息,最后 Flume 将监听的数据实时显示在控制台。 2)需求分析: 3)实现步骤: 1.安装 telnet 工具 将 rpm 软 件 包 (xinetd-2.3.14-40.el6.x86_64.rpm 、 telnet-0.17-48.el6.x86_64.rpm 和 telnet-server-0.17-48.el6.x86_64.rpm)拷入/opt/software 文件夹下面。执行 RPM 软件包安装命 令: software]$ software]$ software]$ [atguigu@hadoop102 xinetd-2.3.14-40.el6.x86_64.rpm [atguigu@hadoop102 telnet-0.17-48.el6.x86_64.rpm [atguigu@hadoop102 telnet-server-0.17-48.el6.x86_64.rpm 2.判断 44444 端口是否被占用 [atguigu@hadoop102 flume-telnet]$ sudo netstat -tunlp | grep 44444 功能描述:netstat 命令是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、 sudo sudo sudo rpm rpm rpm -ivh -ivh -ivh 实际的网络连接以及每一个网络接口设备的状态信息。 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— 尚硅谷大数据技术之 Flume 基本语法:netstat [选项] 选项参数: -t 或--tcp:显示 TCP 传输协议的连线状况; -u 或--udp:显示 UDP 传输协议的连线状况; -n 或--numeric:直接使用 ip 地址,而不通过域名服务器; -l 或--listening:显示监控中的服务器的 Socket; -p 或--programs:显示正在使用 Socket 的程序识别码和程序名称; 3.创建 Flume Agent 配置文件 flume-telnet-logger.conf 在 flume 目录下创建 job 文件夹并进入 job 文件夹。 [atguigu@hadoop102 flume]$ mkdir job [atguigu@hadoop102 flume]$ cd job/ 在 job 文件夹下创建 Flume Agent 配置文件 flume-telnet-logger.conf。 [atguigu@hadoop102 job]$ touch flume-telnet-logger.conf 在 flume-telnet-logger.conf 文件中添加如下内容。 [atguigu@hadoop102 job]$ vim flume-telnet-logger.conf 添加内容如下: # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # Describe the sink a1.sinks.k1.type = logger # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 注:配置文件来源于官方手册 http://flume.apache.org/FlumeUserGuide.html 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
——————————————————————————— —— 尚硅谷大数据技术之 Flume 4. 先开启 flume 监听端口 [atguigu@hadoop102 flume]$ bin/flume-ng agent --conf conf/ --name a1 job/flume-telnet-logger.conf -Dflume.root.logger=INFO,console 参数说明: --conf-file --conf conf/ :表示配置文件存储在 conf/目录 --name a1 :表示给 agent 起名为 a1 --conf-file job/flume-telnet.conf :flume 本次启动读取的配置文件是在 job 文件夹下 的 flume-telnet.conf 文件。 -Dflume.root.logger==INFO,console : -D 表 示 flume 运 行 时 动 态 修 改 flume.root.logger 参数属性值,并将控制台日志打印级别设置为 INFO 级别。日志级别包括:log、 info、warn、error。 5.使用 telnet 工具向本机的 44444 端口发送内容 [atguigu@hadoop102 ~]$ telnet localhost 44444 6.在 Flume 监听页面观察接收数据情况 更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
分享到:
收藏