你是否有过这样的念头:如果能立刻马上看到我想要的数据,我就能更好地决策?
 
市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随着时间的流逝,逐渐降低。因此,我们最好在事件发生之后,迅速对其进行有效处理,实时,快速地处理新产生的数据,帮助企业快速地进行异常管理和有效决策,而不是待数据存储在一起之后,再进行批量处理。
 
一:sparkStreaming+hbase整合应用,助力企业实时运营监控
 
对于不作更新的数据,可以通过datax将数据从业务系统数据库同步到hive中,进行离线计算;但对于有大量更新的数据,就不能采用以上的做法了,因为hive不能很好的支持实时更新操作。我们的做法是使用sparkStreaming+HBase做数据存储与去重,然后以封装的HBase工具类为支撑,进行数据的实时监控。
 
实现原理:
Apache Spark是专为大规模数据处理而设计的分布式内存计算引擎,特点是灵活快速。HBase是一个分布式的、面向列的开源数据库,适用于海量数据的存储与实时写入。HBase工具类是奇点云大数据团队针对Spark与HBase自研的高性能HBase读写工具,它是在HBase官方API基础上依据奇点云特有的需求场景进行了二次开发,内部提供了诸多与Spark紧密结合的API,它的诞生极大地提高了Spark对Hbase的读写速度。经测试,比Spark原生的HBase API性能提高3倍以上,平均开发效率提升10倍以上。正因为HBase工具类的诞生,才促进了Spark与HBase在奇点云的大规模应用。
 
整体架构:
通过mysql的Canal(canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费)将数据实时投递到kafka中,交由Spark Streaming分批实时消费处理,经过数据清洗、处理与转换,使用HBase工具类将数据逐批写入到HBase中,完成数据的实时同步与更新。
应用场景:
Spark与HBase广泛应用于实时数据写入、统计抽取、历史数据归档、海量数据的实时判断等方面。
·实时数据写入
Spark作为分布式实时计算的佼佼者,擅长海量数据的实时计算。我们通过Spark Streaming将消费到的含有大量更新操作的数据进行清洗、分析与计算,最终以事先设计好的规则实时写入到HBase中,HBase会自动维护重复的数据(rowKey设计原则)。
·海量数据实时判断
在某些场景下,我们需要对历史(一个月以前)的数据进行实时的判断、对比与更新。由于数据量大,且实时性较高,redis或传统的关系型数据库并不能很好的满足要求。对于这种需求,我们对Spark Streaming程序架构进行了梳理,并对HBase相关的API进行了二次开发,最终满足了以上的需求。
 
某大型商业综合体客户案例
客户背景:
客户为国内某核心商业综合体公司,主营城市核心商业购物中心,对于大型商业购物中心而言,如何实时采集当前进出客流人数、行走动线及热力轨迹、实现数据拉通能力是大型商业购物中心进行业务数字化运营,用户洞察与体验优化的基础。
奇点云的解决方案帮助客户实现了:
1: 实时数据从无到有(原来并不具备实时数据采集能力)
2: t+0实时数据采集(原来仅具有少量离线数据的T+1以上的事后追溯分析能力)
3: 实时客流监控 (今日客流人数,当前在场人数,今日到场次数,平均逗留时长,店铺客流热度,顾客性别与年龄占比,商场黑名单实时预警,客流热力分析,客流动线分析……)
4: 经过实时处理,获得有价值的信息帮助商场快速的做出决策能力(从滞后的经验型追溯分析,到基于现场监控数据的实时运营决策)
 
二:sparkStreaming+kudu+impala整合应用,助力企业实时多维分析
 
 
 
在Kudu出现之前,Hadoop生态环境中的储存主要依赖HDFS和HBase,追求高吞吐批处理的用例中使用HDFS,追求低延时随机读取用例下用HBase,而Kudu正好能兼顾这两者:
•Kudu的设计使它与众不同:
•快速处理OLAP(Online Analytical Processing)任务;
•集成MapReduce、Spark和其他Hadoop环境组件;
•与Impala高度集成,使得这成为一种高效访问交互HDFS的方法;
•在执行同时连续随机访问时表现优异;
•高可用性,tablet server和master利用Raft Consensus算法保证节点的可用。
 
•常见的应用场景:
•刚刚到达的数据就马上要被终端用户使用访问到;
•同时支持在大量历史数据中做访问查询和某些特定实体中需要非常快响应的颗粒查询;
•基于历史数据使用预测模型来做实时的决定和刷新;
•要求几乎实时的流输入处理。
 
 
整体架构:
将数据实时投递到kafka中,交由Spark Streaming分批实时消费处理,经过数据清洗、处理与转换,使用kudu工具类将数据逐批写入到kudu中,完成数据的实时同步与更新。
 
 
某服饰客户案例
客户背景:
客户为国内某大型服饰品牌,以直营为主,数据情况较好,每天的业务订单量及多张维表数据量不断攀升, 原来的oracle数据库已支持不起庞大业务数据的多条件实时查询,在奇点云介入服务后,企业迫不及待提出了多维度即席查询的需求。
奇点云的解决方案帮助客户实现了:
1: 实时数据从oracle切换到kudu;
2: t+0实时数据采集(从原来的T+1的离线计算到现在的实时计算);
3: 实时订单多维分析 (从原来的多张表关联及30个条件多维度查询,查询不出来到现在的1分钟内出结果);
4: 经过实时分析 (多维度即席查询),获得有价值的信息帮助领导层快速的做出决策力。
 
