Hbase 分析报告 本文基于环境 hadoop-0.16.4 和 hbase-0.1.3 编写 Hbase 是一个分布式开源数据库,基于 Hadoop 分布式文件系统,模仿并提供了基于 Google文件系统的 Bigtable 数据库的所有功能。 Hbaes 的目标是处理非常庞大的表,可以用普通的计算机处理超过 10 亿行数据,并且有数百万列元素组成的数据表。 Hbase 可以直接使用本地文件系统或者 Hadoop 作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥 Hbase 处理大数据量等功能,需要使用 Hadoop 作为文件系统,那么我们就先要了解 Hadoop 文件系统的基本特性和原理,才能更好地理解 Hbase 的工作方式。 Hadoop 文件系统 Hadoop 文件系统是一个能够兼容普通硬件环境的分布式文件系统, 和现有的分布式文件系统不同的地方是 Hadoop 更注重容错性和兼容廉价的硬件设备,这样做是为了用很小的预算甚至直接利用现有机器就实现大流量和大数据量的读取。 Hadoop 使用了 POSIX(可移植性操作系统接口)的设计来实现对文件系统文件流的读取。HDFS(Hadoop FileSy stem)原来是 Apache Nu tch 搜索引擎(从Lu cene 发展而来)开发的一个部分,后来独立出来作为一个 Apache 子项目。 Hadoop 的假设与目标 1、 硬件出错,Hadoop 假设硬件出错是一种正常的情况,而不是异常,为的就是在硬件出错的情况下尽量保证数据完整性,HDFS 设计的目标是在成百上千台服务器中存储数据,并且可以快速检测出硬件错误和快速进行数据的自动恢复。 2、 流数据读写,不同于普通的文件系统,Hadoop 是为了程序批量处理数据而设计的,而不是与用户的交互或者随机读写,所以 POSIX 对程序增加了许多硬性限制,程序必须使用流读取来提高数据吞吐率。 3、 大数据集,HDFS 上面一个典型的文件一般是用 GB 或者 TB 计算的,而且一个数百台机器组成的集群里面可以支持过千万这样的文件。 4、 简单的文件模型,HDFS 上面的文件模型十分简单,就是一次写入多次读取的模型,文件一旦创建,写入并关闭了,之后就再也不会被改变了,只能被读取,这种模型刚好符合搜索引擎的需求,以后可能会实现追加写入数据这样的功能。 5、 强大的跨平台兼容性,由于是基于 jav a 的实现,无论是硬件平台或者是软件平台要求都不高,只要是 jdk 支持的平台都可以兼容。 Hadoop 体系结构 目录节点(NameNode)和数据节点(DataNodes) Hadoop 文件系统是...