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

avatar
作者
筋斗云
阅读量:1

章节内容

上一节我们完成了内容:

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

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

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

在这里插入图片描述

文档推荐

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

环境准备

要将数据写入到 HDFS 中,我们需要一些支持库来完成。
(这些支持库基本都在Hadoop的支持库中,没有的话,大家可以到Maven仓库搜索下载补充一下)

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 文件夹下:

cd $FLUME_HOME/lib ls 

在这里插入图片描述

配置文件

cd  vim flume-exec-hdfs.conf 

编写如下的内容:

# 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

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

在这里插入图片描述
如果你启动一切顺利的话,你可以看到如下的内容:
在这里插入图片描述

测试效果

启动集群

start-dfs.sh start-yarn.sh 

启动Hive

hive -e "show databases;" 

在这里插入图片描述

查看日志

可以看到 Flume 上有了输出
在这里插入图片描述

查看HDFS

观察HDFS,发现数据已经写入了:
在这里插入图片描述

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!