赞
踩
HBase是一个分布式的,本地化的,面向列的,多维度的存储系统,在设计上具备高性能和高可用性。
* hbase是goole的bigtable架构的开源实现
* 与传统的关系型数据库管理系统类似,hbase中也是以表的形式组织数据
* hbase支持非常松散的结构定义,但不支持任何表连接joins,查询数据或sql操作
* hbase主要在大稀疏表上做crud操作
* 大多是hbse的实现都在使用高度非结构化数据
* 参与主从架构实现
* hbase利用hdfs做持久化数据存储
* 具有校验,数据复制和存储
* hbase数据管理由分布式的域服务器(region server)实现,域服务器由hbase主控服务器hmaster管理
hbase主要操作:
* get:获取制定行的版本信息,获取指定行和指定列簇的所有column
* put:键值不存在时,在表中添加新航,如果键值已经存在,则更新对应值即可
* scan:允许在多行上迭代以查找特定值,该特定值可以包括正航或其任意子集
* delete:删除一行或者指定列簇
Hive:
Hive不支持更改数据的操作,Hive基于数据仓库,提供静态数据的动态查询。其使用类SQL语言,底层经过编译转为MapReduce程序,在Hadoop上运行,数据存储在HDFS上。
Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS(关系型数据库)数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。
Pig:
Pig的语言层包括一个叫做PigLatin的文本语言,Pig Latin是面向数据流的编程方式。Pig和Hive类似更侧重于数据的查询和分析,底层都是转化成MapReduce程序运行。区别是Hive是类SQL的查询语言,要求数据存储于表中,而Pig是面向数据流的一个程序语言。
hadoop中所有应用程序设计的重要一环是选择合适的数据存储方式
* 如果数据植被mapreduce模型实现,则hdfs是最佳方案
* sequencefiles是采用mapreduce模型处理的最佳选择
* 应用程序的实际分区哦是取决去数据的使用模式
* 通用的方法是评估计算请求的数量设计合适的分区模式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。