Hadoop系列之一:大数据存储及处理平台产生的背景

news/2024/7/19 10:50:16 标签: 大数据, 数据库, 爬虫

传统的关系型数据库中的表通常由一个或多个字段组成,每个字段都预先定义了其可存储数据的格式及约束等,这类的数据就是结构化数据(structured data)。一个设计良好的数据库在其schema中定义这些格式或约束,并由相应的RDBMS为这些提供实现保证。相应地,非结构化数据(unstructured Data)就是指那些没有一个预定义的数据模型或不适于存储在RDBMS中的数据,这些数据没有额外的描述信息(元数据)因此无法推断这些信息的真实意义,比如文本文件。半结构化数据(semi-structured data)有着特定的结构,但每个记录的结构未必完全相同,因此,无法为这些数据记录提供预定义的schema,其元数据只有在数据创建时才能获取,通常都与数据交相存储从而实现自我描述(self-describing),如XML文件。

 
现今,如搜索引擎类公司的网络爬虫爬行而来的web页面或社交类站点产生的用户访问日志都属半结构化或非结构化数据,传统的关系型数据库管理系统对这类数据的存储及处理能力有限,于是处理这类数据的需求就催生了一种新的数据库系统,即大数据管理系统(Big Data System)或NoSQL。这场声势浩大的数据库管理系统革新运动以Google、Amazon、Yahoo!、Facebook等先锋为主导展开的。这些组织或者由自己的业务生成海量数据,或从互联网上自由获取海量数据,但对这些海量数据进行存储、分析和处理都无一例外地成为支撑其业务的核心需求。初期,他们都采用了当时主流的数据管理技术来满足类似需求,但也都在各自的应用中遇到了规模扩展、存储性能等各方面的限制。尽管数据管理并非他们的核心业务,但数据处理却成支撑其业务运作基本组成部分,因此他们各自注入大量的技术实力依据业务需求进行新技术研发。
 
尽管许多公司都对他们的研究成果采取了保密措施,Google却选择了将他们的成功经验公之于众。2003年,Google公开发表了论文“The Google File System”,系统阐述了采取商用硬件计算机集群存储海量数据的分布式文件系统GFS的实现;GFS采取“数据块”管理文件数据,并在集群中多个节点上存储同一个数据块的副本以实现冗余功能;GFS设计用来支持大规模、数据密集型、分布式应用程序的运行;此外,它还为流式数据读取进行了优化,因此特别适用于存储之后读取数据并对之做出处理类的操作。这之后的第二年,Google又公开发表了另一篇论文“MapReduce: Simplified
Data Processing on Large Clusters”,定义了一个编程模型及其运行框架,提供了于集群中的多个节点上自动并行、容错及可处理数百TB规模的数据集数据处理平台;MapReduce是GFS集群的组成部分,它是一个编程框架,能够让用户编写的代码分布式运行于GFS集群中的多个节点上尽可能通过本地数据访问完成数据的并行处理操作。MapReduce与GFS一同构成了大数据存储及并行处理平台,Google的搜索索引的建立也正是基于此平台得以高效运行。与此同时,Amazon也公开其购物车实现的基础组件Dynamo。
 
Google的MapReduce及GFS提供了海量数据存储及并行处理平台,但GFS并不支持对数据进行随机或实时访问,且仅适用于存储少量的、体积巨大大的文件,对海量小数据文件的管理有此力不从心。故此,Google开始寻找一种能够充分发挥GFS的高可用性及海量存储能力,又能支持类似邮件或分析系统等交互式应用的数据管理解决方案。这种数据存储要能够有效管理海量数据片断,又可以透明地将这些小数据片合并成为适合存储于GFS的大文件,也要内生地支持排序索引以在数据检索时最小程度地触发磁盘IO操作,还要能够存储网络爬行而来的海量数据并将其提供给MapReduce及时、快速构建搜索索引。针对这些需求,传统的RDBMS系统的管理能力已难以为继,因此Google的工程师发明了一种新的处理系统,这种系统移除了关系型数据库系统的众多特性而提供一种仅支持CRUD(Create、Read、Update和Delete)操作的简单API,以及一个实现范围或全表遍历的scan功能。2006年,Google将这些研究成果通过“Bigtable: A Distributed Storage System for Structured Data”论文公之于众。
 
任何对MapReduce、GFS及Bigtable技术感兴的朋友都应该认真读一读Google贡献给全人类的这三篇传世之作。它们也是开源系统Hadoop、HBase等得以构建的理论基石,Hadoop的核心组件为MapReduce和HDFS,其中Hadoop的MapReduce是Google的MapReduce技术的开源实现,HDFS是GFS的开源实现,HBase是Bigtable的开源实现。因此,这三篇论文也是深入学习Hadoop、HBase等的基础性材料。
 
参考资料:
Introduction to Database Systems
Hadoop Operations
Hadoop The Definitive Guide 3rd edtion
HBase The Definitive Guide
HBase in Action
http://en.wikipedia.org/wiki/Unstructured_data

 


http://www.niftyadmin.cn/n/1833167.html

相关文章

“一切皆Socket!”

2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/xiaoweige207/article/details/6211577 “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究…

如何手工删除与创建Oracle数据库

实验环境:一台已安装Oracle数据库的机器(Oracle数据库在oracle用户下)。第一、手工删除Oracle数据库以下操作用oracle用户登录且都要登入数据库 sqlplus / as sysdba1、关闭数据库 shutdown immediate;2、数据库开启到mount状态 startup moun…

mysql安装(Linux中redhat版本,redhat密码破解)

破解密码: 1,先重启系统,开始界面点击鼠标入进电脑,按下e键。 2.在界面中间输入rd. break . 输入Ctrlx执行。3,输入下面命令,修改命令。 mount -o(是字母o不是数字0) remount,rw /sysroot chroot /sysroot passwd -d 修…

代码随想录【数组篇】

本篇主要内容如下图大纲所示: 二分查找 力扣题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target , 写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例1&#x…

面试习题之设计模式 C#观察者模式(猫叫老鼠惊走主人醒)

腾讯云测试|TEST Tencent Cloud /* * CatShout.cs */ using System; using System.IO; using System.Collections; public interface Observer { void Response(); //观察者的响应,如是老鼠见到猫的反映 } public interface Subject { void AimAt(Observer ob…

ArcGIS Server 10 安装配置图解详细说明

本文主要介绍ArcGIS Server10.0 在Windows操作系统下的安装,希望对大家有用! 一、ArcGIS Server 支持的平台 Windows 2003 Service Pack 2 Server 标准版、企业版和数据中心版(32 位和 64 位 (EM64T)) Windows 2008 Server 标准版…

通过java.util.Properties类来读取.properties文件中key对应的value

转:http://www.cnblogs.com/panjun-Donet/archive/2009/07/17/1525597.html转载于:https://www.cnblogs.com/kuiyeit/p/4766190.html

IO流-设置输出字符编码格式

public class TestEncode { public static void main(String[] args) { String str "a工程师"; try { System.out.println(str.getBytes("gbk").length);//结果7 System.out.println(str.getByt…