流计算秉承一个基本理念,当事件出现时就应该立即进行处理,而不是缓存起来进行批量处理。不同于现有的离线计算,流计算全链路整体上更加强调数据的实时性,包括数据实时采集、数据实时计算、数据实时集成。
 

奇点云数据中台技术汇(四)| DataSimba系列之流式计算的更多相关文章

  1. 奇点云数据中台技术汇(一) | DataSimba——企业级一站式大数据智能服务平台

    在这个“数据即资产”的时代,大数据技术和体量都有了前所未有的进步,若企业能有效使用数据,让数据赚钱,这必将成为企业数字化转型升级的有力武器. 奇点云自研的一站式大数据智能服务平台——DataSimba ...

  2. 奇点云数据中台技术汇(三)| DataSimba系列之计算引擎篇

    随着移动互联网.云计算.物联网和大数据技术的广泛应用,现代社会已经迈入全新的大数据时代.数据的爆炸式增长以及价值的扩大化,将对企业未来的发展产生深远的影响,数据将成为企业的核心资产.如何处理大数据,挖 ...

  3. 奇点云数据中台技术汇(五)| CDP,线下零售顾客运营中台

    顾客数据平台(Customer Data Platform,简称CDP),是近年兴起的一种以顾客为核心.聚焦客群细分与人群洞察的企业数据应用平台. 听上去很互联网啊?跟实体行业和零售营销有什么关系呢? ...

  4. 数据中台技术汇(二)| DataSimba系列之数据采集平台

    继上期数据中台技术汇栏目发布DataSimba——企业级一站式大数据智能服务平台,本期介绍DataSimba的数据采集平台. DataSimba采集平台属于DataSimba的数据计算及服务平台的一部 ...

  5. 大数据入门第十六天——流式计算之storm详解(一)入门与集群安装

    一.概述 今天起就正式进入了流式计算.这里先解释一下流式计算的概念 离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据 ...

  6. 大数据量查询容易OOM?试试MySQL流式查询

    一.前言 程序访问 MySQL 数据库时,当查询出来的数据量特别大时,数据库驱动把加载到的数据全部加载到内存里,就有可能会导致内存溢出(OOM). 其实在 MySQL 数据库中提供了流式查询,允许把符 ...

  7. 搜索广告与广告网络Demand技术-流式计算平台

    流式计算平台-Storm 我们以Storm为例来看流式计算的功能是什么. 下面内容引用自大圆的博客.在Storm中,一个实时应用的计算任务被打包作为Topology发布,这同Hadoop的MapRed ...

  8. 大数据学习:storm流式计算

    Storm是一个分布式的.高容错的实时计算系统.Storm适用的场景: 1.Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中. 2.由于Storm的处理组件都是分布式的, ...

  9. 大数据入门第十六天——流式计算之storm详解(三)集群相关进阶

    一.集群提交任务流程分析 1.集群提交操作 参考:https://www.jianshu.com/p/6783f1ec2da0 2.任务分配与启动流程 参考:https://www.cnblogs.c ...

随机推荐

  1. 最短路问题-- Dijkstra Choose the best route

    Choose the best route Problem Description One day , Kiki wants to visit one of her friends. As she i ...

  2. nodejs(16)使用express.static快速托管静态资源

    const express = require('express') const app = express() // 步骤的拆解 const result = express.static('./v ...

  3. 教你如何使用JavaScript入门

    JavaScript简介   JavaScript是NetScape公司为Navigator浏览器开发的,是web前端卸载HTML文件中的一种脚本语言,能实现网页内容的交互显示.当用户在客户端显示该网 ...

  4. @ConfigurationProperties的几个使用细节

    1.只有当前组件是容器中的组件,才能使用容器提供的@ConfigurationPropeities功能 2.使用@ConfigurationProperties,被注入字段必须要有set .get 方 ...

  5. h5-语义化标签的兼容性问题

    1.html代码 <header>头</header> <nav>导航栏</nav> <main> <article>左< ...

  6. 64)vertor 简单使用

    1)简单 代码样例:我的理解   vector  其实就是一个简单的数组,然后通过迭代器来进行 遍历数组中的值,而且有自带push_back()来添加元素 #include<iostream&g ...

  7. 自由职业平台Upwork申请上市,能给国内猪八戒网带来什么启示?

    当下,在互联网的全面渗入下已经对整个社会的运行机制.大众的生活产生了前所未有的影响.尤其是在工作方面,更是衍生出诸多新兴职业.如,主播.水军.新媒体运营.自媒体人等.值得注意的是,这些职业绝大部分都有 ...

  8. sql server2008 装上后,总是出现machine.config line136,或者 出现 配置错误 无法识别的配置节 system.serviceModel 。

    怀疑问题是vs 和 sql server2008安装冲突的问题造成, 有一个这样的说法: 用win8.1的64位 的系统,如果先装vs2010,再装sql server 2008 r2,根本就不行,一 ...

  9. C++ 进程和匿名管道使用学习

    平台 Windows10 + VS2015 学习内容 进程的创建使用(CreateProcess方式) 父子进程间匿名管道通信 相关函数及参数介绍 CreatePipe函数:该的原型为 CreateP ...

  10. cocoaPods安装使用亲体验

    一. cocoaPods的安装. 终端中输入: $ sudo gem install cocoapods 注意:直接在terminal中输入这个是安装不成功的,因此,我们可以通过淘宝的Ruby镜像来访 ...