赞
踩
在Windows上装hadoop生态组件是一件麻烦事,但是HBase的安装却可以非常简单。目前主流的安装文档都需要装Hadoop,这里介绍一个简单的单机版安装方法,适合用来学习。
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
前者是环境信息,加入JAVA_HOME, HADOOP_HOME, HBASE_MANAGES_ZK。 前两个是Java地址和Hadoop地址,路径可以直接用\ ,也无需配到环境变量里。例如下面的:
- set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_121
- set HADOOP_HOME=D:\hadoop-2.7.1
- set HBASE_MANAGES_ZK=false
后者是HBASE服务的信息,这里尽量少配,其实甚至数据目录可以不配,它会自己找用户目录某个位置存。配了5个:
- <property>
- <name>hbase.tmp.dir</name>
- <value>/D:/hbase-1.2.6/data/tmp</value>
- </property>
- <!-- hdfs URI 要使用localhost, 不能使用127.0.0.1 -->
- <property>
- <name>hbase.rootdir</name>
- <value>file:///D:/hbase-1.2.6/root</value>
- </property>
- <!-- Windows不支持true, 只能填写false,设置成false之后, HBase将启动内置Zookeeper
- 填写true => error message: This is not implemented yet. Stay tuned. -->
- <property>
- <name>hbase.cluster.distributed</name>
- <value>false</value>
- </property>
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>localhost</value>
- </property>
- <property>
- <name>hbase.zookeeper.property.dataDir</name>
- <value>/D:/hbase-1.2.6/data/zoo</value>
- </property>
执行以后,会弹出一个框,分别启动HMaster,RegionServer,Zookeeper三个服务,大概要10多秒才能启动好。用jps查看,只有一个HMaster进程,说明另外两个服务并不是独立启动的,也就是本地模式。
关闭HBASE直接运行stop-hbase.cmd即可,原来弹出的命令行会不断打印出关闭信息。
可以通过web查看HBASE信息,http://localhost:16010/master-status, 即可看到
另外通过shell操作一下HBASE,命令:hbase.cmd shell
本来上面三步在我自己电脑就成功了,但是我在某个机房里hbase-site配成那样无法启动HBASE,错误显示HMaster无法bind端口。但是一看IP明显获取不对,于是找了很半天,找到了2个配置来解决,显然是指定HMaster和RegionServer的绑定IP:
- <property>
- <name>hbase.master.ipc.address</name>
- <value>0.0.0.0</value>
- </property>
- <property>
- <name>hbase.regionserver.ipc.address</name>
- <value>0.0.0.0</value>
- </property>
但是依旧报了另外的错误,大意是RegionServer上报HMaster状态时候,没连上HMaster。这不合理啊不是已经指定了HMaster启动地址了吗,但是错误信息里显示RegionServer去连的IP确又是个错误的IP。后来又找了半天,抱着尝试的心态试了一下居然成功了:
- <property>
- <name>hbase.master.hostname</name>
- <value>localhost</value>
- </property>
- <property>
- <name>hbase.regionserver.hostname</name>
- <value>localhost</value>
- </property>
从查到的各种资料综合看,应该是HBASE启动获取主机名和IP地址问题,两个组件因此要配4个项,个人猜测是HBASE的版本问题吧。
参考资料:
http://www.voidcn.com/article/p-mvlopatx-bus.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。