
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2019-10-18
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/spacelab/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />


		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



	</head>

	<body class="page-cygwin project-hbase" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache HBase Project <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="index.html" title="Overview">Overview</a></li>
									<li ><a href="license.html" title="License">License</a></li>
									<li ><a href="http://www.apache.org/dyn/closer.cgi/hbase/" title="Downloads" class="externalLink">Downloads</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/HBASE?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel" title="Release Notes" class="externalLink">Release Notes</a></li>
									<li ><a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li>
									<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="source-repository.html" title="Source Repository">Source Repository</a></li>
									<li ><a href="https://reviews.apache.org" title="ReviewBoard" class="externalLink">ReviewBoard</a></li>
									<li ><a href="team-list.html" title="Team">Team</a></li>
									<li ><a href="sponsors.html" title="Thanks">Thanks</a></li>
									<li ><a href="http://blogs.apache.org/hbase/" title="Blog" class="externalLink">Blog</a></li>
									<li ><a href="resources.html" title="Other resources">Other resources</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="book.html" title="Reference Guide" target="_blank">Reference Guide</a></li>
									<li ><a href="apache_hbase_reference_guide.pdf" title="Reference Guide (PDF)" target="_blank">Reference Guide (PDF)</a></li>
									<li ><a href="book.html#quickstart" title="Getting Started" target="_blank">Getting Started</a></li>
									<li ><a href="apidocs/index.html" title="User API" target="_blank">User API</a></li>
									<li ><a href="devapidocs/index.html" title="Developer API" target="_blank">Developer API</a></li>
									<li ><a href="xref/index.html" title="X-Ref">X-Ref</a></li>
									<li ><a href="http://abloz.com/hbase/book.html" title="中文参考指南(单页)" target="_blank" class="externalLink">中文参考指南(单页)</a></li>
									<li ><a href="book.html#faq" title="FAQ" target="_blank">FAQ</a></li>
									<li ><a href="book.html#other.info" title="Videos/Presentations" target="_blank">Videos/Presentations</a></li>
									<li ><a href="http://wiki.apache.org/hadoop/Hbase" title="Wiki" target="_blank" class="externalLink">Wiki</a></li>
									<li ><a href="acid-semantics.html" title="ACID Semantics" target="_blank">ACID Semantics</a></li>
									<li ><a href="book.html#arch.bulk.load" title="Bulk Loads" target="_blank">Bulk Loads</a></li>
									<li ><a href="metrics.html" title="Metrics" target="_blank">Metrics</a></li>
									<li class="active"><a href="" title="HBase on Windows" target="_blank">HBase on Windows</a></li>
									<li ><a href="replication.html" title="Cluster replication" target="_blank">Cluster replication</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">0.94 Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="0.94/apidocs/index.html" title="API" target="_blank">API</a></li>
									<li ><a href="0.94/xref/index.html" title="X-Ref" target="_blank">X-Ref</a></li>
									<li ><a href="0.94/book.html" title="Ref Guide (single-page)" target="_blank">Ref Guide (single-page)</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org/foundation/" title="Apache Software Foundation" target="_blank" class="externalLink">Apache Software Foundation</a></li>
									<li ><a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works" target="_blank" class="externalLink">How Apache Works</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache" target="_blank" class="externalLink">Sponsoring Apache</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="http://hbase.apache.org/" id="bannerLeft"><img src="images/hbase_logo.png" alt='"'Apache HBase'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://hbasecon.com/" id="bannerRight"><img src="images/hbasecon2015.30percent.png" alt='"'Apache HBase Orca'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="projectVersion version-date">Version: 1.4.11</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2019-10-18</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License. --> 
