从0到1搭建大数据平台之开篇
大家好,我是脚丫先生 (o^^o)
最近比较肝,与小伙伴负责一个小型大数据平台项目。
之前自己一直是做离线开发。
突然有一个实时流的托拉拽模块,又爽又刺激。
爽点是终于可以玩实时流,刺点是如何玩转实时流Flink。
言归正传,我们接着分享上期的从0到1搭建大数据平台。
让小伙伴们又爽又刺激。
把快乐给大家,痛苦留给自己。
文章目录
- 一、架构总览
- 1.1 数据来源层
- 1.2 数据传输层
- 1.3 数据存储层
- 1.4 资源管理层
- 1.5 数据计算层
- 1.6 任务调度层
- 1.7 多维分析层
- 1.8 应用层
一、架构总览
在之前的一期「一文看懂大数据的技术生态」中,我们对大数据的技术栈组件。
充分了解之余,更多的是对如此庞大的生态圈叹为观止。
不过,我想你一定不满足于此。
在之前,我们已经把大数据生态圈这栋楼房已经完美竣工。
我在给它买了家具和装饰之后,就完美变形成一个通用大数据平台。
看,这大数据平台框架,真高啊,总共有8楼(真是要费不少钱)。
一层一层,往上拔高,逐渐精彩。
每一层都功能各异,但是又互相依赖,兄弟姐妹关系,你中有我,我中有你。
接下来,我们通过通用大数据平台框架进行数据流程设计。
来吧,我带着你,一步一个脚印,向前迈进。(不懂你捶我)
1.1 数据来源层
数据来源:这是最原始的一步,巧妇难为无米之炊,没有数据,又谈何处理。
我们已经知道了大数据的特点之一是数据种类多样性。具体而言,可以分为以下几种类型。
结构化数据:可以用二维数据库表来抽象,抽取数据规律。以数据库数据和文本数据为结构化数据。
半结构化数据:介于结构化和非结构化之间,主要指XML、HTML、JSON文档、Email等等,也可称非结构化。
非结构化数据:指信息没有一个预先定义好的数据模型或者没有以一个预先定义的方式来组织,不可用二维表抽象,比如图片,图像,音频,视频等 。
那么这种类型的数据又是从何处获取呢,我想这是大家心里想的第一个问题吧。
一般来说,数据来源主要是两类。
1、各个业务系统的关系数据库,可以称之为业务的交互数据。主要是在业务交互过程中产生的数据。比如,你去大保健要用支付宝付费,淘宝剁手购物等这些过程产生的相关数据。一般存储在DB中,包括Mysql,Oracle。
2、各种埋点日志,可以称之为埋点用户行为数据。主要是用户在使用产品过程中,与客户端进行交互过程产生的数据。比如,页面浏览、点击、停留、评论、点赞、收藏等。简而言之,夜深人静的时候,你躲在被子里,用快播神器看不知名的大片这些行为,都会产生数据被捕获。
既然小伙伴们,知道了数据来源,那么我们的数据流程设计第一步:
1.2 数据传输层
当我们知道了数据的种类,以及数据是如何而来的。
那么,紧接着就是用大数据技术组件去获取数据,搞到数据。
数据传输:数据传输层也可称之为,数据采集。
目前业界较为主流的数据采集工具有Flume、Datax、Sqoop、Kafka、Camel等。
又是一堆眼花缭乱的大数据采集组件,那么如何进行选型呢?
带着疑问,我们接着往下走。
一般来说,采集数据是根据数据来源,来确定决定我们要使用的大数据采集组件。
1、针对各个业务系统的关系数据库(业务的交互数据)的采集,这类数据通常的存放在关系型数据库里,可以通过Sqoop或者Datax等大数据技术组件进行定时抽取。
2、针对各种埋点日志(埋点用户行为数据)的采集,这类数据通常是存放在日志服务器里,源源不断的增加,通过Flume进行实时收集到Kafka消息队列。
此时,我们的数据流程设计第二步。
第一条线:从Web浏览器/App业务交互产生的数据,通过java微服务对数据的规则化,解析,存入Db数据库,之后通过异构数据采集大数据组件Datax\Sqoop进行采集。
第二条线:从Web浏览器/App埋点数据,通过java微服务把数据收集到日志服务器里,之后通过Flume分布式日志收集组件进行初步采集,最后放置kafka消息队列。
1.3 数据存储层
在数据采集这里,我们知道了两条数据线的大致流程。
那么通过大数据技术组件采集到的数据又是如何存储呢。
别着急,待我细细道来。
当我们收集到数据后,便是将这些数据进行存储。
第一条线,针对的是业务的交互数据,一般通过采集存储于分布式文件系统HDFS。
属于离线数据。
第二条线,针对埋点用户行为数据,采集之后的存储分为两种情况。
1、离线:该日志数据通过Flume进行收集,先是放置在kafka消息队列,之后再次利用Flume存储于分布式文件系统HDFS。
2、实时 :该日志数据通过Flume进行收集,先是放置在kafka消息队列,之后直接提供给流式计算引擎Spark/Flink进行处理,最后存储于Hbase。
此时,我们的数据流程设计如下所示:
1.4 资源管理层
资源管理:通过字面进行理解,就可以知道,该层是进行服务器资源管理的。
所谓的资源,即是服务器的CPU、内存等。
我们在「一文看懂大数据的技术生态」中,知道大数据技术主要是解决。
海量数据的存储和计算。
在数据存储层已经解决了海量数据的存储,那么接着就要进行数据的处理计算。
处理计算能力,是需要调用服务器的资源的。
资源管理层中的yarn,就是管理和调度资源的大数据技术组件。
简言之,相当于一个分布式的操作系统平台,而Mapreduce等运算程序则相当于运行于操作系统之上的应用程序,yarn为这些程序提供运算所需的资源(内存、cpu)。
yarn好比大功率电池,给机器提供能量。
1.5 数据计算层
数据处理:这一步是数据处理最核心的环节。
包括离线处理和流处理两种方式。
对应的计算引擎包括MapReduce、Spark、Flink等。
处理完的结果会保存到已经提前设计好的数据仓库中,或者HBase、Redis、RDBMS等各种存储系统上。
在这层中,我们终于解决了海量数据的存储计算。
撒花。
此时,我们的数据流程设计为
离线处理:当数据存储到HDFS后,利用Mapreduce/Hive/SparkSQL大数据技术组件,根据业务需求,对数据进行处理计算。
实时处理:当数据放置于Kafka消息队列时,利用Spark/Flink,根据业务指标需求,对数据进行实时计算。
1.6 任务调度层
任务调度:在离线处理阶段,我们会对数据进行定时处理。
因此,任务调度的大数据组件Oozie / Azkaban/airflow 会服务于离线处理任务。
满足我们定时调度的需求,通常离线处理任务的定时调度时间,大多数是设置到晚上凌晨进行执行。
我们小组一直在用的是airflow大数据定时调度组件,它的依赖能力是非常强的,社区人群也比较活跃,对python开发人员非常友好。
小伙伴们,这里我总结了三种调度神器的介绍,给大家一个简单的介绍。
1.7 多维分析层
多维数据分析是一种非常先进的数据分析理念。
在这层,大数据计算组件kylin/presto/impala组件,提供即席查询功能。
所谓即席查询是指用户根据自己的需求,灵活的选择查询条件,系统根据用户的选择生成相应的统计报表。
我们可以这么理解:即席查询就是一种快速的执行自定义SQL。
此时,我们的数据流程设计继续升级。
1.8 应用层
应用:应用应用,有数据就应用。
可以这么理解,该层是把经过离线和实时处理并且存入数据库里的数据进行使用。
包括数据的可视化展现、业务决策、或者AI等各种数据应用场景。
此时,我们的数据流程已经粗略的设计完成。
撒花。
好了,今天就聊这么多,祝各位终有所成,收获满满!
期待老铁的关注!!!
更多精彩内容请关注 微信公众号
从0到1搭建大数据平台之开篇相关推荐
- 从0到1搭建大数据平台之数据存储
大家好,我是脚丫先生 (o^^o) 近日参加了集团大数据平台之流批一体的建设. 流批一体,从调研直至研发.日日夜夜,泪流满面. 作业以:sql.jar.组件拖拽三种方式去提交实时任务,终究还是攻克. ...
- 从0到1搭建大数据平台之数据计算
文章目录 前言 一.传统的数据计算 二.Hadoop的崛起 三.离线计算 MapReduce Hive SparkSQL 四. 实时计算 Spark Streaming Flink 总结 前言 大家好 ...
- 五个篇章讲明白如何从0到1搭建大数据平台
大家好,我是一哥,整理了一下之前写的搭建大数据平台的5个篇章,请大家收藏,文末可以获取完整PDF版本. 01 如何从0到1搭建大数据平台 大数据时代这个词被提出已有10年了吧,越来越多的企业已经完成了 ...
- 如何从0到1搭建大数据平台
大数据时代这个词被提出已有10年了吧,越来越多的企业已经完成了大数据平台的搭建.随着移动互联网和物联网的爆发,大数据价值在越来越多的场景中被挖掘,随着大家都在使用欧冠大数据,大数据平台的搭建门槛也越来 ...
- 从0到1搭建大数据平台之调度系统
目前大数据平台经常会用来跑一些批任务,跑批处理当然就离不开定时任务.比如定时抽取业务数据库的数据,定时跑hive/spark任务,定时推送日报.月报指标数据.任务调度系统已经俨然成为了大数据处理平台不 ...
- 从0到1搭建大数据平台之监控
大家好,我是脚丫先生 (o^^o) 大数据平台设计中,监控系统尤为重要. 它时刻关乎大数据开发人员的幸福感. 试想如果半夜三更,被电话吵醒解决集群故障问题,那是多么的痛苦!!! 但是不加班是不可能的, ...
- 自拍会不会被大数据_不会搭建大数据平台,我被老板优化了...
[51CTO.com原创稿件]随着业务的飞速发展,信息化作为业务的支撑,各个企业都建立了自己的信息化系统. 图片来自 Pexels 在业务增涨过程中,每个企业不知不觉积累积累了一些数据.无论数据是多是 ...
- 网鱼网咖-利用数加快速搭建大数据平台,极致洞察,为客户带来从所未有的体验。...
免费开通大数据服务:https://www.aliyun.com/product/odps "令人惊喜的是,利用阿里云的数加平台,我们差不多一个多月就搭建好了大数据平台,并且可以通过图形化的 ...
- 网鱼网咖-利用数加快速搭建大数据平台,极致洞察,为客户带来从所未有的体验。
免费开通大数据服务:https://www.aliyun.com/product/odps "令人惊喜的是,利用阿里云的数加平台,我们差不多一个多月就搭建好了大数据平台,并且可以通过图形化的 ...
- Ambari搭建大数据平台教程(HDP)
搭建测试环境 本文是公司搭建测试环境大数据平台时总结的,按安装相应版本的官方文档的步骤翻译过来的.其中遇到了一些问题,相应的解决方案也都一一列举了.按照这个方式一定可以搭建成功. 基本信息: 系统:U ...
最新文章
- Apache运行机制剖析
- 使用字符代替圆角尖角研究(转)
- 给Source Insight做个外挂系列之三--构建外挂软件的定制代码框架
- P2176 [USACO14FEB]路障Roadblock
- Dynamics CRM 访问团队的使用
- ssm使用全注解实现增删改查案例——IEmpService
- 利用伸展树提高区间操作的性能
- IT行业学习网站汇总
- blob数据类型_MySQL 8.0 基本操作步骤:3.字段和数据类型的选择
- 20160808_Linux服务
- 基于ipv6的socket通信(TCP)
- 流程生产订单和离散生产订单的区别_离散式生产和流程式生产的区别
- linux_shell/windows_powershell_变量/环境变量Path的分行/换行查看/关键字搜索环境变量是否已经存在相关的变量的一些函数(cmdlet)表达式
- redis——相关问题汇总
- getch方法_C++中getch函数使用时注意事项
- java移位运算_Java移位运算符 “
- 5G到底有多快?和4G相比的直接数据给你更直观感受
- 【学习笔记】认识张量
- 认知系列1:认知是什么
- error: <class ‘xmlrpclib.Fault‘>, <Fault 92: “CANT_REREAD: The directory named as part of the path /
热门文章
- 全球科学家公认的高效学习法——费曼学习法
- Shell入门之管道
- 怎么把自己也拍成白雪公主?
- python 爬虫图片打不开_爬虫下载图片打不开是什么原因,最新简易爬虫教程
- 51nod1521 一维战舰
- 修改select2未搜索到数据时的提示语
- 太极计算机logo,太极图:最古最美最富有涵义的标志
- 英语语法:词法之动名词
- ESP8266开发之旅 阿里云物联网平台篇⑥ LED智能灯控制系统 全面讲解,上手一个小项目(MQTT客户端直连 + Web配网 + WebSocket局域网通信)
- Ubuntu系统安装翼联(EDUP)USB无线网卡驱动