04案例-实时读取本地文件

实时读取本地文件到HDFS案例

案例需求:实时监控Hive日志,并上传到HDFS中

实现步骤:

1.Flume想要将数据输出到HDFS,必须持有Hadoop相关jar包
将commons-configuration-1.6.jar、hadoop-auth-2.7.2.jar、hadoop-common-2.7.2.jar、
hadoop-hdfs-2.7.2.jar、commons-io-2.4.jar、htrace-core-3.1.0-incubating.jar
拷贝到/root/app/flume/lib文件夹下。
2.创建"flume-file-hdfs.conf"文件并修改
touch flume-file-hdfs.conf

vim flume-file-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 /opt/module/hive/logs/hive.log
	a2.sources.r2.shell = /bin/bash -c

	# Describe the sink
	a2.sinks.k2.type = hdfs
	a2.sinks.k2.hdfs.path = hdfs://hadoop102:9000/flume/%Y%m%d/%H
	#上传文件的前缀
	a2.sinks.k2.hdfs.filePrefix = logs-
	#是否按照时间滚动文件夹
	a2.sinks.k2.hdfs.round = true
	#多少时间单位创建一个新的文件夹
	a2.sinks.k2.hdfs.roundValue = 1
	#重新定义时间单位
	a2.sinks.k2.hdfs.roundUnit = hour
	#是否使用本地时间戳
	a2.sinks.k2.hdfs.useLocalTimeStamp = true
	#积攒多少个Event才flush到HDFS一次
	a2.sinks.k2.hdfs.batchSize = 1000
	#设置文件类型,可支持压缩
	a2.sinks.k2.hdfs.fileType = DataStream
	#多久生成一个新的文件
	a2.sinks.k2.hdfs.rollInterval = 600
	#设置每个文件的滚动大小
	a2.sinks.k2.hdfs.rollSize = 134217700
	#文件的滚动与Event数量无关
	a2.sinks.k2.hdfs.rollCount = 0
	#最小冗余数
	a2.sinks.k2.hdfs.minBlockReplicas = 1

	# Use a channel which buffers events in memory
	a2.channels.c2.type = memory
	a2.channels.c2.capacity = 1000
	a2.channels.c2.transactionCapacity = 100

	# Bind the source and sink to the channel
	a2.sources.r2.channels = c2
	a2.sinks.k2.channel = c2
3.执行监控配置
	bin/flume-ng agent --conf conf/ --name a2 
	--conf-file job/flume-file-hdfs.conf
4.开启Hadoop和hive并操作hive产生日志
	sbin/start-dfs.sh
	sbin/start-yarn.sh
	bin/hive
5.在HDFS上查看文件
	"node01:50070"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao难懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值