首次揭秘|为6.4亿人次出行提供无线网络的技术架构

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 借助“互联网+大数据+机场”三轮驱动,掌慧纵盈每年为6.4亿人次出行提供无线网络连接服务。 随着业务的拓展,随之后来的挑战是数据量的暴增。 2016年,掌慧纵盈(股票代码:835736)通过阿里云产品,率先构建了业界领先的大数据平台。 本文阐述了一家物联网企业的业务架构和数据架构,以及技术选型

最近掌慧纵盈 大数据平台的架构师,分享了一篇文章很不错,转载到这里原文

借助“互联网+大数据+机场”三轮驱动,掌慧纵盈每年为6.4亿人次出行提供无线网络连接服务。
随着业务的拓展,随之后来的挑战是数据量的暴增。
2016年,掌慧纵盈(股票代码:835736)通过阿里云产品,率先构建了业界领先的大数据平台。
本文阐述了一家物联网企业的业务架构和数据架构,以及技术选型的思考过程,和与业务需求相匹配的最终技术架构。

业务架构

screenshot

掌慧纵盈的业务架构如图所示。我们的业务模式主要就是通过自有设备对数据进行收集,对数据的价值进行挖掘,最后对这些数据应用。
数据收集层,我们创立了国内机场官方Wi-Fi第一品牌“Airport-Free-WiFi”,网络遍布全国25个枢纽机场和39个枢纽高铁站,每年为6.4亿人次出行提供无线网络连接服务;我们拥有全国最大的驾校Wi-Fi网络,到17年底将覆盖1500+所驾校;我们也是中国四大车展(北京、上海、广州、成都)Wi-Fi服务商,为超过120万人次提供了网络服务;此外,我们还运营了全国2000+个加油站和600+个汽车4S经销店的Wi-Fi网络。
数据应用层,我们打通了线上和线下行为数据,用于用户画像,为包括SSP,DSP,DMP,RTB在内的广告业务提供更高效的精准触达;并和公安部合作,排查公共网络安全威胁。
掌慧纵盈的大数据平台和广告投放平台还为企业输出技术能力,帮助企业建立自己的大数据平台,用丰富的量化数据提升企业的运营管理效率。

数据架构

screenshot

基于我们的业务架构,我们抽象除了我们的数据架构,其中包含了许多主题,其主题视图如图所示。图中本体可以简单的理解为人,客体可以简单的理解为物;本体与客体以各种形式进行连接,这种连接是一种时间维度和空间维度上的交汇,这种连接通过计算机网络和电信网络完成。本体在连接网络中有自己的像,可以简单的理解为虚拟身份(Avatars);客体在连接网络中也有自己的像,例如维基百科对某一事物的描述,再比如某一事物商业化后形成产品或服务,再经过广告包装成其广告形象,这些都是其客像。本体与客体的交互实际上就是本像和客像的交互,这种交互在时间和空间的维度上都会留下轨迹。
本体的个体特征和群体特征,客体的个体特征和群体特征,本客交互的所有轨迹,所有这些主题形成的大数据,经过深度挖掘和学习,可以得出强大的洞察力,这种洞察力具有不可估量的商业价值。
掌慧纵盈目前在本体域和交互域的数据体量:
screenshot

技术选型

接下来说一下我们技术选型的思路。我认为,没有最好的技术架构,只有最合适的架构。成功的IT规划就是从业务架构出发,针对其每一个业务场景,给出最合适的技术架构。

功能需求

首先来看我们的功能需求。以我们的广告业务为例,目标是日消息处理量达到100亿条。其对大数据能力的要求如下:
screenshot

假设记录大小是2KB,容纳这些数据我们需要70PB的物理容量。对查询范围的要求,推导出,离线计算的处理时长24小时,在线计算10分钟。

非功能需求

  • 希望通过云平台将基础设施安装运维外包。
  • 大数据技术日新月异,希组件版本能够及时更新。
  • 外部商业环境迅速变化,希望计算资源可以动态增减,以节约成本。
  • 希望以较低的成本获取相对专业的安全服务。
  • 尽量使用开源组件,方便整体输出。

产品选择

综合考察国内的云服务提供商,我们选择了阿里云,尤其是其E-MapReduce产品,购买之后,集群马上就创建好了,Hive, Spark, HBase等开源大数据组件即刻可用。
首先我们选择数据存储引擎。
screenshot

我们以存储25TB的数据为基准,考察各个选项的性能和价格。从图中可以看出,针对离线分析来说,如果想用开源组件,可以考虑Hive on OSS的模式,来存储近一年的数据。针对在线分析的场景,使用HBase存储近三个月的数据,可以获得很高的性价比,这个方案可以多表联查,但是SQL的响应对场景敏感,不同复杂度的SQL响应时间是不一样的。如果希望响应时间恒定,可以考虑基于索引的方案,即日志服务,缺点就是不能多表联查;如果想使用开源组件,可以自行在ECS上搭建ELK。
接下来我们选择查询引擎。我们使用一个基准SQL,方便对其响应时间进行横向对比,基准SQL如下图所示:
screenshot

结论是,使用Phoenix基于HBase进行交互式查询,可以获得很满意的响应周期。
选型部分告一段,接下来给出大数据平台的技术架构。

技术架构

screenshot

大数据平台的技术架构概览如图所示,图中几乎所有的服务和功能都是通过阿里云产品来实现的,其中开发测试环境也是基于阿里云的ECS搭建的。从图中可以看出,我们并不需要关心机房的电源、网络、虚拟化、硬盘更换等一系列基础设施问题,直接基于云平台,专注于我们自己的业务。

产品使用中有一些心得,总结如下:

E-MapReduce

阿里云的E-MapReduce是我们大数据平台的核心产品,其涵盖了Hive, Spark, HBase, Storm等大数据领域核心的开源组件,还有Phoenix, Presto等业界前沿的查询引擎,其Zeppelin, Hue等交互组件也是开箱即用。
E-MapReduce不断有新的版本发布,其中的组件版本也是不断更新,但是已经购买的E-MapReduce是无法方便的升级的,为了及时升级组件版本,我们采取包月而不是包年模式。包月到期,想要升级,直接买新的,旧的不续费,自行销毁。阿里的E-MapReduce只能增加节点不能减少节点,通过上述的滚动模式,还可以随时调整集群规模和各种配置。
上述的这种滚动模式,对于计算集群来说没问题,数据存储怎么办呢?E-MapReduce所用的机器配置都很高,用来存储数据就可惜了,数据可以存储在OSS上,使用Hive加载即可。不过要使用HBase还是要把数据存到E-MapReduce上,一但放到E-MapReduce上,这个集群就不能随意销毁了。所以,我们实践当中将数据集群和计算集群分开,计算集群可以随时销毁和升级,数据集群需要长期稳定提供服务。这两种的集群配置也是不一样的,计算集群用SSD,主攻“快”,数据集群(HBase)用高效云盘,主攻“大”。
那按量付费呢,什么场景下使用?我们计算过,如果计算时长超过7天,那么还是直接购买包月的集群比较划算。按量付费的集群可以用于临时突发的计算任务。

工单管理

使用阿里的云服务,最吸引人的就是工单服务。由于我们的运维团队会经常遇到复杂且需要紧迫解决的问题,团队成员可以直接通过工单请求阿里的工程师协助解决。沟通问题的过程也是我们学习的过程,我们向阿里云服务的工程师们学到了不少的东西。

软件视图

基于技术概览,我们技术架构中的软件视图如下所示:

screenshot

一些使用心得总结如下:

SLB
原来,为了管理方便,我们好多ECS都开通了外网,但是实际使用率不高,外网带宽的成本占用ECS成本很大的一部分,现在我们所有ECS都去掉了外网带宽,统一走SLB,共享SLB的外网带宽,包括SSH等所有应用的端口都是用SLB转发。SLB带宽不受限制,速度上来了,成本下来了,算是我们对SLB的一个活用。

ECS
由于我们的业务环境变化很快,有些机器可能今天还有用,明天就没用了,所以我们采用包月加自动续费的模式,随时增减机器,随时增配减配。

ONS
也即阿里的日志服务,阿里内部叫MQ,其响应时间很快,吞吐量很大,可以应用于实时性非常高的场景,例如实时竞价。

Log Service
其包含Logtail,LogStore, LogHub,LogShipper和LogSearch服务,其中日志投递(LogShipper)功能很有用,可以自动将采集的日志投递到OSS,这样就可以直接使用Hive加载了,不过目前只支持json格式。在我们的建议下,日志服务团队将会支持CSV,SequenceFile和Parquet格式,预计于2017年1月上线。

Spark
其官方给出的例子和阿里帮助文档里的例子都是基于Scala的,不过我们还是选择了用Java进行Spark应用的开发,这样我们开发团队的组建会更加便利。如果能使用Java 8,那么从函数式编程方式尤其是lambda表达式的角度就十分接近Scala的表现能力了。在我们的建议下,目前阿里云新版本的E-MapReduce已经支持了Java 8。
需要提一句,数据在ODPS(现名称MaxCompute),那也没关系。E-MapReduce 提供 SparkSQL服务,可以无缝访问ODPS数据。使用ODPS的用户也可以加入到Spark生态体系中。

Storm
目前E-MapReduce已经提供了Storm组件,想要使用此组件,有两个选择:从日志服务消费;或者通过引导操作在E-MapReduce上安装Kafka,支持增加节点。

OSS
OSS主要用于存储,与E-MapReduce结合,实现了计算与存储的分离。

Zeppelin
这真的是一个好东西,业务人员通过它,可以通过Web的形式使用HiveQL, SparkSQL, Phoenix, Presto等对数据进行探索式和交互式的查询,而无需编程和登录SSH,并且可以保存过往的查询,还可以形成简单的柱状图饼图。我们的DMP工程师再也不用为了某一个统计数字通宵写代码了,业务人员自己就可以搞定。

