大数据平台快速解决方案

摘要

大数据(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

大数据任务编排调度。

学习与使用路线

如果想要学习一些大数据相关的东西,我推荐可以先掌握一些基础,然后找一个场景套进技术里,进行快速实践。在快速实践的过程中会发现很多问题需要解决,很多知识需要补充,所以要在实践中前行,在错误中补充。

我的分享到此结束,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【聚焦】后Hadoop时代的大数据架构

提到大数据分析平台,不得不说Hadoop系统,Hadoop到现在也超过10年的历史了,很多东西发生了变化,版本也从0.x进化到目前的2.6版本。我把2012年后...

30040
来自专栏大数据文摘

后Hadoop时代的大数据架构

26050
来自专栏PPV课数据科学社区

多图技术贴 | 深入浅出解析大数据平台架构

参加活动赢取话费和一个月免费会员 点击底部阅读原文,参加PPV课玩转可视化图表,赢取话费和PPV课一个月免费会员,精品课程免费看! 目录: 什么是大数据 Had...

39940
来自专栏机器人网

【推荐】非常棒的大数据学习资源

今天为大家推荐一些翻译整理的大数据相关的非常棒的学习资源,希望能给大家一些帮助。 ? 服务编程Akka Toolkit:JVM中分布性、容错事件驱动应用程序的运...

44650
来自专栏企鹅号快讯

全球100款大数据工具汇总

次文包含前50款 ? 01 Talend Open Studio 是第一家针对的数据集成工具市场的ETL(数据的提取Extract、传输Transform、载...

21170
来自专栏华章科技

全球100款大数据工具汇总(前50款)

是第一家针对的数据集成工具市场的ETL(数据的提取Extract、传输Transform、载入Load)开源软件供应商。Talend的下载量已超过200万人次,...

13130
来自专栏挖掘大数据

超详细的大数据学习资源推荐(下)

服务编程 Akka Toolkit:JVM中分布性、容错事件驱动应用程序的运行时间; Apache Avro:数据序列化系统; Apache Cura...

27950
来自专栏玉树芝兰

如何用正确的姿势发微信群通知?

人数众多的微信群里,你如何管理通知发放进度?想不想使用更高效的办法发通知?本文推荐给你一款小程序,帮助你轻松搞定微信群通知。

24010
来自专栏程序人生

你的Project Starter在哪里?

今早看到一个github repo,hackathon starter。它是一个nodejs的project starter,帮助你快速建立项目原型。 ? 它提...

349100
来自专栏喔家ArchiSelf

架构大数据应用

数据管理比以往更加复杂,到处都是大数据,包括每个人的想法以及不同的形式:广告 , 社交图谱,信息流 ,推荐 ,市场, 健康, 安全, 政府等等。 过去的三年里,...

20520

扫码关注云+社区

领取腾讯云代金券