接着前两篇对大数据的介绍之后,本篇从实际操作的角度分享大数据内部关键的运作机制,这是在真正开始学习大数据之前对大数据的一个概览。为的是让我们成为大数据的主人。以下是小编为你整理的怎么样学大数据分析
大数据运行机制
这是对大数据运行机制的概览,如果你阅读过上一篇(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级别以上时,网格计算的方法显得力不从心。不过网格计算用在中小型科研实验确实是说一不二的选择!