Phoenix
HBase本身是NoSQL数据库,结构化查询是其弱项,我们就是有很多OLAP的需求,希望交互式出结果,原来的做法是自己创建HBase的二级索引,对非主键字段进行跳转查询。后来发现,E-MapReduce上,Phoenix已经为我们搭建好了啊,其索引机制生成的HBase索引表,不就是我们原来手工创建的索引表吗。于是全部转向使用Phoenix进行交互式查询。E-MapReduce老版本的Phoenix的默认查询超时是1分钟,对我们来说太短了,改参数又要重启。在我们的建议下,目前E-MapReduce新版本的Phoenix的默认超时时长已经设置为半个小时了。

场景举例

批量计算,LogTail + LogHub + LogShipper + OSS + Hive + SparkSQL
批量计算重在采集,使用LogTail配置好采集规则,通过LogShipper自动投递到OSS,使用Hive直接加载形成数据仓库,在Zeppelin界面上通过SparkSQL直接查询Hive中的数据,整个ETL的过程十分流畅,几乎不用写任何代码。

交互式计算,LogTail + LogHub + Storm + HBase + Phoenix
对于响应时间要求更严格的OLAP业务,可以以HBase为中心构建OLAP数据库,为了缩短数据可用的周期,可以单独一条通道。使用LogTail采集,并将LogHub中的数据对接到Storm上,使用Storm进行转换并写入HBase,然后在Zeppelin的界面上使用Phoenix进行查询。

实时计算,Servlet + ONS + Spark Streaming + Redis
对于实时竞价等实时计算业务,可以充分利用ONS的超快响应(1ms以内),超大并发的特性,通过Spark Streaming进行计算,最后存储到Redis中。

展望未来

Spark 2.0 发布了Release,Hadoop 3.0发布了Alpha,HBase 2.0 发布了SNAPSHOT,这些组件中的好多新特性都是我们十分期待的,我们会密切关注阿里云E-MapReduce新产品的发布,希望早日用上新版本的开源组件。

作者,艾佳,毕业于清华大学软件工程专业,曾就职埃森哲和IBM,现担任掌慧纵盈科技股份有限公司大数据平台架构师,邮箱xiaofeng0092@foxmail.com,欢迎交流。

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 中的动态计算图:实现灵活的神经网络架构
【8月更文第27天】PyTorch 是一款流行的深度学习框架,它以其灵活性和易用性而闻名。与 TensorFlow 等其他框架相比,PyTorch 最大的特点之一是支持动态计算图。这意味着开发者可以在运行时定义网络结构,这为构建复杂的模型提供了极大的便利。本文将深入探讨 PyTorch 中动态计算图的工作原理,并通过一些示例代码展示如何利用这一特性来构建灵活的神经网络架构。
286 1
|
4月前
|
机器学习/深度学习 算法 网络架构
【YOLOv8改进 - Backbone主干】EfficientRep:一种旨在提高硬件效率的RepVGG风格卷积神经网络架构
【YOLOv8改进 - Backbone主干】EfficientRep:一种旨在提高硬件效率的RepVGG风格卷积神经网络架构
|
4月前
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
|
13天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
42 5
|
2月前
|
边缘计算 人工智能 安全
5G 核心网络 (5GC) 与 4G 核心网:架构变革,赋能未来
5G 核心网络 (5GC) 与 4G 核心网:架构变革,赋能未来
144 6
|
2月前
|
存储 监控 物联网
蜂窝网络基础架构详解:从基站到核心网
蜂窝网络基础架构详解:从基站到核心网
241 9
|
2月前
|
编解码 人工智能 文件存储
卷积神经网络架构:EfficientNet结构的特点
EfficientNet是一种高效的卷积神经网络架构,它通过系统化的方法来提升模型的性能和效率。
60 1
|
2月前
|
传感器 监控 物联网
无线传感器网络的基本架构及其广泛应用
无线传感器网络的基本架构及其广泛应用
256 0
|
3月前
|
边缘计算 物联网 5G
软件定义网络(SDN)的未来趋势:重塑网络架构,引领技术创新
【8月更文挑战第20天】软件定义网络(SDN)作为新兴的网络技术,正在逐步重塑网络架构,引领技术创新。随着5G、人工智能、边缘计算等技术的不断发展,SDN将展现出更加广阔的应用前景和市场潜力。未来,SDN有望成为主流网络技术,并在各行各业推动数字化转型。让我们共同期待SDN技术带来的更加智能、安全和高效的网络体验。
|
3月前
|
运维 安全 SDN
网络拓扑设计与优化:构建高效稳定的网络架构
【8月更文挑战第17天】网络拓扑设计与优化是一个复杂而重要的过程,需要综合考虑多方面因素。通过合理的拓扑设计,可以构建出高效稳定的网络架构,为业务的顺利开展提供坚实的支撑。同时,随着技术的不断进步和业务需求的不断变化,网络拓扑也需要不断优化和调整,以适应新的挑战和机遇。
下一篇
无影云桌面