大数据架构及技术体系

下面是大数据体系架构图

大数据分2个部分,一部分是走实时的,另外一部分是走离线的,不管那块都需要数据来分析

从上图来看,数据分为结构化数据(MYSQL,ORACLE等),半结构数据(文件日志),非结构化数据(视频,PPT等)

我们一般需要分析的数据 就是结构化的数据和非结构化的数据,非结构化数据可以存HDFS系统。

很多专业的东西后面在开博客另讲,先大概了解数据流走向。

1,数据收集系统。

     首先我们要坐的就是收集数据,像数据库中的数据我们可以通过Sqoop(通过SHELL命令连接数据库实现 MYSQL,HIVE(可以通过HQL将HDFS中的数据通过表形式呈现出来)和HDFS(分布式文件系统)间的通信)来收集,这种我们可以通过用azkaban(分布式工作流调度)来定时调度每天讲MYSQL数据导入到HDFS和HIVE中,这部分数据方便我们坐离线计算。

     像一些商品查询,用户登陆等查询操作,又或者是要计算实时交易等(直接操作数据库会影响数据库性能),这些东西就可以走日志收集这块,可以在前端埋点和后端埋点,记录日志,然后在通过flume收集,发送到KAFKa和HDFS(HIVE)中.这部分的数据可以走实时(flink消费kafka中的数据进行流式计算),可以走离线计算(一般第二天凌晨和mysql数据结合统计一些报表)

2,数据离线分离。

   数据离线分析,离线分析大概分4层,

扫描二维码关注公众号,回复: 11649410 查看本文章

      ODS:原始数据层(保持数据的最初),DWD:数据仓库数据层(去除空值,脏数据,超过极限范围的明细解析等

      DWS:数据仓库服务层:宽表-用户行为,轻度聚合,对dwd层的数据在进行处理轻度汇总

      ADS:   做分析处理最后将同步到mysql数据库里边,给其他应用展示

  大概流程和使用的技术。像每天,每周等报表,azkaban定时调度,通过HIVE脚本对每天的ODS数据进行离线分析处理

慢慢到DWD,DWS,ADS,最后同步到数据库。

 3,数据实时计算。

   有些公司需要看一些实时数据,比如商品的访问量,用户登陆情况,实时交易额等。这些数据有些从数据库中查询不到(商品访问,用户登陆),有些数据库有但是统计复制,慢(实时交易量,订单数等),这些数据就可以走实时统计。

   像1说的,可以通过数据埋点,在这些需要计算的地方埋点(就是记录日志,将需要的数据写到日志),最后通过FLUME手机汇总,最后到kafka,flink通过消费KAFKA的数据来消费这些日志,通过FLINK的流式计算,中间也像离线一样分ODS,DWD,ADS,最后讲结果写到数据库,整个流程虽然不是毫秒级,但也是亚秒级别的。

上面就是整个大数据的流程和需要用的技术。

flume 日志收集传输框架 专门也来对接HDFS,也可以对接KAFKA等。

hadoop体系:  HDFS 分布式文件存储系统 ,    YARN:基于hadoop的分布式资源调度,   MAPREDUCE:基于hadoop的分布式计算应用 (像HIVE就是基于YARM向执行一个一个的MAPREDUCE) 

kafka  消息队列,高吞吐,稳定,缓存数据的

zookeeper 保证大数据中的一些框架的高可用

sqoop:主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递

azkaban:工作流调度系统,可以按定义的逻辑一步一步先后执行脚本和JAVA程序(包括sh,java)

hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供SQL查询功能,其实就是通过mapreduce来操作数据。

flink:是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算,通过流式计算。(暂时没跑通)

猜你喜欢

转载自blog.csdn.net/shrek11/article/details/105864398