接着前两篇对大数据的介绍之后,本篇从实际操作的角度分享大数据内部关键的运作机制,这是在真正开始学习大数据之前对大数据的一个概览。为的是让我们成为大数据的主人。以下是小编为你整理的怎么样学大数据分析
大数据运行机制
这是对大数据运行机制的概览,如果你阅读过上一篇(OODA),就会感觉非常熟悉。不错,他们在概念上是如出一撤的!不过实际操作却又有巨大的不同。
收集数据:
大数据的第一站就是收集和存储海量数据(公开/隐私)。现在每个人都是一个巨大的数据源,通过智能手机和个人笔记本释放出大量的个人行为信息。获取数据似乎已经变得越来越容易,数据收集这一模块最大的挑战在于获取海量数据的高速要求以及数据的全面性考虑。
清洗数据:
传统商业智能在数据清洗处理的做法(ETL)是,把准确的数据放入定义好的格式中,通过基础的抽取统计生成高维度的数据,方便直接使用。然而大数据有个最突出的特征——数据非结构化或者半结构化。因为数据有可能是图片,二进制等等。数据清洗的最大挑战来了——如何转化处理大量非结构数据,便于分布式地计算分析。
硬件:
这是大家都很熟悉的概念,和大数据相关的是虚拟化。主要包括存储虚拟化,计算虚拟化。因此又说虚拟化存储和云计算是大数据的“左膀右臂”!!大数据还需要支持多种类型的数据库,因此一个支持扩展的数据仓库是大数据中的基础。
HBase/Sqoop/Flume(数据导入与导出):
HBase是运行在HDFS架构上的列存储数据库,并且已经与Pig/Hive很好地集成。通过Java API可以近无缝地使用HBase。
Sqoop设计的目的是方便从传统数据库导入数据到Hadoop数据集合(HDFS/Hive)。
Flume设计的目的是便捷地从日志文件系统直接把数据导到Hadoop数据集合(HDFS)中。
以上这些数据转移工具都极大的方便了使用的人,提高了工作效率,把经历专注在业务分析上!
ZooKeeper/Oozie(系统管理架构):
ZooKeeper是一个系统管理协调架构,用于管理分布式架构的基本配置。它提供了很多接口,使得配置管理任务简单化!
Oozie服务是用于管理工作流。用于调度不同工作流,使得每个工作都有始有终。
这些架构帮助我们轻量化地管理大数据分布式计算架构。
7
Ambari/Whirr(系统部署管理):
Ambari帮助相关人员快捷地部署搭建整个大数据分析架构,并且实时监控系统的运行状况。
Whirr的主要作用是帮助快速的进行云计算开发。
Mahout(机器学习):
Mahout旨在帮助我们快速地完成高智商的系统。其中已经实现了部分机器学习的逻辑。这个架构可以让我们快速地集成更多机器学习的智能!!
大数据服务对比
不同大数据服务提供商有不同的产品线,因此不同提供商的产品适用场景也会有所不同。我们重点分析三大服务提供商的大数据服务架构。
亚马逊
拥有大量关于大数据处理的经验。初期大数据使用者大部分都使用亚马逊打造的Hadoop架构服务(EC2)。
经过厚重沉淀之后,Amazon在2009年提供开发EMR大数据服务。EMR服务提供了多种大数据处理分析方案,比如简单查询服务,关联数据分析服务。EMR服务可以使用Hadoop语言继续开发,并且访问EMR服务的步骤也相当简单并且安全。
亚马逊使用托管DynamoDB代替HBase,作为易于扩展的NoSQL数据库。
谷歌
谷歌云服务平台出类拔萃,它所提供的并非虚拟化解决方案,而是提供由API定义的服务和应用程序。程序员无需顾虑硬件,甚至不需要关心后台的运作行为。
当然这从某种程度也限制了程序员的工作,不过如果谷歌的服务适合业务,那么使用起来将是全世界最高效快捷的大数据架构服务。
谷歌的AppEngine作为云平台管理服务,提供了基于MapReduce的大数据并行计算服务。所有的这些服务都可以通过REST风格的API访问。
BigQuery作为分析的数据库,提供了类SQL的查询语法。它的性能要比Apache Hive来得快!
微软
微软在大数据中属于后来居上者。通过Microsoft Azure大数据服务平台,微软融合自身海量成熟的软件,例如SQL Server,提供了多种IaaS服务。
微软的服务面向更多的程序员,使得可以使用不同语言来对接大数据平台Azure。Azure旨在提供一个生态的大数据分析开发环境,使得普通研究员也可以施展自己对大数据的理解!
Hadoop大比较
为什么选择Hadoop,而不是其他数据处理架构,比如传统关系型数据库或者其他。Hadoop在我的眼里,更像是在“暴力解锁”,它可以处理每一条数据,乃至每一种可能的设想。Hadoop的巨大贡献在于快速分析大数据所隐藏的事实,这在过去也许需要几天甚至几个月的时间才能完成,而Hadoop很可能只需要几分钟甚至几秒钟的时间就可以很完整地做好!
关系型数据库的几个特点使得它无缘大数据分析,当然它也有自己擅长的领域。
(1)磁盘可以存储大量内容,却无法快速存取!并且存储空间的扩展是有限度的。
(2)在更新一小部分数据的同时,会对整张表乃至整个数据库都会产生影响。
(3)要求存储的数据都是结构化的,能处理的数据也都是结构化。
网格计算尝试通过多台机器(不同的任务)处理和管理共享文件系统,最终达到大数据计算的目的。这样的尝试以网络带宽的约束而失败告终。因为数据量达到GB级别以上时,网格计算的方法显得力不从心。不过网格计算用在中小型科研实验确实是说一不二的选择!