聊聊大数据平台的典型应用场景

说起大数据总是感觉听得多,实践的少,所以谈不上有什么认识,很是遗憾。然前一段时间刚好接手团队内部「数据服务线」的工作,筹划搭建大数据平台,埋藏在心底的那股劲儿又被唤起,提枪上马开干。

整个大数据集群大概有十几台虚拟机,安装Hadoop生态系统的开源工具,具体工具如下:

Hadoop

Hadoop作为整个大数据生态系统的基础组件是不可或缺的,该工具主要涵盖以下功能模块:

  • Hadoop Common:基础通用工具函数;
  • Hadoop Contributed File System(HDFS):一款分布式文件系统,支持应用对数据高并发访问;
  • Hadoop YARN:开源工具都跑在同一个集群上,如何保证他们之间的有序调度就是YARN所要负责的工作;
  • Hadoop MapReduce:通用的大数据并行运行计算框架。

Hive

Hive是一款Hadoop生态系统中的数据仓库软件,使用hql在分布式存储系统中进行读写,提供CLI、JDBC/ODBC、WEB GUI三种交互方式。

Sqoop

Sqoop用于在Hadoop(Hive)与关系型数据库(Oracle/Mysql)之间进行数据的导入导出,根据实战经验,在数据加工这一应用场景中,事先需要把关系型数据库表中的数据导入Hive中,此工具不可或缺。

在完成搭建之后,整个大数据平台的架构如下图所示:

(20160730)大数据-简书平台

前文中已经对架构图中的每款开源工具都做了介绍。

典型应用场景

完成大数据平台的搭建不是目的,关键是如何在团队业务中寻找应用场景,从而赋能业务,在诸多的应用场景探索过程中,比如银行系统日终对账、统计各B2B商城用户T-1日的下单量,pv量等统计指标,最终我们把这些具体的应用场景抽象为一个「应用数据ETL」服务,该服务包含以下几个步骤:

  1. 利用Sqoop工具把Mysql指定库中的表数据导入到Hive中;
  2. 预处理(可选项),可以执行在Mysql库中预先定义好的存储过程;
  3. 执行ETL,根据数据加工的目的编写相应的hql语句;
  4. 利用Sqoop工具把Hive中存储处理结果的临时表中的数据导出到Mysql指定库表中,支持应用实时查询;
  5. 清理工作,比如删除Hive中创建的临时处理结果表。

以上五个步骤分别对应**架构图**中右上角的内容,并在图中已经表明执行每个步骤时所需要连接的内容,考虑到架构图的简洁和美观,步骤中的第3步和第5步并没有直接连线到Hive,而是把他们两个单独拎出,一起放在左上角。

后期规划

在现有的大数据平台架构中引入Spark,Spark是一款基于内存的并行运行框架,从实验中得到论证:Spark比Hadoop中的MapReduce运行框架快100倍,在平台框架中选中它基于两方面的考虑:

  1. 替换MapReduce;
  2. Spark可以在多个领域进行扩展,Spark发展到现在已经有了一套非常具有技术洞见的工具,在SQL查询,机器学习和流计算等方面有很强的优势,为我们之后的应用场景探索做技术储备。

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注