当前位置:   article > 正文

Windows安装HBase,本地模式,无需HDFS

Windows安装HBase,本地模式,无需HDFS

在Windows上装hadoop生态组件是一件麻烦事,但是HBase的安装却可以非常简单。目前主流的安装文档都需要装Hadoop,这里介绍一个简单的单机版安装方法,适合用来学习。

1. 下载HBASE,以及Hadoop模拟工具winutils.exe

HBASE地址自己搜索吧。winutils.exe是用来模拟Hadoop的,只要有这个文件就可以了,这个也可以找得到,例如这个博客下面的留言就有。或者

GitHub - cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows

注意要把winutils.exe和dll放在bin目录里。后面HADOOP_HOME不要指向bin,而是指向bin的上一层。

最后需要注意的是HBASE和Hadoop的版本对应关系,也很容找到,或者可以看这里。我用的是HBASE-1.2.6和Hadoop-2.5.1

2. 修改两个配置:hbase.cmd和hbase-site.xml

前者是环境信息,加入JAVA_HOME, HADOOP_HOME, HBASE_MANAGES_ZK。 前两个是Java地址和Hadoop地址,路径可以直接用\ ,也无需配到环境变量里。例如下面的:

  1. set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_121
  2. set HADOOP_HOME=D:\hadoop-2.7.1
  3. set HBASE_MANAGES_ZK=false

后者是HBASE服务的信息,这里尽量少配,其实甚至数据目录可以不配,它会自己找用户目录某个位置存。配了5个:

  1. <property>
  2. <name>hbase.tmp.dir</name>
  3. <value>/D:/hbase-1.2.6/data/tmp</value>
  4. </property>
  5. <!-- hdfs URI 要使用localhost, 不能使用127.0.0.1 -->
  6. <property>
  7. <name>hbase.rootdir</name>
  8. <value>file:///D:/hbase-1.2.6/root</value>
  9. </property>
  10. <!-- Windows不支持true, 只能填写false,设置成false之后, HBase将启动内置Zookeeper
  11. 填写true => error message: This is not implemented yet. Stay tuned. -->
  12. <property>
  13. <name>hbase.cluster.distributed</name>
  14. <value>false</value>
  15. </property>
  16. <property>
  17. <name>hbase.zookeeper.quorum</name>
  18. <value>localhost</value>
  19. </property>
  20. <property>
  21. <name>hbase.zookeeper.property.dataDir</name>
  22. <value>/D:/hbase-1.2.6/data/zoo</value>
  23. </property>

3. 启动HBASE:运行start-hbase.cmd

执行以后,会弹出一个框,分别启动HMaster,RegionServer,Zookeeper三个服务,大概要10多秒才能启动好。用jps查看,只有一个HMaster进程,说明另外两个服务并不是独立启动的,也就是本地模式。

关闭HBASE直接运行stop-hbase.cmd即可,原来弹出的命令行会不断打印出关闭信息。

4. 验证安装成功

可以通过web查看HBASE信息,http://localhost:16010/master-status, 即可看到

另外通过shell操作一下HBASE,命令:hbase.cmd shell 

5. 踩坑处理

本来上面三步在我自己电脑就成功了,但是我在某个机房里hbase-site配成那样无法启动HBASE,错误显示HMaster无法bind端口。但是一看IP明显获取不对,于是找了很半天,找到了2个配置来解决,显然是指定HMaster和RegionServer的绑定IP:

  1. <property>
  2. <name>hbase.master.ipc.address</name>
  3. <value>0.0.0.0</value>
  4. </property>
  5. <property>
  6. <name>hbase.regionserver.ipc.address</name>
  7. <value>0.0.0.0</value>
  8. </property>

但是依旧报了另外的错误,大意是RegionServer上报HMaster状态时候,没连上HMaster。这不合理啊不是已经指定了HMaster启动地址了吗,但是错误信息里显示RegionServer去连的IP确又是个错误的IP。后来又找了半天,抱着尝试的心态试了一下居然成功了:

  1. <property>
  2. <name>hbase.master.hostname</name>
  3. <value>localhost</value>
  4. </property>
  5. <property>
  6. <name>hbase.regionserver.hostname</name>
  7. <value>localhost</value>
  8. </property>

从查到的各种资料综合看,应该是HBASE启动获取主机名和IP地址问题,两个组件因此要配4个项,个人猜测是HBASE的版本问题吧。

参考资料:

http://www.voidcn.com/article/p-mvlopatx-bus.html

Windows搭建HBase 2.0.2 - 简书

HBase之——部署经验与坑总结_冰 河的博客-CSDN博客

http://www.voidcn.com/article/p-mvlopatx-bus.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/621860
推荐阅读
相关标签
  

闽ICP备14008679号