离线数仓项目之数据采集

一、采集数据

1.准备工作:hadoop安装

                     zookeeper安装

                     kafka安装

                     flume安装

                     sqoop安装

2.思想架构:

 3.架构解析

   1.使用flume->kafka->flume的原因?

在生产环境中我们使用架构不能局限于当下,在采集日志数据的时候采用flume->kafka->flume架构的好处有以下几点

(1)如果直接使用flume,按照现在来说也是可以的,但是公司需要发展,使用flume->kafka->flume架构方便以后做实时的时候可以直接连接kafka。

(2)kafka可以做一个缓冲,如果消费速度大于生产速率,kafka可以缓存更多的数据。防止把jvm挤爆。

(3)解决小文件问题。kafka有聚合作用,Kafka中消息是以topic进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。生产者生产的消息是不断追加到log文件末尾,故在此时就会聚合小文件。

(4)削峰,在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用kafka消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

2.两个flume使用的组件的选型。

flume1使用的组件:taildir source

                                 kafkachannel

                                 不使用sink

Source是负责接收数据到Flume Agent的组件。

查询官网:taildir source 解决了断点续传和实时监控的问题

Channel是位于Source和Sink之间的缓冲区。

 查询官网:使用kafka channel直接对接kafka,省略了sink组件,减少了take事务,提升了flume数据传输效率,并且将kafka channel的参数parseAsEvent设置为false,解决了flume数据传入到kafka,json日志信息前面多拼接个header信息的问题,保证kafka里面的数据都是一个个的flume body(单独的json日志字符串)

parseAsEvent:source上传数据一般是以event上传,但是在没有sink的时候,他是以字符串上传,而parseAsEvent默认是true,意思是以event上次,所以我们把它改成false。parseAsEvent是channel的参数。

拦截器:Flume1的source下面,挂了一个ETL拦截器,从数据源头对数据做ETL清洗,保证采集到的数据都是完整的json字符串,方便后续解析使用。


flume2使用的组件:kafka source

                                file channel

                                hdfs sink

F2:使用kafka source 对接kafka,获取kafka topic的数据,传给file channel,提高数据的安全性。最后利用hdfs sink将数据传入到hdfs上。
拦截器:F2的source下面挂了一个时间戳拦截器,给每条从kafka里获取到的数据加上一个header,key为timestamp,value为日志里面的ts字段的值(毫秒级时间戳)
这样做的目的有两个:
1:可以保证当天生成的日志数据一定会进入hdfs当天的目录下
2:造数据的时候,不需要再修改服务器的时间

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_45688530

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

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

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

打赏作者

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

抵扣说明:

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

余额充值