<div class="section"> 
 <div class="page-header">
  <h2 id="Introduction">Introduction</h2>
 </div> 
 <p><a class="externalLink" href="http://hbase.apache.org" target="_blank" title="HBase project">Apache HBase (TM)</a> is a distributed, column-oriented store, modeled after Google's <a class="externalLink" href="http://research.google.com/archive/bigtable.html" target="_blank" title="Google's BigTable">BigTable</a>. Apache HBase is built on top of <a class="externalLink" href="http://hadoop.apache.org" title="Hadoop project">Hadoop</a> for its <a class="externalLink" href="http://hadoop.apache.org/mapreduce" target="_blank" title="Hadoop MapReduce project">MapReduce </a>and <a class="externalLink" href="http://hadoop.apache.org/hdfs" title="Hadoop DFS project">distributed file system</a> implementation. All these projects are open-source and part of the <a class="externalLink" href="http://www.apache.org/" target="_blank" title="The Apache Software Foundation">Apache Software Foundation</a>.</p> 
 <p style="text-align: justify; ">As being distributed, large scale platforms, the Hadoop and HBase projects mainly focus on <i><b>*nix</b></i><b> environments</b> for production installations. However, being developed in <b>Java</b>, both projects are fully <b>portable</b> across platforms and, hence, also to the <b>Windows operating system</b>. For ease of development the projects rely on <a class="externalLink" href="http://www.cygwin.com/" target="_blank" title="Cygwin site">Cygwin</a> to have a *nix-like environment on Windows to run the shell scripts.</p> 
</div> 
<div class="section"> 
 <h2 id="Purpose">Purpose</h2> 
 <p style="text-align: justify; ">This document explains the <b>intricacies of running Apache HBase on Windows using Cygwin</b> as an all-in-one single-node installation for testing and development. The HBase <a class="externalLink" href="http://hbase.apache.org/apidocs/overview-summary.html#overview_description" target="_blank" title="HBase Overview">Overview</a> and <a class="externalLink" href="http://hbase.apache.org/book/quickstart.html" target="_blank" title="HBase QuickStart">QuickStart</a> guides on the other hand go a long way in explaning how to setup <a class="externalLink" href="http://hadoop.apache.org/hbase" target="_blank" title="HBase project">HBase</a> in more complex deployment scenario's.</p> 
</div> 
<div class="section"> 
 <h2 id="Installation">Installation</h2> 
 <p style="text-align: justify; ">For running Apache HBase on Windows, 3 technologies are required: <b>Java, Cygwin and SSH</b>. The following paragraphs detail the installation of each of the aforementioned technologies.</p> 
 <div class="section"> 
  <h2 id="Java">Java</h2> 
  <p style="text-align: justify; ">HBase depends on the <a class="externalLink" href="http://java.sun.com/javase/6/" target="_blank" title="Java Platform, Standard Edition, 6 Release">Java Platform, Standard Edition, 6 Release</a>. So the target system has to be provided with at least the Java Runtime Environment (JRE); however if the system will also be used for development, the Jave Development Kit (JDK) is preferred. You can download the latest versions for both from <a class="externalLink" href="http://java.sun.com/javase/downloads/index.jsp" target="_blank" title="Java SE Downloads">Sun's download page</a>. Installation is a simple GUI wizard that guides you through the process.</p> 
 </div> 
 <div class="section"> 
  <h2 id="Cygwin">Cygwin</h2> 
  <p style="text-align: justify; ">Cygwin is probably the oddest technology in this solution stack. It provides a dynamic link library that emulates most of a *nix environment on Windows. On top of that a whole bunch of the most common *nix tools are supplied. Combined, the DLL with the tools form a very *nix-alike environment on Windows.</p> 
  <p style="text-align: justify; ">For installation, Cygwin provides the <a class="externalLink" href="http://cygwin.com/setup.exe" target="_blank" title="Cygwin Setup Utility"><b><tt>setup.exe</tt> utility</b></a> that tracks the versions of all installed components on the target system and provides the mechanism for <b>installing</b> or <b>updating </b>everything from the mirror sites of Cygwin.</p> 
  <p style="text-align: justify; ">To support installation, the <tt>setup.exe</tt> utility uses 2 directories on the target system. The <b>Root</b> directory for Cygwin (defaults to <tt>C:\cygwin)</tt> which will become <tt>/</tt> within the eventual Cygwin installation; and the <b>Local Package </b>directory (e.g. <tt>C:\cygsetup</tt> that is the cache where <tt>setup.exe</tt> stores the packages before they are installed. The cache must not be the same folder as the Cygwin root.</p> 
  <p style="text-align: justify; ">Perform following steps to install Cygwin, which are elaboratly detailed in the <a class="externalLink" href="http://cygwin.com/cygwin-ug-net/setup-net.html" target="_self" title="Setting Up Cygwin">2nd chapter</a> of the <a class="externalLink" href="http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html" target="_blank" title="Cygwin User's Guide">Cygwin User's Guide</a>:</p> 
  <ol style="list-style-type: decimal"> 
   <li>Make sure you have <tt>Administrator</tt> privileges on the target system.</li> 
   <li>Choose and create you <b>Root</b> and <b>Local Package</b> directories. A good suggestion is to use <tt>C:\cygwin\root</tt> and <tt>C:\cygwin\setup</tt> folders.</li> 
   <li>Download the <tt>setup.exe</tt> utility and save it to the <b>Local Package</b> directory.</li> 
   <li>Run the <tt>setup.exe</tt> utility, 
    <ol style="list-style-type: decimal"> 
     <li>Choose the <tt>Install from Internet</tt> option,</li> 
     <li>Choose your <b>Root</b> and <b>Local Package</b> folders</li> 
     <li>and select an appropriate mirror.</li> 
     <li>Don't select any additional packages yet, as we only want to install Cygwin for now.</li> 
     <li>Wait for download and install</li> 
     <li>Finish the installation</li> 
    </ol> </li> 
   <li>Optionally, you can now also add a shortcut to your Start menu pointing to the <tt>setup.exe</tt> utility in the <b>Local Package </b>folder.</li> 
   <li>Add <tt>CYGWIN_HOME</tt> system-wide environment variable that points to your <b>Root </b>directory.</li> 
   <li>Add <tt>%CYGWIN_HOME%\bin</tt> to the end of your <tt>PATH</tt> environment variable.</li> 
   <li>Reboot the sytem after making changes to the environment variables otherwise the OS will not be able to find the Cygwin utilities.</li> 
   <li>Test your installation by running your freshly created shortcuts or the <tt>Cygwin.bat</tt> command in the <b>Root</b> folder. You should end up in a terminal window that is running a <a class="externalLink" href="http://www.gnu.org/software/bash/manual/bashref.html" target="_blank" title="Bash Reference Manual">Bash shell</a>. Test the shell by issuing following commands: 
    <ol style="list-style-type: decimal"> 
     <li><tt>cd /</tt> should take you to thr <b>Root</b> directory in Cygwin;</li> 
     <li>the <tt>LS</tt> commands that should list all files and folders in the current directory.</li> 
     <li>Use the <tt>exit</tt> command to end the terminal.</li> 
    </ol> </li> 
   <li>When needed, to <b>uninstall</b> Cygwin you can simply delete the <b>Root</b> and <b>Local Package</b> directory, and the <b>shortcuts</b> that were created during installation.</li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="SSH">SSH</h2> 
  <p style="text-align: justify; ">HBase (and Hadoop) rely on <a class="externalLink" href="http://nl.wikipedia.org/wiki/Secure_Shell" target="_blank" title="Secure Shell"><b>SSH</b></a> for interprocess/-node <b>communication</b> and launching<b> remote commands</b>. SSH will be provisioned on the target system via Cygwin, which supports running Cygwin programs as <b>Windows services</b>!</p> 
  <ol style="list-style-type: decimal"> 
   <li>Rerun the <tt><b>setup.exe</b></tt><b> utility</b>.</li> 
   <li>Leave all parameters as is, skipping through the wizard using the <tt>Next</tt> button until the <tt>Select Packages</tt> panel is shown.</li> 
   <li>Maximize the window and click the <tt>View</tt> button to toggle to the list view, which is ordered alfabetically on <tt>Package</tt>, making it easier to find the packages we'll need.</li> 
   <li>Select the following packages by clicking the status word (normally <tt>Skip</tt>) so it's marked for installation. Use the <tt>Next </tt>button to download and install the packages. 
    <ol style="list-style-type: decimal"> 
     <li>OpenSSH</li> 
     <li>tcp_wrappers</li> 
     <li>diffutils</li> 
     <li>zlib</li> 
    </ol> </li> 
   <li>Wait for the install to complete and finish the installation.</li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="HBase">HBase</h2> 
  <p style="text-align: justify; ">Download the <b>latest release </b>of Apache HBase from the <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/hbase/" target="_blank" title="HBase Releases">website</a>. As the Apache HBase distributable is just a zipped archive, installation is as simple as unpacking the archive so it ends up in its final <b>installation</b> directory. Notice that HBase has to be installed in Cygwin and a good directory suggestion is to use <tt>/usr/local/</tt> (or [<tt><b>Root</b> directory]\usr\local</tt> in Windows slang). You should end up with a <tt>/usr/local/hbase-<i>&lt;version&gt;</i></tt> installation in Cygwin.</p> This finishes installation. We go on with the configuration. 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Configuration">Configuration</h2> 
 <p style="text-align: justify; ">There are 3 parts left to configure: <b>Java, SSH and HBase</b> itself. Following paragraphs explain eacht topic in detail.</p> 
 <div class="section"> 
  <h2 id="Java">Java</h2> 
  <p style="text-align: justify; ">One important thing to remember in shell scripting in general (i.e. *nix and Windows) is that managing, manipulating and assembling path names that contains spaces can be very hard, due to the need to escape and quote those characters and strings. So we try to stay away from spaces in path names. *nix environments can help us out here very easily by using <b>symbolic links</b>.</p> 
  <ol style="list-style-type: decimal"> 
   <li style="text-align: justify; ">Create a link in <tt>/usr/local</tt> to the Java home directory by using the following command and substituting the name of your chosen Java environment: 
    <div> 
     <pre>LN -s /cygdrive/c/Program\ Files/Java/<i>&lt;jre name&gt; </i>/usr/local/<i>&lt;jre name&gt;</i></pre> 
    </div> </li> 
   <li>Test your java installation by changing directories to your Java folder <tt>CD /usr/local/<i>&lt;jre name&gt;</i></tt> and issueing the command <tt>./bin/java -version</tt>. This should output your version of the chosen JRE.</li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="null"></h2> 
  <p style="text-align: justify; ">Configuring <b>SSH </b>is quite elaborate, but primarily a question of launching it by default as a<b> Windows service</b>.</p> 
  <ol style="list-style-type: decimal"> 
   <li style="text-align: justify; ">On Windows Vista and above make sure you run the Cygwin shell with <b>elevated privileges</b>, by right-clicking on the shortcut an using <tt>Run as Administrator</tt>.</li> 
   <li style="text-align: justify; ">First of all, we have to make sure the <b>rights on some crucial files</b> are correct. Use the commands underneath. You can verify all rights by using the <tt>LS -L</tt> command on the different files. Also, notice the auto-completion feature in the shell using <tt>&lt;TAB&gt;</tt> is extremely handy in these situations. 
    <ol style="list-style-type: decimal"> 
     <li><tt>chmod +r /etc/passwd</tt> to make the passwords file readable for all</li> 
     <li><tt>chmod u+w /etc/passwd</tt> to make the passwords file writable for the owner</li> 
     <li><tt>chmod +r /etc/group</tt> to make the groups file readable for all</li> 
    </ol> 
    <ol style="list-style-type: decimal"> 
     <li><tt>chmod u+w /etc/group</tt> to make the groups file writable for the owner</li> 
    </ol> 
    <ol style="list-style-type: decimal"> 
     <li><tt>chmod 755 /var</tt> to make the var folder writable to owner and readable and executable to all</li> 
    </ol> </li> 
   <li>Edit the <b>/etc/hosts.allow</b> file using your favorite editor (why not VI in the shell!) and make sure the following two lines are in there before the <tt>PARANOID</tt> line: 
    <ol style="list-style-type: decimal"> 
     <li><tt>ALL : localhost 127.0.0.1/32 : allow</tt></li> 
     <li><tt>ALL : [::1]/128 : allow</tt></li> 
    </ol> </li> 
   <li>Next we have to <b>configure SSH</b> by using the script <tt>ssh-host-config</tt> 
    <ol style="list-style-type: decimal"> 
     <li>If this script asks to overwrite an existing <tt>/etc/ssh_config</tt>, answer <tt>yes</tt>.</li> 
     <li>If this script asks to overwrite an existing <tt>/etc/sshd_config</tt>, answer <tt>yes</tt>.</li> 
     <li>If this script asks to use privilege separation, answer <tt>yes</tt>.</li> 
     <li>If this script asks to install <tt>sshd</tt> as a service, answer <tt>yes</tt>. Make sure you started your shell as Adminstrator!</li> 
     <li>If this script asks for the CYGWIN value, just <tt>&lt;enter&gt;</tt> as the default is <tt>ntsec</tt>.</li> 
     <li>If this script asks to create the <tt>sshd</tt> account, answer <tt>yes</tt>.</li> 
     <li>If this script asks to use a different user name as service account, answer <tt>no</tt> as the default will suffice.</li> 
     <li>If this script asks to create the <tt>cyg_server</tt> account, answer <tt>yes</tt>. Enter a password for the account.</li> 
    </ol> </li> 
   <li><b>Start the SSH service</b> using <tt>net start sshd</tt> or <tt>cygrunsrv --start sshd</tt>. Notice that <tt>cygrunsrv</tt> is the utility that make the process run as a Windows service. Confirm that you see a message stating that <tt>the CYGWIN sshd service was started succesfully.</tt></li> 
   <li>Harmonize Windows and Cygwin<b> user account</b> by using the commands: 
    <ol style="list-style-type: decimal"> 
     <li><tt>mkpasswd -cl &gt; /etc/passwd</tt></li> 
     <li><tt>mkgroup --local &gt; /etc/group</tt></li> 
    </ol> </li> 
   <li><b>Test </b>the installation of SSH: 
    <ol style="list-style-type: decimal"> 
     <li>Open a new Cygwin terminal</li> 
     <li>Use the command <tt>whoami</tt> to verify your userID</li> 
     <li>Issue an <tt>ssh localhost</tt> to connect to the system itself 
      <ol style="list-style-type: decimal"> 
       <li>Answer <tt>yes</tt> when presented with the server's fingerprint</li> 
       <li>Issue your password when prompted</li> 
       <li>test a few commands in the remote session</li> 
       <li>The <tt>exit</tt> command should take you back to your first shell in Cygwin</li> 
      </ol> </li> 
     <li><tt>Exit</tt> should terminate the Cygwin shell.</li> 
    </ol> </li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h2 id="HBase">HBase</h2> If all previous configurations are working properly, we just need some tinkering at the 
  <b>HBase config</b> files to properly resolve on Windows/Cygwin. All files and paths referenced here start from the HBase 
  <tt>[<b>installation</b> directory]</tt> as working directory. 
  <ol style="list-style-type: decimal"> 
   <li>HBase uses the <tt>./conf/<b>hbase-env.sh</b></tt> to configure its dependencies on the runtime environment. Copy and uncomment following lines just underneath their original, change them to fit your environemnt. They should read something like: 
    <ol style="list-style-type: decimal"> 
     <li><tt>export JAVA_HOME=/usr/local/<i>&lt;jre name&gt;</i></tt></li> 
     <li><tt>export HBASE_IDENT_STRING=$HOSTNAME</tt> as this most likely does not inlcude spaces.</li> 
    </ol> </li> 
   <li>HBase uses the ./conf/<tt><b>hbase-default.xml</b></tt> file for configuration. Some properties do not resolve to existing directories because the JVM runs on Windows. This is the major issue to keep in mind when working with Cygwin: within the shell all paths are *nix-alike, hence relative to the root <tt>/</tt>. However, every parameter that is to be consumed within the windows processes themself, need to be Windows settings, hence <tt>C:\</tt>-alike. Change following propeties in the configuration file, adjusting paths where necessary to conform with your own installation: 
    <ol style="list-style-type: decimal"> 
     <li><tt>hbase.rootdir</tt> must read e.g. <tt>file:///C:/cygwin/root/tmp/hbase/data</tt></li> 
     <li><tt>hbase.tmp.dir</tt> must read <tt>C:/cygwin/root/tmp/hbase/tmp</tt></li> 
     <li><tt>hbase.zookeeper.quorum</tt> must read <tt>127.0.0.1</tt> because for some reason <tt>localhost</tt> doesn't seem to resolve properly on Cygwin.</li> 
    </ol> </li> 
   <li>Make sure the configured <tt>hbase.rootdir</tt> and <tt>hbase.tmp.dir</tt> <b>directories exist</b> and have the proper<b> rights</b> set up e.g. by issuing a <tt>chmod 777</tt> on them.</li> 
  </ol> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="null"></h2> 
 <p> This should conclude the installation and configuration of Apache HBase on Windows using Cygwin. So it's time <b>to test it</b>. </p> 
 <ol style="list-style-type: decimal"> 
  <li>Start a Cygwin<b> terminal</b>, if you haven't already.</li> 
  <li>Change directory to HBase <b>installation</b> using <tt>CD /usr/local/hbase-<i>&lt;version&gt;</i></tt>, preferably using auto-completion.</li> 
  <li><b>Start HBase</b> using the command <tt>./bin/start-hbase.sh</tt> 
   <ol style="list-style-type: decimal"> 
    <li>When prompted to accept the SSH fingerprint, answer <tt>yes</tt>.</li> 
    <li>When prompted, provide your password. Maybe multiple times.</li> 
    <li>When the command completes, the HBase server should have started.</li> 
    <li>However, to be absolutely certain, check the logs in the <tt>./logs</tt> directory for any exceptions.</li> 
   </ol> </li> 
  <li>Next we <b>start the HBase shell</b> using the command <tt>./bin/hbase shell</tt></li> 
  <li>We run some simple <b>test commands</b> 
   <ol style="list-style-type: decimal"> 
    <li>Create a simple table using command <tt>create 'test', 'data'</tt></li> 
    <li>Verify the table exists using the command <tt>list</tt></li> 
    <li>Insert data into the table using e.g. 
     <div> 
      <pre>put 'test', 'row1', 'data:1', 'value1'
put 'test', 'row2', 'data:2', 'value2'
put 'test', 'row3', 'data:3', 'value3'</pre> 
     </div> </li> 
    <li>List all rows in the table using the command <tt>scan 'test'</tt> that should list all the rows previously inserted. Notice how 3 new columns where added without changing the schema!</li> 
    <li>Finally we get rid of the table by issuing <tt>disable 'test'</tt> followed by <tt>drop 'test'</tt> and verified by <tt>list</tt> which should give an empty listing.</li> 
   </ol> </li> 
  <li><b>Leave the shell</b> by <tt>exit</tt></li> 
  <li>To <b>stop the HBase server</b> issue the <tt>./bin/stop-hbase.sh</tt> command. And wait for it to complete!!! Killing the process might corrupt your data on disk.</li> 
  <li>In case of <b>problems</b>, 
   <ol style="list-style-type: decimal"> 
    <li>verify the HBase logs in the <tt>./logs</tt> directory.</li> 
    <li>Try to fix the problem</li> 
    <li>Get help on the forums or IRC (<tt>#hbase@freenode.net</tt>). People are very active and keen to help out!</li> 
    <li>Stopr, restart and retest the server.</li> 
   </ol> </li> 
 </ol> 
</div> 
<div class="section"> 
 <h2 id="Conclusion">Conclusion</h2> 
 <p> Now your <b>HBase </b>server is running, <b>start coding</b> and build that next killer app on this particular, but scalable datastore! </p> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Apache HBase Project</li>
						<li >
							<a href="index.html" title="Overview">Overview</a>
						</li>
						<li >
							<a href="license.html" title="License">License</a>
						</li>
						<li >
							<a href="http://www.apache.org/dyn/closer.cgi/hbase/" title="Downloads" class="externalLink">Downloads</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/HBASE?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel" title="Release Notes" class="externalLink">Release Notes</a>
						</li>
						<li >
							<a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
						</li>
						<li >
							<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="source-repository.html" title="Source Repository">Source Repository</a>
						</li>
						<li >
							<a href="https://reviews.apache.org" title="ReviewBoard" class="externalLink">ReviewBoard</a>
						</li>
						<li >
							<a href="team-list.html" title="Team">Team</a>
						</li>
						<li >
							<a href="sponsors.html" title="Thanks">Thanks</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/hbase/" title="Blog" class="externalLink">Blog</a>
						</li>
						<li >
							<a href="resources.html" title="Other resources">Other resources</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Documentation</li>
						<li >
							<a href="book.html" title="Reference Guide" target="_blank">Reference Guide</a>
						</li>
						<li >
							<a href="apache_hbase_reference_guide.pdf" title="Reference Guide (PDF)" target="_blank">Reference Guide (PDF)</a>
						</li>
						<li >
							<a href="book.html#quickstart" title="Getting Started" target="_blank">Getting Started</a>
						</li>
						<li >
							<a href="apidocs/index.html" title="User API" target="_blank">User API</a>
						</li>
						<li >
							<a href="devapidocs/index.html" title="Developer API" target="_blank">Developer API</a>
						</li>
						<li >
							<a href="xref/index.html" title="X-Ref">X-Ref</a>
						</li>
						<li >
							<a href="http://abloz.com/hbase/book.html" title="中文参考指南(单页)" target="_blank" class="externalLink">中文参考指南(单页)</a>
						</li>
						<li >
							<a href="book.html#faq" title="FAQ" target="_blank">FAQ</a>
						</li>
						<li >
							<a href="book.html#other.info" title="Videos/Presentations" target="_blank">Videos/Presentations</a>
						</li>
						<li >
							<a href="http://wiki.apache.org/hadoop/Hbase" title="Wiki" target="_blank" class="externalLink">Wiki</a>
						</li>
						<li >
							<a href="acid-semantics.html" title="ACID Semantics" target="_blank">ACID Semantics</a>
						</li>
						<li >
							<a href="book.html#arch.bulk.load" title="Bulk Loads" target="_blank">Bulk Loads</a>
						</li>
						<li >
							<a href="metrics.html" title="Metrics" target="_blank">Metrics</a>
						</li>
						<li class="active">
							<a href="#" title="HBase on Windows" target="_blank">HBase on Windows</a>
						</li>
						<li >
							<a href="replication.html" title="Cluster replication" target="_blank">Cluster replication</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">0.94 Documentation</li>
						<li >
							<a href="0.94/apidocs/index.html" title="API" target="_blank">API</a>
						</li>
						<li >
							<a href="0.94/xref/index.html" title="X-Ref" target="_blank">X-Ref</a>
						</li>
						<li >
							<a href="0.94/book.html" title="Ref Guide (single-page)" target="_blank">Ref Guide (single-page)</a>
						</li>
						<li class="nav-header">ASF</li>
						<li >
							<a href="http://www.apache.org/foundation/" title="Apache Software Foundation" target="_blank" class="externalLink">Apache Software Foundation</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works" target="_blank" class="externalLink">How Apache Works</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache" target="_blank" class="externalLink">Sponsoring Apache</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2007-2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
