Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析

章节内容

上一节我们完成了内容:

  • Flume 启动测试
  • Flume Conf编写
  • Flume 测试发送和接收数据

背景介绍

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

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

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

文档推荐

除了官方文档以外,这里有一个写的很好的中文文档:
https://flume.liyifeng.org/

环境准备

要将数据写入到 HDFS 中,我们需要一些支持库来完成。

(这些支持库基本都在Hadoop的支持库中,没有的话,大家可以到Maven仓库搜索下载补充一下)

shell 复制代码
cd $HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib
  • commons-configuration-1.6.jar
  • commons-io-2.4.jar
  • hadoop-auth-2.9.0.jar
  • hadoop-common-2.9.0.jar
  • hadoop-hdfs-2.9.0.jar
  • htrace-core4-4.1.0-incubating.jar

你需要把这些Jar包都拷贝到 $FLUME_HOME/lib 文件夹下:

shell 复制代码
cd $FLUME_HOME/lib
ls

配置文件

shell 复制代码
cd 
vim flume-exec-hdfs.conf

编写如下的内容:

shell 复制代码
# Name the components on this agent
a2.sources = r2
a2.sinks = k2
a2.channels = c2

# Describe/configure the source
a2.sources.r2.type = exec
a2.sources.r2.command = tail -F /tmp/root/hive.log
# Use a channel which buffers events in memory
a2.channels.c2.type = memory
a2.channels.c2.capacity = 10000
a2.channels.c2.transactionCapacity = 500

# Describe the sink
a2.sinks.k2.type = hdfs
# 这里注意修改为服务器的IP!!!
# 注意是 HDFS 的,别写错了,具体看 Hadoop 的 core-site.xml fs.defaultFS
a2.sinks.k2.hdfs.path = hdfs://h121.wzk.icu:9000/flume/%Y%m%d/%H%M
# 上传文件的前缀
a2.sinks.k2.hdfs.filePrefix = logs-
# 是否使用本地时间戳
a2.sinks.k2.hdfs.useLocalTimeStamp = true
# 积攒500个Event才flush到HDFS一次
a2.sinks.k2.hdfs.batchSize = 500
# 设置文件类型,支持压缩。DataStream没启用压缩
a2.sinks.k2.hdfs.fileType = DataStream

# 1分钟滚动一次
a2.sinks.k2.hdfs.rollInterval = 60
# 128M滚动一次
a2.sinks.k2.hdfs.rollSize = 134217700
# 文件的滚动与Event数量无关
a2.sinks.k2.hdfs.rollCount = 0

# 最小冗余数
a2.sinks.k2.hdfs.minBlockReplicas = 1
# Bind the source and sink to the channel
a2.sources.r2.channels = c2
a2.sinks.k2.channel = c2

启动Agent

shell 复制代码
$FLUME_HOME/bin/flume-ng agent --name a2 \
--conf-file flume-exec-hdfs.conf \
-Dflume.root.logger=INFO,console

如果你启动一切顺利的话,你可以看到如下的内容:

测试效果

启动集群

shell 复制代码
start-dfs.sh
start-yarn.sh

启动Hive

shell 复制代码
hive -e "show databases;"

查看日志

可以看到 Flume 上有了输出

查看HDFS

观察HDFS,发现数据已经写入了:

相关推荐
加勒比海带661 小时前
目标检测算法——低空智能实验室开放数据集汇总附下载链接【点赞+收藏】
大数据·图像处理·人工智能·python·深度学习·目标检测·计算机视觉
rit84324991 小时前
单向拓扑结构下异构车辆排的分布式模型预测控制(DMPC)
分布式
SelectDB2 小时前
基于 SelectDB 实现 Hive 数据湖统一分析:洋钱罐全球一体化探索分析平台升级实践
大数据·数据库·数据分析
跨境卫士苏苏2 小时前
跨境电商成本持续上升卖家利润空间如何守住
大数据·人工智能·跨境电商·亚马逊·跨境
小小王app小程序开发2 小时前
组局搭子小程序开发攻略|零技术入局,抢占社交娱乐新风口
大数据
黎阳之光3 小时前
去标签化定位时代:黎阳之光自研技术,可见即可定位,无感亦能解算
大数据·人工智能·算法·安全·数字孪生
跨境猫小妹3 小时前
平台评价体系调整跨境卖家如何提升转化率
大数据·人工智能
电商API&Tina4 小时前
1688 拍立淘接口(item_search_img)测试与接入实战心得
java·大数据·前端·物联网·oracle·json
captain_AIouo4 小时前
Captain AI:智能运营破局——OZON商家增长引擎
大数据·人工智能·经验分享·aigc
我要用代码向我喜欢的女孩表白4 小时前
在spark集群上在部署一套spark环境,不要影响过去环境
大数据·分布式·spark