1. Introduction
HBase is the official Hadoop subproject, which is a distributed database for the column, it is not stored on the relational data structure, but rather loose distributed, persistent multidimensional sorted and indexed according to the map type, the source of their ideological on Google's BigTable papers. (Google BigTable the paper: http://labs.google.com/papers/bigtable-osdi06.pdf)
As HBase is a distributed, large-scale platform, the main installed in the Unix-platforms. However, due to its development language is Java, so it also has a cross-platform features, the same can also be installed on the Windows operating system. For convenience, use Cygwin with Unix-features to install HBase.

2. The purpose of this paper, described in pseudo-distributed model (Pseudo-distributed mode), under the Windows operating system to use Cygwin to install, run and test HBase project. For true distributed cluster configuration, you can refer to this as well as HBase Project Officer Network (http://hadoop.apache.org/hbase/) in explain.

3. Installation and Configuration Software Version:
 JDK 1.6 (or later)
 Cygwin 2.5
 Hadoop 0.20.x
 HBase 0.20.x
3.1 Java, Cygwin, SSH
Here are three software installation process, you can refer to "Hadoop developer" magazine first issue "in Windows to install Hadoop tutorial" will not go into.
3.2 Hadoop
Similarly, Hadoop installation also can refer to the "Hadoop developer" magazine first issue "in Windows to install Hadoop Tutorial," a text. However, according to the author of the installation process, listing the following note:
1. In the Configure hadoop-env.sh the JAVA_HOME when, Jdk are often installed in C: \ Program Files \ folder, for example: C: \ Program Files \ Java \ jdk1.6.0_01. JAVA_HOME should be configured as follows:
export JAVA_HOME = / cygdrive / c / Progra ~ 1/Java/jdk1.6.0_01
Among them, because Cygwin does not recognize the "Program Files" middle of the space, if not in accordance with the above settings, the system can not find Jdk installation directory.
Of course, you can also Cygwin's / usr / local directory to add a link to allow easy configuration JAVA_HOME. For example:
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. In the core-site.xml configuration file, the property "fs.default.name" the value "Hadoop developer" magazine first issue "in Windows to install Hadoop Tutorial," a text value consistent set to: "hdfs: / / localhost: 8888 ". Similarly, the configuration file mapred-site.xml in the "mapred.job.tracker" attribute value is set to: "localhost: 9999".
3. In the Hadoop Distributed File System to create two directories hbase and tmp, these two directories will be installed in the following HBase used in the course, in the Shell, enter the command as follows:
bin / hadoop dfs-mkdir hbase tmp
Hadoop's distributed file system, and tmp will be added to hbase two directories, as shown below:

In Windows, use Cygwin installation HBase

3.3 HBase
Suppose HBASE_HOME for HBase installation directory.
1. In the $ HBASE_HOME / conf / hbase-env.sh to add the following two environment variables:
export JAVA_HOME = / cygdrive / c / Progra ~ 1/Java/jdk1.6.0_01
export HBASE_IDENT_STRING = localhost
One, JAVA_HOME set reference to the above description.
2. Will be $ HBASE_HOME / conf / hbase-default.xml in all content, copy to $ HBASE_HOME / conf / hbase-site.xml file.
3. Changes hbase-site.xml configuration file "hbase.rootdir" property, as well as the "hbase.tmp.dir" attribute, as follows:
<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.
Eg: 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>
... ....
Note that this set is two directories above the Hadoop distributed file system created two directories, in addition, the port number is also consistent with the previous set as follows: "8888."
4. Changes hbase-site.xml configuration file "hbase.zookeeper.quorum" attribute value of "127.0.0.1", in Cygwin in, "localhost" is sometimes not correctly identified. Are as follows:
<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. Test the following test systems are installed correctly.
1. Open the Cygwin terminal, do "ssh localhost" command.
2. In the Hadoop installation directory, the implementation of the "bin / start-all.sh" script to start Hadoop.
3. The Hbase installation directory, the implementation of the "bin / start-hbase.sh" script to start HBase.
4. The Hbase installation directory, the implementation of the "bin / hbase shell" command, into the Shell command mode.
5. In the Shell, enter "create 'test', 'data'", the implementation of the results by typing "list" command to view it. As shown below:



6. , Respectively, in the Shell type "put 'test', 'row1', 'data: 1', 'value1'", "put 'test', 'row2', 'data: 2', 'value2'", "put ' test ',' row3 ',' data: 3 ',' value3 ' "three command to create three records.
7. Enter "scan 'test'" command, through the implementation of the results to test the implementation of the above three commands. As shown below.



5. Sum up this point, HBase in the Windows operating system to use Cygwin tool has been installed and running well. Users can store a large scale in the system data and for massive data processing.