接着前两篇对大数据的介绍之后,本篇从实际操作的角度分享大数据内部关键的运作机制,这是在真正开始学习大数据之前对大数据的一个概览。为的是让我们成为大数据的主人。以下是小编为你整理的为什么要学习大数据
大数据运行机制
这是对大数据运行机制的概览,如果你阅读过上一篇(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旨在提供一个生态的大数据分析开发环境,使得普通研究员也可以施展自己对大数据的理解!
学习Oracle是一个漫长艰辛的过程
如果没有兴趣,只是被迫学习,那么是很难学好的。学习到一定程度的时候,要想进一步提高,就不得不接触很多Oracle之外的东西,如Unix,如网络、存储等。因此,要真的决心学好Oracle,就一定要有兴趣。有了兴趣,就会一切变得简单快乐起来。简单总结一下,那就是:兴趣、学习、实践。
如何入门是许多初学者最头疼的事情。Oracle涉及的方面太多了:SQL、管理、优化、备份恢复……那么从哪开始学好呢?如果在*期间学过数据库理论,或有一定的数据库基础自然很好;如果没有的话,真的是个大问题。我个人认为还是应该从SQL语句学起。比较好的教材是Oracle OCP认证的《SQL and PL/SQL》。学习SQL的时候,尽可能坚持使用Oracle自带的工具:SQLPLUS。
有了一定的SQL基础后,就要尽可能的了解Oracle的体系结构,这就涉及到了Oracle管理的内容了。我学习的时候,机械工业出版社的《Oracle9i DBA手册》这本书对我的帮助挺大。或许现在都出11g版本的了吧。Oracle公司的《Oracle Concepts》是非常棒的书,对了解Oracle体系结构很有好处。每个Oracle版本都有对应的版本,可以认真多读几次,每次都会有新的收获。
公司的产品现在几乎都采用Oracle了,我们做维护的时候,备份与恢复是不得不接触的内容。数据量少的,比如20、30多个G,还可以考虑用exp/imp来备份与恢复,但数据量大了,这种方法就根本不适合了。于是学习Oracle备份与恢复技术也是必然的事情。大数据量情况下,Oracle建议用RMAN来进行数据的备份与恢复。目前市场上有很多数据库备份恢复软件,其实好多也是后台调用RMAN。清华*出版社出版的《Oracle 9i RMAN 备份与恢复技术》是一本非常不错的介绍RMAN的书。
有了以上的基础,可以说已经入门了,对遇到的一些初级Oracle问题将不再束手无策。然而我们的学习之路仍然还很漫长。我们的用户可能经常抱怨数据库运行缓慢。这时,如果有一定的优化知识,那就好办了。有时你会看到优化前需要运行几个小时的作业,优化后也许几秒钟就能完成!Oracle9i的性能诊断工具包statspack、Oracle10g/11g的自动工作符合存储库AWR都是调优的好帮手。机械工业出版社出版的《Oracle9i STATSPACK高性能调整》是学习statspack不错的书。