您的位置:首页 > 其它

在Windows中使用Cygwin安装HBase

2012-07-17 23:45 253 查看
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工具已经安装完成,并运行良好。用户可以在系统中存储大规模的数据,并进行海量数据处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: