|NO.Z.00011|——————————|Deployment|——|Hadoop&PB级离线数仓.v01|——|Flume.v01|Flume.v1.9安装配置|
一、安装部署Flume
### --- 安装部署
~~~ Flume官网地址:http://flume.apache.org/
~~~ 文档查看地址:http://flume.apache.org/FlumeUserGuide.html
~~~ 下载地址:http://archive.apache.org/dist/flume/
~~~ 选择的版本 1.9.0
二、安装步骤:
### --- 下载软件 apache-flume-1.9.0-bin.tar.gz,并上传到 Hadoop02上的/opt/yanqi/software 目录下
[root@hadoop02 software]# wget -c http://archive.apache.org/dist/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz
### --- 解压 apache-flume-1.9.0-bin.tar.gz 到 /opt/yanqi/servers/ 目录下;并重命名为 flume-1.9.0
[root@hadoop02 software]# tar -zxvf apache-flume-1.9.0-bin.tar.gz -C ../servers/
[root@hadoop02 servers]# cd ../servers/
[root@hadoop02 servers]# mv apache-flume-1.9.0-bin/ flume-1.9.0
### --- 在 /etc/profile 中增加环境变量,并执行 source /etc/profile,使修改生效
[root@hadoop02 ~]# vim /etc/profile
##FLUME_HOME
export FLUME_HOME=/opt/yanqi/servers/flume-1.9.0
export PATH=$PATH:$FLUME_HOME/bin
[root@hadoop02 ~]# source /etc/profile
### --- 将 $FLUME_HOME/conf 下的 flume-env.sh.template 改名为 flume-env.sh,
~~~ # 并添加 JAVA_HOME的配置
[root@hadoop02 ~]# cd /opt/yanqi/servers/flume-1.9.0/conf/
[root@hadoop02 conf]# mv flume-env.sh.template flume-env.sh
[root@hadoop02 conf]# vim flume-env.sh
export JAVA_HOME=/opt/yanqi/servers/jdk1.8.0_231
~~~ # 验证Flume是否部署成功
[root@hadoop02 ~]# /opt/yanqi/servers/flume-1.9.0/bin/flume-ng version
Flume 1.9.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: d4fcab4f501d41597bc616921329a4339f73585e
Compiled by fszabo on Mon Dec 17 20:45:25 CET 2018
From source with checksum 35db629a3bda49d23e9b3690c80737f9
一、入门案例
### --- 中文flume帮助文档:https://flume.liyifeng.org/
~~~ # 业务需求:监听本机 8888 端口,Flume将监听的数据实时显示在控制台
~~~ # 需求分析:
~~~ 使用 telnet 工具可以向 8888 端口发送数据
~~~ 监听端口数据,选择 netcat source
~~~ channel 选择 memory
~~~ 数据实时显示,选择 logger sink
二、实现步骤:
### --- 安装 telnet 工具
[root@hadoop02 ~]# yum install -y telnet
### --- 检查 8888 端口是否被占用。如果该端口被占用,可以选择使用其他端口完成任务
[root@hadoop02 ~]# lsof -i:8888
### --- 创建 Flume Agent 配置文件。 flume-netcat-logger.conf
[root@hadoop02 ~]# vim /opt/yanqi/servers/flume-1.9.0/conf/flume-netcat-logger.conf
# a1是agent的名称。source、channel、sink的名称分别为:r1 c1 k1
a1.sources = r1
a1.channels = c1
a1.sinks = k1
# source
a1.sources.r1.type = netcat
a1.sources.r1.bind = hadoop02
a1.sources.r1.port = 8888
# channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 100
# sink
a1.sinks.k1.type = logger
# source、channel、sink之间的关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
~~~ Memory Channel 是使用内存缓冲Event的Channel实现。
~~~ 速度比较快速,容量会受到 jvm 内存大小的限制,可靠性不够高。
~~~ 适用于允许丢失数据,但对性能要求较高的日志采集业务。
### --- 启动Flume Agent
~~~ name。定义agent的名字,要与参数文件一致
~~~ conf-file。指定参数文件位置
~~~ -D表示flume运行时动态修改 flume.root.logger 参数属性值,
~~~ 并将控制台日志打印级别设置为INFO级别。日志级别包括:log、info、warn、error
[root@hadoop02 ~]# $FLUME_HOME/bin/flume-ng agent --name a1 \
--conf-file $FLUME_HOME/conf/flume-netcat-logger.conf \
-Dflume.root.logger=INFO,console
### --- 使用 telnet 向本机的 8888 端口发送消息
[root@hadoop02 ~]# telnet hadoop02 8888
Trying 192.168.1.122...
Connected to hadoop02.
Escape character is '^]'.
hello world .
OK
are you ok?
OK
### --- 在 Flume 监听页面查看数据接收情况
[root@hadoop02 ~]# $FLUME_HOME/bin/flume-ng agent --name a1 \
--conf-file $FLUME_HOME/conf/flume-netcat-logger.conf \
-Dflume.root.logger=INFO,console
#flume输出参数
21/09/27 18:23:08 INFO sink.LoggerSink: Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 20 2E 0D hello world .. }
21/09/27 18:23:11 INFO sink.LoggerSink: Event: { headers:{} body: 61 72 65 20 79 6F 75 20 6F 6B 3F 0D are you ok?. }
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
dov001-PB离线数仓
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」