离线数仓项目之数据采集

一、采集数据

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
    评论
一、项目简介 本项目教程以国内电商巨头实际业务应用场景为依托,同时以阿里云ECS服务器为技术支持,紧跟大数据主流场景,对接企业实际需求,对电商数仓的常见实战指标进行了详尽讲解,让你迅速成长,获取最前沿的技术经验。 二、项目架构 版本框架:Flume、DateHub、DataWorks、MaxCompute、MySql以及QuickBI等; Flume:大数据领域被广泛运用的日志采集框架; DateHub:类似于传统大数据解决方案中Kafka的角色,提供了一个数据队列功能。对于离线计算,DataHub除了供了一个缓冲的队列作用。同时由于DataHub提供了各种与其他阿里云上下游产品的对接功能,所以DataHub又扮演了一个数据的分发枢纽工作; 据上传和下载通道,提供SQL及MapReduce等多种计算分析服务,同时还提供完善的安全解决方案; DataWorks:是基于MaxCompute计算引擎,从工作室、车间到工具集都齐备的一站式大数据工厂,它能帮助你快速完成数据集成、开发、治理、服务、质量、安全等全套数据研发工作; QuickBI & DataV:专为云上用户量身打造的新一代智能BI服务平台。 三、项目场景 数仓项目广泛应用于大数据领域,该项目技术可以高度适配电商、金融、医疗、在线教育、传媒、电信、交通等各领域; 四、项目特色 本课程结合国内多家企业实际项目经验。从集群规模的确定到框架版本选型以及服务器选型,手把手教你从零开始搭建基于阿里云服务器的大数据集群。采用阿里云ECS服务器作为数据平台,搭建高可用的、高可靠的Flume数据采集通道,运用阿里云DateHub构建中间缓冲队列并担任数据分发枢纽将数据推送至阿里自主研发的DataWorks对数据进行分层处理,采用MaxCompute作为处理海量数据的方案,将计算结果保存至MySQL并结合阿里的QuickBI工作做最终数据展示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_45688530

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

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

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

打赏作者

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

抵扣说明:

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

余额充值