经过前段时间的学习,加深了对大数据技术的处理流程和关键系统的理解,下面就对其做个小结,争取把自己掌握的东西讲清楚说明白。
大数据技术流程
随着计算能力的提高和机器学习算法的逐步成熟,大数据技术已经得到空前的发展,数据团队成为互联网公司的标配,数据团队的技术水平也成为衡量企业技术水准的关键指标。说起大数据,大家首先想到的是Hadoop,Spark等,在深入了解之后,发现这种理解过于片面,下面就对大数据相关的概念做一个梳理。
大数据技术可以分为以下六个步骤:
(1) 数据收集及准备:搞大数据,首先要具备足够的数据量,典型的数据源有服务器的日志数据,用户访问Web站点的浏览行为数据,各大银行中用户的消费数据等。
(2)数据的存储:数据收集到之后我们要想办法把它存储下来以供接下来的处理和分析。
(3)资源的管理:在大数据处理系统中,传统的单机已经不能满足要求,需要分布式集群来协同工作,多台机器在一起工作需要有一个资源管理系统对集群资源进行调度。
(4)计算框架:海量数据存储在集群中,数据存储在那里不深入挖掘是没有经济价值的,我们需要一些计算框架对存储的数据做基本的预处理,典型的计算框架有批处理的计算框架,交互式分析的计算框架,流式处理的计算框架等
(5)数据分析:在前面的基础上,我们可以开展一些深层次的分析,挖掘海量数据中存在的经济价值,比如分析服务器日志数据可以帮助我们制定更加科学的负载均衡策略,分析用户Web站点的浏览行为做一些推荐营销等。数据分析系统常见的有OLAP(联机分析处理),OLTP(联机事务处理)等。
(6)数据的展示:在数据处理和分析后,我们需要将结果以直观的方式展现出来,比如生成报表等。
大数据关键系统介绍
在上面详细分析了大数据技术的基本流程基础上,下面介绍下上述各个流程中典型的系统:
(1)数据收集及准备:在收据收集中,典型的收集系统有Flume(用于收集日志数据),Sqoop(将关系型数据库中的数据迁移到数据存储系统中)等。
(2)数据的存储:在大数据存储中最经典的就是HDFS(分布式文件系统),基于Google的GFS。
(3)资源管理:YARN主要负责资源管理和调度,它是Hadoop2.0中新增的系统。Zookeeper主要解决分布式环境下数据管理问题,用于主备自动切换。
(4)计算框架:常见的计算框架有Mapreduce(适用于离线处理),Hive也是用于离线处理,它定义了一种类似SQL查询语言,可以将SQL翻译Mapreudce执行,省去了编写大量程序;交互式的查询引擎Presto,它是基于内存的、支持任意数据源、与Hive兼容;流式处理计算框架Storm,Spark Streaming。
(5)数据分析:在前面的基础上有一些数据分析的机器学习类库,如Mahout,Spark的MLlib等。
(6)数据的展示:目前流行的可视化工具有D3.js、Echart,Tabluea等。
备注
Hadoop是大数据的生态系统,它里面包含许多开源的组件,不同的组件对应于处理流程中的各个子系统,我们大部分关注的是数据分析这个步骤,在这个步骤中做一些数据挖掘,搜索推荐等工作。