1.简介
HBase是 Hadoop 的正式子项目,它是一个面向列的分布式数据库,它在存储数据结构上并非关系型,而是疏松分布式的,持久并按多维排序并索引的map型,其思想源于Google的BigTable论文。(Google BigTable的paper: http://labs.google.com/papers/bigtable-osdi06.pdf)
由于HBase是一个分布式、大规模的平台,主要安装在类Unix平台上。但是由于其开发语言是Java,因此它同样具有跨平台的特性,同样也可以安装在Windows操作系统上。为了方便起见,使用具有类Unix特性的Cygwin来安装HBase。
2.目的
本文主要阐述在伪分布式模式(Pseudo-distributed mode)下,在Windows操作系统上使用Cygwin来安装、运行和测试HBase项目。对于真正的分布式的集群配置,可以参考本文以及HBase项目官网(http://hadoop.apache.org/hbase/)中的讲解。
3.安装与配置
软件版本:
JDK 1.6(或以上版本)
Cygwin 2.5
Hadoop 0.20.x
HBase 0.20.x
3.1 Java、Cygwin、SSH
这里的三个软件的安装过程,可以参考《Hadoop开发者》杂志创刊号中《在Windows 上安装Hadoop 教程》,在此不再赘述。
3.2 Hadoop
同样,Hadoop的安装也可以参考《Hadoop开发者》杂志创刊号中《在Windows 上安装Hadoop 教程》一文。但是根据笔者的安装过程,列出以下几点注意:
1. 在配置hadoop-env.sh中的JAVA_HOME时,Jdk往往安装在C:\Program Files\文件夹下,例如:C:\Program Files\Java\jdk1.6.0_01。JAVA_HOME应配置如下:
export JAVA_HOME=/cygdrive/c/Progra~1/Java/jdk1.6.0_01
其中,由于Cygwin无法识别“Program Files”中间的空格,如果不按照上述设置,则系统无法找到Jdk安装目录。
当然,你也可以在Cygwin的/usr/local目录下添加一个连接,从而方便配置JAVA_HOME。例如:
ln -s /cygdrive/c/Program\ Files/Java/jdk1.6.0_01 \
/usr/local/jdk1.6.0_01
export JAVA_HOME=/usr/local/jdk1.6.0_01
2. 在core-site.xml配置文件中,属性“fs.default.name”的值与《Hadoop开发者》杂志创刊号中《在Windows 上安装Hadoop 教程》一文中的值保持一致,设置为:“hdfs://localhost:8888”。同样,配置文件mapred-site.xml中的“mapred.job.tracker”属性值设置为:“localhost:9999”。
3. 在Hadoop分布式文件系统中创建两个目录hbase和tmp,这两个目录将在下面安装HBase的过程中使用,在Shell中输入命令如下:
bin/hadoop dfs –mkdir hbase tmp
Hadoop的分布式文件系统中将增加hbase和tmp两个目录,如下图所示:
3.3 HBase
假设HBASE_HOME为HBase的安装目录。
1. 在$HBASE_HOME/conf/hbase-env.sh中增加如下两个环境变量:
export JAVA_HOME=/cygdrive/c/Progra~1/Java/jdk1.6.0_01
export HBASE_IDENT_STRING=localhost
其中,JAVA_HOME的设置参照上文的说明。
2. 将$HBASE_HOME/conf/hbase-default.xml中的所有内容,拷贝到$HBASE_HOME/conf/hbase-site.xml文件中。
3. 修改hbase-site.xml配置文件中的“hbase.rootdir”属性,以及“hbase.tmp.dir”属性,如下所示:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8888/hbase</value>
<description>The directory shared by region servers.
Should be fully-qualified to include the filesystem to use.
E.g: hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR
</description>
</property>
……
<property>
<name>hbase.tmp.dir</name>
<value>hdfs://localhost:8888/tmp</value>
<description>Temporary directory on the local filesystem.</description>
</property>
…….
注意,这里设置的两个目录正是上文中在Hadoop的分布式文件系统中建立的两个目录,此外,端口号也与前面保持一致,设置为:“8888”。
4. 修改hbase-site.xml配置文件中的“hbase.zookeeper.quorum”属性的值为“127.0.0.1”,在Cygwin中,“localhost”有时无法正确识别。如下所示:
<property>
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,
host2.mydomain.com, host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK
is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
</property>
4.测试
下面测试系统是否正确安装。
1. 打开Cygwin的终端,执行“ssh localhost”命令。
2. 在Hadoop安装目录下,执行“bin/start-all.sh”脚本,启动Hadoop。
3. 在Hbase安装目录下,执行“bin/start-hbase.sh”脚本,启动HBase。
4. 在Hbase安装目录下,执行“bin/hbase shell”命令,进入Shell命令模式。
5. 在Shell中输入“create 'test', 'data'”,执行结果通过输入“list”命令进行查看。如下图所示:
6. 在Shell中分别输入“put 'test', 'row1', 'data:1', 'value1'”,“put 'test', 'row2', 'data:2', 'value2'”,“put 'test', 'row3', 'data:3', 'value3'”三条命令,以创建三条记录。
7. 输入“scan 'test'”命令,通过执行结果来测试上述三条命令的执行情况。如下图所示。
5.总结
至此,HBase在Windows操作系统中利用Cygwin工具已经安装完成,并运行良好。用户可以在系统中存储大规模的数据,并进行海量数据处理。
HBase是 Hadoop 的正式子项目,它是一个面向列的分布式数据库,它在存储数据结构上并非关系型,而是疏松分布式的,持久并按多维排序并索引的map型,其思想源于Google的BigTable论文。(Google BigTable的paper: http://labs.google.com/papers/bigtable-osdi06.pdf)
由于HBase是一个分布式、大规模的平台,主要安装在类Unix平台上。但是由于其开发语言是Java,因此它同样具有跨平台的特性,同样也可以安装在Windows操作系统上。为了方便起见,使用具有类Unix特性的Cygwin来安装HBase。
2.目的
本文主要阐述在伪分布式模式(Pseudo-distributed mode)下,在Windows操作系统上使用Cygwin来安装、运行和测试HBase项目。对于真正的分布式的集群配置,可以参考本文以及HBase项目官网(http://hadoop.apache.org/hbase/)中的讲解。
3.安装与配置
软件版本:
JDK 1.6(或以上版本)
Cygwin 2.5
Hadoop 0.20.x
HBase 0.20.x
3.1 Java、Cygwin、SSH
这里的三个软件的安装过程,可以参考《Hadoop开发者》杂志创刊号中《在Windows 上安装Hadoop 教程》,在此不再赘述。
3.2 Hadoop
同样,Hadoop的安装也可以参考《Hadoop开发者》杂志创刊号中《在Windows 上安装Hadoop 教程》一文。但是根据笔者的安装过程,列出以下几点注意:
1. 在配置hadoop-env.sh中的JAVA_HOME时,Jdk往往安装在C:\Program Files\文件夹下,例如:C:\Program Files\Java\jdk1.6.0_01。JAVA_HOME应配置如下:
export JAVA_HOME=/cygdrive/c/Progra~1/Java/jdk1.6.0_01
其中,由于Cygwin无法识别“Program Files”中间的空格,如果不按照上述设置,则系统无法找到Jdk安装目录。
当然,你也可以在Cygwin的/usr/local目录下添加一个连接,从而方便配置JAVA_HOME。例如:
ln -s /cygdrive/c/Program\ Files/Java/jdk1.6.0_01 \
/usr/local/jdk1.6.0_01
export JAVA_HOME=/usr/local/jdk1.6.0_01
2. 在core-site.xml配置文件中,属性“fs.default.name”的值与《Hadoop开发者》杂志创刊号中《在Windows 上安装Hadoop 教程》一文中的值保持一致,设置为:“hdfs://localhost:8888”。同样,配置文件mapred-site.xml中的“mapred.job.tracker”属性值设置为:“localhost:9999”。
3. 在Hadoop分布式文件系统中创建两个目录hbase和tmp,这两个目录将在下面安装HBase的过程中使用,在Shell中输入命令如下:
bin/hadoop dfs –mkdir hbase tmp
Hadoop的分布式文件系统中将增加hbase和tmp两个目录,如下图所示:
![](http://dl.iteye.com/upload/attachment/203160/e5819d82-8abe-30b8-ad29-0fc3984d3b4d.jpg)
3.3 HBase
假设HBASE_HOME为HBase的安装目录。
1. 在$HBASE_HOME/conf/hbase-env.sh中增加如下两个环境变量:
export JAVA_HOME=/cygdrive/c/Progra~1/Java/jdk1.6.0_01
export HBASE_IDENT_STRING=localhost
其中,JAVA_HOME的设置参照上文的说明。
2. 将$HBASE_HOME/conf/hbase-default.xml中的所有内容,拷贝到$HBASE_HOME/conf/hbase-site.xml文件中。
3. 修改hbase-site.xml配置文件中的“hbase.rootdir”属性,以及“hbase.tmp.dir”属性,如下所示:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8888/hbase</value>
<description>The directory shared by region servers.
Should be fully-qualified to include the filesystem to use.
E.g: hdfs://NAMENODE_SERVER:PORT/HBASE_ROOTDIR
</description>
</property>
……
<property>
<name>hbase.tmp.dir</name>
<value>hdfs://localhost:8888/tmp</value>
<description>Temporary directory on the local filesystem.</description>
</property>
…….
注意,这里设置的两个目录正是上文中在Hadoop的分布式文件系统中建立的两个目录,此外,端口号也与前面保持一致,设置为:“8888”。
4. 修改hbase-site.xml配置文件中的“hbase.zookeeper.quorum”属性的值为“127.0.0.1”,在Cygwin中,“localhost”有时无法正确识别。如下所示:
<property>
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,
host2.mydomain.com, host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK
is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
</property>
4.测试
下面测试系统是否正确安装。
1. 打开Cygwin的终端,执行“ssh localhost”命令。
2. 在Hadoop安装目录下,执行“bin/start-all.sh”脚本,启动Hadoop。
3. 在Hbase安装目录下,执行“bin/start-hbase.sh”脚本,启动HBase。
4. 在Hbase安装目录下,执行“bin/hbase shell”命令,进入Shell命令模式。
5. 在Shell中输入“create 'test', 'data'”,执行结果通过输入“list”命令进行查看。如下图所示:
![](http://dl.iteye.com/upload/attachment/203162/3a9b92ad-de3c-3f10-9675-284ddfb9e6e5.jpg)
6. 在Shell中分别输入“put 'test', 'row1', 'data:1', 'value1'”,“put 'test', 'row2', 'data:2', 'value2'”,“put 'test', 'row3', 'data:3', 'value3'”三条命令,以创建三条记录。
7. 输入“scan 'test'”命令,通过执行结果来测试上述三条命令的执行情况。如下图所示。
![](http://dl.iteye.com/upload/attachment/203164/08be6ba3-6533-3e3d-89b4-d818dc566d66.jpg)
5.总结
至此,HBase在Windows操作系统中利用Cygwin工具已经安装完成,并运行良好。用户可以在系统中存储大规模的数据,并进行海量数据处理。