zoukankan      html  css  js  c++  java
  • hbase0.96.0单机模式安装(win7 无需cygwin)

     

        之前折腾了几天,想让hbase的单机模式在cygwin上跑起来,都不成功。正当我气馁之时,我无意中发现hbase0.96.0的bin和conf目录下有一些扩展名为cmd的文件。这难道是给windows用的?难道现在hbase可以直接在windows上运行了?抱着这样的想法,我尝试了不用cygwin的方法运行hbase,还真成功了。特此记录下来,给需要的人做一个参考。 

    1. 环境: 
    Win7 64bit 
    JDK1.6.0_43 64bit 
    hbase-0.96.0-hadoop1 

    没错,不需要cygwin。 
    比较新的hbase版本已经原生支持windows了,至少支持单机模式了。 

    2. 下载 

    我下载的是hbase-0.96.0-hadoop1-bin.tar.gz并解压 

    3.配置conf/hbase-site.xml 
    Xml代码  收藏代码
    1. <configuration>  
    2.     <property>  
    3.         <name>hbase.rootdir</name>  
    4.         <value>file:///C:/cygwin64/tmp/hbase/root</value>  
    5.     </property>  
    6.     <property>  
    7.         <name>hbase.tmp.dir</name>  
    8.         <value>C:/cygwin64/tmp/hbase/tmp</value>  
    9.     </property>  
    10.     <property>  
    11.         <name>hbase.zookeeper.quorum</name>  
    12.         <value>127.0.0.1</value>  
    13.     </property>  
    14.     <property>  
    15.         <name>hbase.zookeeper.property.dataDir</name>  
    16.         <value>C:/cygwin64/tmp/hbase/zoo</value>  
    17.     </property>  
    18.     <property>  
    19.         <name>hbase.cluster.distributed</name>  
    20.         <value>false</value>  
    21.     </property>  
    22. </configuration>  


    配置文件里提到的3个目录也无需手工创建,第一次会自动创建。 

    4. 直接到windows cmd命令行下就可以了,启动hbase单机模式 
    Text代码  收藏代码
    1. start-hbase.cmd  


    5. 测试 hbase shell 

    D:opensourcehadoophbase-0.96.0-hadoop1in>hbase shell 
    HBase Shell; enter 'help<RETURN>' for list of supported commands. 
    Type "exit<RETURN>" to leave the HBase Shell 
    Version 0.96.0-hadoop1, r1531434, Fri Oct 11 15:11:29 PDT 2013 

    hbase(main):001:0> create 'mytable', 'data' 
    0 row(s) in 1.1420 seconds 

    => Hbase::Table - mytable 
    hbase(main):002:0> put 'mytable', 'row1', 'data:1', 'value1' 
    0 row(s) in 0.0580 seconds 

    hbase(main):003:0> put 'mytable', 'row2', 'data:2', 'value2' 
    0 row(s) in 0.0090 seconds 

    hbase(main):004:0> put 'mytable', 'row3', 'data:3', 'value3' 
    0 row(s) in 0.0080 seconds 

    hbase(main):005:0> list 
    TABLE 

    mytable 

    1 row(s) in 0.0200 seconds 

    => ["mytable"] 
    hbase(main):006:0> scan 'mytable' 
    ROW                   COLUMN+CELL 

    row1                 column=data:1, timestamp=1416554699558, value=value1 

    row2                 column=data:2, timestamp=1416554715456, value=value2 

    row3                 column=data:3, timestamp=1416554730255, value=value3 

    3 row(s) in 0.0520 seconds 

    hbase(main):009:0> exit 


    测试下来一切OK,非常完美。不需要cygwin。这也算hbase给我的一个惊喜吧。 

    6. 补充:另一种在cygwin下运行的办法 
    之后无意中又尝试了在cygwin下运行,忘了开启sshd,反而成功了。 
    My God!开了sshd反而出错??! 
    测试版本同样是hbase-0.96.0-hadoop1 

    OK,唯一的重点就是记得关闭sshd。 

    然后hbase-env.sh是肯定要改的 
    Java代码  收藏代码
    1. export JAVA_HOME=/cygdrive/c/jdk1.7.0_67  
    2. export HBASE_CLASSPATH=/cygdrive/d/opensource/hadoop/hbase-0.96.0-hadoop1/lib/zookeeper-3.4.5.jar  
    3. export HBASE_MANAGES_ZK=true  


    然后启动hbase,启动之前为避免有干扰清空log和tmp目录。 
    启动时出现连不到22端口的错,而且运行很慢,但是不要慌张,请继续。 
    $ ./bin/start-hbase.sh 
    127.0.0.1: ssh: connect to host 127.0.0.1 port 22: Connection refused 
    starting master, logging to /cygdrive/d/opensource/hadoop/hbase-0.96.0-hadoop1/bin/../logs/hbase-pchen4-master-W-SHDC-PCHEN4.out 
    localhost: ssh: connect to host localhost port 22: Connection refused 


    下面测试shell 
    这里会出现没有提示符的问题,而且第一个命令输入后要等很长时间才有反应。是的,不要慌张,不要以为死了,我机器上等待了大概2,3分钟(见下面的红字)后,奇迹出现了。后面的命令都正常了。 

    $ ./bin/hbase shell 
    HBase Shell; enter 'help<RETURN>' for list of supported commands. 
    Type "exit<RETURN>" to leave the HBase Shell 
    Version 0.96.0-hadoop1, r1531434, Fri Oct 11 15:11:29 PDT 2013 

    list 
    list 
    TABLE 
    0 row(s) in 154.4250 seconds 

    [] 
    create 'mytable', 'data' 
    create 'mytable', 'data' 
    0 row(s) in 0.3510 seconds 

    Hbase::Table - mytable 
    list 
    list 
    TABLE 
    mytable 
    1 row(s) in 0.0150 seconds 

    ["mytable"] 
    scan 'mytable' 
    scan 'mytable' 
    ROW  COLUMN+CELL 
    0 row(s) in 0.0280 seconds 

    这种方法虽然侥幸成功,但是因为速度太慢了,所以我想也没人会这样用吧。 
    哎,好吧。这个hbase太折腾人了,不想找麻烦的话,还是用linux吧。就这样吧。。。 
  • 相关阅读:
    内部类
    this关键字
    封装
    构造方法
    类图
    StringBuffer
    String
    导包
    包名规范
    带参数的方法
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/4917844.html
Copyright © 2011-2022 走看看