读了两篇关于hadoopDB数据仓库的论文之后,写一点关于hadoopDB的简介:
hadoopDB是耶鲁大学的一个大学项目, 目的是为了构建一个数据仓库的工具。
HadoopDB 结合了hadoop 和paralled RDBMS,结合两个技术的优点。
HadoopDB is to connect multiple single_node database systemusing Hadoop as the task coordinator and network communication layer.
Hadoop的优点:fault toleranceand ability to operate in a heterogeneous environment properties.
缺点: performance,特别是对于join和aggregation操作。
Paralled RDBMS的优点: performance, 特别是对于join和aggregation的优化 处理。
缺点:就是hadoop的优点。
原来hadoop + hive就是一套完整数据仓库工具,hive的作用是把用户输入的类SQL语句翻译成hadoop能够执行一些操作-mapreduce的任务tree(包含多个mapreduce的操作),只有由hadoop去执行。但是这些操作都是基于google自己的HDFS,所以在performance上并不是理想。同类的产品还有yahoo的pig, Microsoft的SCOPE。
HadoopDB的最终想法就是在map阶段把SQL语句尽量的让paralledRDBMS 去执行,尽量发挥并行数据库系统的优势,之后把每个node的输出序列化到temp文件中,在reduce阶段把结果从temp文件中读出即可。
如果实在不能让paralled RDBMS去执行,那么只能依靠mapReduce的功能。
上面是HadooopDB的一个结构图,在原来的hadoop+ hive的基础上,增加了一些组件:
1. SMS Planner.
不清楚是SMS Planner是独立于hive,还是依赖于hive.现在暂且认为SMSPlanner的作用是在hive解析SQL语句生成mapreduce任务tree之后,对mapreduce任务tree进行优化,尽量指导hadoop去paralledDatabase中执行SQL。
2. Catalog。
里面存储了paralled database的一些信息。
3. Data loader。
负责把原始数据load到paralleddatabase中,需要完成的工作是对原始数据的partition.
4. Database Connector
该类继承自hadoop的inputformat类,用于向各个node传递信息,Databaseconnector里面包含了node里面database的链接信息和需要执行的SQL语句。
5. Paralled DataBase.
用于代替HDBS在各个node上存储数据。
以下面SQL语句为例:
SELECT YEAR(saleDate),SUM(revenue)
FROM sales GROUP BY YEAR(saleDate);
1. 对于hive来说,他会把他翻译成如下步骤:
2. 而通过SMS planner对上面plan的修改,如果在partition的时候,所有的表格是以year为attribute做的partition,那么每个database里面的数据是独立的,也就是可以把上述SQL语句直接给node中的database做查询。那么修改之后的plan如下:
只需要Map阶段把SQL语句传递给每个node,每个node只需要返回查询结果即可,不需要在reduce阶段做什么操作。
3. 但是如果在partition的时候,所有的表格没有以year为attribute做partition, 那么各个database里面的数据不是独立,是需要全部从各个数据库中读出相关表格,之后让mapreduce以year为attribute做map操作,之后对于各个map操作,做reduce操作。
两篇论文:
Abadi - HadoopDB An Architectural Hybrid of MapReduce and DBMS Technologies for Analytical Workloads
Abadi - Efficient Processing of Data Warehousing Queries in a Split Execution Environment
http://blog.csdn.net/suwei19870312/article/details/7242995
相关推荐
HadoopDB 系统的设计理念是对现有数据仓库技术的创新,旨在结合传统数据仓库在查询性能和效率方面的优势,以及基于 MapReduce 技术在大数据处理方面的卓越能力。这种混合架构可以提供一个灵活、可扩展且高性能的系统...
- **分析工作负载**: HadoopDB被设计用于执行分析工作负载,即需要处理和分析大量数据的任务。 - **平行数据库**: 部分企业开始从高端专有机器转向更廉价、性能较低的商用硬件,通常采用无共享的MPP(大规模并行处理...
通过结合并行数据库和MapReduce的优势,HadoopDB在大数据处理领域展现了强大的潜力,为开发者和企业提供了新的选择,以应对日益增长的数据处理挑战。随着技术的不断发展和完善,HadoopDB有望在未来的数据密集型应用...
hadoopdb.sql
用户hadoopdb相关的jar包,应该还是很有用的啊!
数据的规模效应给数据存储、管理以及数据分析带来了极大的挑战,学界和业界广泛采用分布式文件 系统和 MapReduce 编程模型来应对这一挑战.提出了大数据环境中一种基于 Hadoop 分布式文件系统(HDFS)和 MapReduce 编程...
c) 并行数据库与MapReduce共存,各取所长,进行任务划分,如Vertica、Teradata和HadoopDB。 六、数据分析技术 在大数据存储和处理的基础上,还需要强大的数据分析技术来提取有用知识。这通常需要在文件系统之上...
实验结果表明,DOLAP技术的性能要优于基于HBase、Hive、HadoopDB、OLAP4Cloud等主流非关系数据库系统实现的OLAP性能。 DOLAP技术的架构主要包括三个部分:数据处理层、多维数据库管理层和OLAP应用层。数据处理层...
这一平台的成功设计与实现是基于对现有分布式计算架构如Google的Map/Reduce和HadoopDB的深入研究,以及对电力行业运维监控业务需求的深刻理解。这种设计思路和技术架构可以为其他行业的海量数据处理需求提供参考。
1. **列族数据库**:如BigTable、HBase、Cassandra、Amazon SimpleDB和HadoopDB等。这类数据库适用于大规模数据存储,尤其在处理时间序列数据时表现优秀。例如: - **Cassandra** 提供列索引和高性能缓存,支持跨...
2. Hbase、HadoopDB、GreenPlum、Cassandra等都是列式存储数据库,适合大数据分析,具有高扩展性和高性能。 3. Dynamo、BeansDB、Voldemort等是Key-Value存储,提供高可用性和容错性。 4. CouchDB、MongoDB等是文档...
而论文[9]提出的Trojan Index和Trojan Join算法,为Hadoop提供了一种高效的索引和JOIN操作,实验结果显示优于原生Hadoop和HadoopDB。 在工业界,百度(Baidu)对Hadoop的关键组件如Map、Shuffler和Reducer进行了C++...
Hadoop之Hbase 耶鲁大学之HadoopDB GreenPlum FaceBook之Cassandra Cassandra特点 Keyspace Column family(CF) s ebug . net / paper / dat abas es / nos q l / N os q l . ht ml 1/ 56 13-12-4 NoSQL数据库笔谈 ...