大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。周末去哪儿架构师李锡铭根据自己的成功经验,为我们分享大数据平台快速解
搭建始末
当时我们确定要做大数据的时候,有两种选型。第一种选型是用用原生的、开源的大数据技术,需要自己搭建;第二种是ODPS。
后来我们选择了利用原生大数据,自己搭建一个大数据平台。因为我们已经有了一定的小积累,并且也想做一个大数据方面的技术沉淀。
在移动互联网时代,用户所有的行为、浏览、记录和收藏等所有的数据,我们都会把它拿下来分析,前段时间阶段性沉淀的东西有多少,是对之前的一个总结。这个数据还能帮助我们进行深度挖掘,之后如何对不同用户分类,做一个精准化的营销定位。
每个公司都会对这些数据进行报表级的展现。我们最开始的数据实现方式是把所有用户的行为数据放到传统的关系型数据库中,利用纯Java应用程序去读这张表。当计算某个指标的时候,还会关联若干张子表。这张主表大概有几千万,其它子表也是百万级甚至千万级的。如果单纯用Java去算的话,还要额外处理多线程。
所以我们用传统的Java纯程序+关系型数据库去处理报表的时候,在存储和计算的性能上会出现问题,以至于报表需求越来越慢。
在这样的大背景下,我们改成了使用大数据去处理这种场景。
技术概览
Hadoop是现在所有大数据计算存储的一个底层概念,后面所有衍生的大数据产品都是在Hadoop的基础上进行衍生的。
大数据平台快速解决方案
这张图是目前大数据平台的架构。
原生的Hadoop应该包含了Hdfs(文件存储)、Yarn(资源调度)和Mapreduce(算法)。
Spark是类似于Mapreduce的一个计算框架,它在很多场景中的性能会比原生的Mapreduce好很多,尤其是迭代计算的时候,会有好几个数量级的提升。
Sqoop是一个数据的迁移工具。
Hive是对底层Hdfs系统的文件抽象出一个类似Mysql的关系型数据库,但大前提是它是在Hadoop这个大的语义下的关系型数据库。
Oozie是一个任务编排和调度的框架。
Hue是大数据的管理后台。
Zookeeper是分布式协调工具。
1.组件分类
基础数据:Mysql,File。基础数据层是游离于大数据之外的概念,它是传统的数据来源。
大数据存储:Hdfs、Hive。大数据存储是最基础的文件存储,在这基础上抽象出一个大数据的关系型数据库。
大数据计算:Mapreduce、Spark、Sqoop。Mapreduce是原生的,Spark是新生的,Sqoop是数据转移的工具。
大数据协调与调度:Yarn、Zookeeper、Oozie。Yarn是原生的,Zookeeper是一个分布式保证文件原子性的工具,Oozie是调度工具。
大数据展现:Hue。Curd的展现层。
2.典型执行流程
大数据平台快速解决方案
最开始说过,我们遇到的问题是,Mysql的表存不下,计算也有问题。在这个场景下要把数据,从Mysql转到大数据,并利用大数据进行计算,最后做一个展现。
它的流程是,首先通过Sqoop把Mysql的数据一次性或是增量的同步到一张Hive表里,用Hive Sql写好查询后,本质上Hive Sql会转化成Mapreduce任务再去执行,最后数据就展现出来了。
很多时候后台的服务Control层会有入口和出口,我们需要把入口和出口的参数都记下来,方便以后排错或做统计方面的应用。
在应用程序里,把这些消息定时写到消息队列中,用Spark定时读消息队列,并把这些读取到的消息按Spark的方式做一个编程。这个任务最终会被丢到Hadoop的底层计算里,然后用Yarn去调度,计算出结果,把这个结果写入Hive,这就完成了一次流式计算。
3.Hue
大数据平台快速解决方案
这里写了一个Hive Sql,与传统Mysql的写法几乎一样。Hive Sql写好以后点执行。它的过程是把Sql首先交给Hive去跑,Hive用自己的Sql解析引擎把这个任务翻译成Mapreduce,Mapreduce再用Yarn跑在Hadoop上,最终把结果跑出来。
4.存储:Hadoop hdfs
HadoopHdfs是基础的存储层。
大数据平台快速解决方案
HadoopHdfs其实只包含了两种类型,一个是Namenode,一个是Datanode。Namenode是一个管理的节点,而datanode只负责数据的存储和冗余。
5.计算:Mapreduce&spark
Hadoop原生的计算框架是Mapreduce,而spark是一个新兴的计算框架,它更快更全面。
大数据平台快速解决方案
6.资源管理器:yarn、Apache、hadoop yarn
大数据平台快速解决方案
资源管理器的架构内包含rescource manager和node manager。Rescource manager是管理节点,node manager是work节点。
把任务丢给rescource manager,它去把任务分发给每个节点,做一些状态的变换,最后把结果通过rescource manager汇总以后,处理完毕交给客户端。
7.hive
大数据平台快速解决方案
hive的架构并不是很复杂,上层是一些用户的API、web页面和命令行。它的核心是执行引擎,把sql翻译成大数据平台可以接受的任务。底层基于存储,它可以存在hdfs上。
8.sqoop
主要用于在hadoop与传统的数据库间进行数据的传递。
9.ooize
大数据任务编排调度。
学习与使用路线
如果想要学习一些大数据相关的东西,我推荐可以先掌握一些基础,然后找一个场景套进技术里,进行快速实践。在快速实践的过程中会发现很多问题需要解决,很多知识需要补充,所以要在实践中前行,在错误中补充。
9月10日 – 北京 – 国内领先的移动大数据服务商极光受邀出席了在杭州举办的2017中国FinTech大会。极光大数据联合创始人兼总裁陈菲出席并发表题为《金融科技中的大数据布局》主题演讲,向与会嘉宾分享了极光大数据在金融科技领域的应用与实践。
极光大数据:金融科技一站式解决方案
2017年是中国金融科技蓬勃爆发的一年,随着科学技术在金融领域的不断深入,大数据正以迅猛势头重新塑造着金融业态。陈菲在演讲中表示:“不管是传统金融银、证、保,还是新兴的互联网金融、消费信贷等,都对数据产生了强依赖关系,可以说,谁拥有了大数据,谁理解了大数据,谁用好了大数据,谁就会在新形式下脱颖而出。”
极光大数据:金融科技一站式解决方案
陈菲认为,金融行业在大数据时代面临着四大痛点,即资金、获客、风控与运营。极光作为国内领先的移动大数据服务商,凭借在开发者服务上的多年积累,拥有海量的自有数据及数据处理能力,以覆盖客户全生命周期的一站式解决方案,帮助金融机构全面提升客户洞察能力,实现精准获客,加强运营分析和风险管理。
在同天进行的FinTech领军企业颁奖典礼上,极光大数据还获得了2017中国FinTech大会最具技术力企业大奖,这无疑是对极光深耕技术领域的又一次肯定。
极光从开发者服务开始,经过6年的不断创新,服务了超过50万款移动应用,累计覆盖超过 90 亿个移动终端,月独立活跃设备超过 7.5 亿,产品覆盖了中国国内 90% 以上的移动终端,日均消息推送超过30亿条。未来,极光将继续深耕金融、商业地产、会展、旅游和公共服务等垂直行业的数据服务,以开箱即用的标准化数据产品与服务,帮助客户解决痛点,真正提高企业的运营效率。
关于极光
极光(www.jiguang.cn)是中国领先的移动大数据平台和移动应用云服务提供商。其团队核心成员来自腾讯、摩根士丹利、豆瓣、Teradata、中国移动等公司。公司自2011年成立以来专注于为APP开发者提供稳定高效的消息推送、即时通讯和短信验证码等开发者服务。至今我们已经服务了超过50万款移动应用,累计覆盖超过90亿个移动终端,月活跃用户超过7.5亿,产品覆盖了中国国内90%以上的移动终端。基于积累的海量数据(603138,诊股),我们拓展了在大数据领域的产品,包括极光广告服务和极光数据服务。极光致力于为各行各业节约开发成本,提高运营效率,优化业务决策。