Hello Xiaochun, Below are the notes that I took when I was trying to install HBase in a Windows environment using Cygwin. These notes are from approximately May of 2015, so I have no idea how well they apply to any current attempt to install HBase in this kind of environment. Also, I'm afraid that I can't provide any clarification on anything in the notes below, since I have only the vaguest memories of having performed the steps outlined. Importantly, also note that I attempted this install BEFORE completing the rather-straightforward installation of HBase in Ubuntu, so some of my steps below may have been blatantly wrong in the context of ANY attempted installation of HBase.
I simply offer these unedited notes to you "as is" in case there's anything here that might help you. Again, good luck!! Dan =================== *HBase with cygwin installation notes* Decided to try to install HBase using the instructions on the project site itself (although even this resource may not be up-to-date): https://hbase.apache.org/cygwin.html In parallel, I also consulted the webpage on the O’Reilly site with instructions for installing Hadoop: http://archive.oreilly.com/pub/a/other-programming/excerpts/hadoop-tdg/installing-apache-hadoop.html Downloaded cygwin and installed it. The elaborate instructions that state that setting of Windows Environment Variable (CYGWIN_HOME) and PATH variable appear to be extraneous, since Cygwin “just worked” for me after I installed it. The project site install instructions advise you to install the SSH modules of Cygwin; however, the O’Reilly site advises that SSH is not needed in stand-alone mode (since no daemons will be started). So, for now, I skipped SSH installation (although I will need SSH when I get my new full development environment set up in a few days). Rather curiously, the project site install instructions then say that HBase must be “installed in Cygwin”!! (The O’Reilly instructions merely say that it must be somewhere on the machine, but the O’Reilly instructions assume you’re in Unix, so I will go with the project-site instructions and install HBase in a Cygwin subdirectory, as they advise. Ran the “unzip” (tar) facility to unzip the HBase files after I downloaded them from Apache server. Then the “readme” directed me to the “index.html” file in the “docs” folder of the installed files; I went into this and went directly to “Quick start (standalone HBase)”. The quick-start guide said to set JAVA_HOME, which I’ve already done. Then it says to alter hbase-site.xml in the ./conf subdirectory, in order to set the directories to which HBase and ZooKeeper write data. However, it says that if you do NOT do this, then data will be written to a /tmp directory. This is okay with me for now, so will NOT modify hbase-site.xml for now. Ugh -- quite confusing contradictory instructions in the various guides, so now I go back to the “HBase” chapter in the book, which has very simple (perhaps too simple?) instructions. Followed the chapter’s instructions to create HBASE_HOME environment variable, and then issue the command in Cygwin to add HBASE_HOME/bin to path. However, the “export” command does not apparently work in the Cygwin context, so manually added HBASE_HOME/bin in Windows “path” env variable. Subsequently running the start-hbase.sh script (as simple book instructions say to do) results in errors (various basic HBase classes not found) -- apparent classpath issues. SOOO -- better go back to more complex instructions https://hbase.apache.org/cygwin.html -- SPECIFICALLY, need to go back to Cygwin installation and set appropriate env and path variables: CYGWIN_HOME and add CYGWIN_HOME/bin to path. Had a hard time interpreting the following (but finally figured it out): > > > > > *JavaOne 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 symbolic > links.Create a link in /usr/local to the Java home directory by using the > following command and substituting the name of your chosen Java > environment:LN -s /cygdrive/c/Program\ Files/Java/<jre name> > /usr/local/<jre name>Test your java installation by changing directories to > your Java folder CD /usr/local/<jre name> and issueing the command > ./bin/java -version. This should output your version of the chosen JRE.* The left slash after “Program” above is an escape character for the space in “Program Files”!! Major FUBAR: The text says to modify hbase-defaults.xml in the conf/ directory, but the file does not exist. Another source says that hbase-defaults should NOT be modified, but instead hbase-site.xml is the one to be modified. This makes sense; in fact, it makes sense that in the current release of HBase that they TOOK AWAY the defaults.xml, since the user is NOT supposed to edit it anyway. Correct instructions (which have not been applied to the “Windows” instructions) appear to be here: https://hbase.apache.org/book.html ================= Picking up on next day (2015-05-26) -- going back to top of Windows-install instructions and doing all steps. Roadblock: Got to the step for configuration of SSH (even though it seems to not be germane to stand-alone usage): On the bullet point where it says to modify rights-settings on certain files, “passwd” and “group” files DO NOT EXIST!! NOTE that these files DID come into existence after I ran the ssh-host-config script below -- so these steps appear to be out of order!! Shortly after that problem, this ambiguity came up: Instruction sez: Edit the /etc/hosts.allow file using your favorite editor (why not VI in the shell!) and make sure the following two lines are in there before the PARANOID line: ALL : localhost 127.0.0.1/32 : allow ALL : [::1]/128 : allow And my hosts.allow file has the single line: ALL : localhost 127.0.0.1/32 [::1]/128 [::fff:127.0.0.1]/128 : allow I’m gonna presume that this one line covers the need for the two lines in the instructions. Ran the ssh-host-config script, following the vague instructions given. NOTE that cyg_server password is ******** At end of script, message said: To start the [new] service now, call ‘net start sshd’ or ‘cygrunsrv --S sshd’. I suppose that, in this context, “call” simply means -- enter on the command line?? OKAY: ABANDONED NETWORKED MODE -- GOING LOCAL ONLY Will avoid using anything other than local mode on Windows, as it does not appear to be fully supported. (Wait for virtual Ubuntu, after I get new Windows box.) After much searching, found help with missing winutils.exe file. Somebody made them available on GitHub project: http://zutai.blogspot.com/2014/06/build-install-and-run-hadoop-24-240-on.html The “fix” also required making modes to hbase settings script outlined here: http://stackoverflow.com/questions/23136092/hadoophbase-cluster-on-windows-winutils-not-found Now I can start and stop HBase in a Cygwin shell with only this type of error/warning: “cygpath: can’t convert empty path” -- hopefully this is just informational and not deadly; however, it certainly suggests Windows environment is not anywhere near to “robust” for HBase. Now I try to create a table in HBase, and get the following error: ERROR: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master. Looking this up leads me to stackoverflow entry which suggests mismatch between HBase and Hadoop versions!! CANNOT GET PAST ZooKeeper error (same prob in both v0.98 and v1.1). Abandoning this until I can install/run something in Ubuntu. On Tue, Aug 16, 2016 at 10:53 AM, Xiaochun Liang <xiaochun.li...@skype.net> wrote: > Thanks Dan! > > Looks like it is a little bit harder to setup HBase on Windows with > Cygwin. Thanks a lot for your suggestions. Looks like I still need to setup > HBase with Cygwin. Could you please share the problems you met? > > Regards, > xiaochun > > -----Original Message----- > From: Daniel Vimont [mailto:dan...@commonvox.org] > Sent: Monday, August 15, 2016 11:16 AM > To: user@hbase.apache.org > Subject: Re: Fully distributed mode on Windows > > FWIW, I tried quite some time ago to set up HBase on Windows with CygWin > (just to see if I could do it), and I ran into so many problems that I > simply quit trying after a few hours. > > However, I DO use a Windows box to do all of my HBase-contributor work on > (and I do it in the way that Mike has already recommended to you): I do > that by running VirtualBox with an instance of Ubuntu running inside of it, > and then just do straightforward installation of HBase in that virtual > Ubuntu environment. If you must use a Windows box (or multiple Windows > workstations), you might want to consider a setup similar to this to avoid > what I would anticipate to be a mountain of frustrations. > > Good luck! > > Dan > > On Sun, Aug 14, 2016 at 9:21 AM, Xiaochun Liang <xiaochun.li...@skype.net> > wrote: > > > Thanks Mike! Is it possible to setup fully distributed mode of HBase > > on Windows with Cygwin? > > > > Regards, > > xiaochun > > > > -----Original Message----- > > From: Mike Thomsen [mailto:mikerthom...@gmail.com] > > Sent: Saturday, August 13, 2016 8:03 PM > > To: user@hbase.apache.org > > Subject: Re: Fully distributed mode on Windows > > > > You probably shouldn't be using Windows servers for this. For example, > > Cloudera doesn't list any version of Windows at all as a supported OS: > > > > https://na01.safelinks.protection.outlook.com/?url= > > http%3a%2f%2fwww.cloudera.com%2fdocumentation%2fcdh%2f5-0-x% > > 2fCDH5-Requirements-and-Supported-Versions%2fcdhrsv_os.html&data=01%7c > > 01% > > 7cxiliang%40064d.mgd.microsoft.com%7c2935de2adccc4f60232508d3c371ce3f% > > 7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=glqVHjC8sWJTYA% > > 2f2P9nlD63U5sdyQDLqrU%2boMzT%2bN5s%3d > > > > You'd almost certainly be better off setting up a few Linux VMs on > > those servers and running it that way. > > > > On Fri, Aug 12, 2016 at 10:36 PM, Xiaochun Liang > > <xiaochun.li...@skype.net > > > > > wrote: > > > > > Hi, > > > > > > Does Hbase support fully distributed mode on Windows? > > > > > > I am now trying to setup Hbase on Windows servers. I followed the > > > steps in > > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fhba > > > se .apache.org%2fcygwin.html&data=01%7c01%7cxiliang%40064d. > > mgd.microsoft.com%7c2935de2adccc4f60232508d3c371ce3f% > > 7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=wcNiVI9Tvi6v%2b% > > 2fMm3l5d9p9hgS3UXdEmXPBrCxFHI5Q%3d, and can launch a standalone Hbase > > successfully on Windows. Next step I want to setup Hbase on Windows > > servers with distributed mode. However I saw followings in > 'start-hbase.cmd': > > > > > > "if "%distMode%"=="true" ( > > > @echo This is not implemented yet. Stay tuned." > > > > > > I am wondering if distributed mode of Hbase is supported on Windows > > > or > > not. > > > > > > Anyone has experience to setup fully-distributed Hbase on Windows? > > > > > > Regards, > > > xiaochun > > > > > >