最近打算学习一下 Hbase 结果发现安装很麻烦,看了不少博客,windows还是比较麻烦,磕磕绊绊装好了,暂时可以用,参考了一篇文章HBase学习 (第一天) 在Win10上单机部署,其中大部分都按照这个那篇文章思路

版本

主要发现 Hbase 和 Hadoop 版本直接有依赖,终于那篇文章说了明说了版本

准备工作:

官网上https://hadoop.apache.org/releases.html 下载Hadoop,我下载的是hadoop-2.8.5版本
官网上https://hbase.apache.org/downloads.html 下载HBase, 我下载的是2.1.1的版本
下载JDK 1.8

环境变量配置:

  • java 环境配置,没得说 配置环境变量JAVA_HOME、PATH环境变量
  • 解压hadoop,配置环境变量HADOOP_HOME,为hadoop的跟目录,即bin的上一层目录,并将 %HADOOP_HOME%/bin放入PATH
  • 解压hbase,配置环境变量HBASE_HOME,为Hbase的跟目录,即bin的上一层目录,同样将%HBASE_HOME%/bin放入PATH

配置文件配置

  • hbase配置, 首先配置conf下的hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**
 *
 * 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.
 */
-->
<configuration>
 <property>
    <name>hbase.rootdir</name>
    <value>file:///E:/hbase/data</value>      // 这个路径自己根据情况设置
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>E://hbase/zookeeper_data</value>                // 这个路径自己根据情况设置
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).

      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.

      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    </description>
  </property>
  <property>  
        <name>hbase.cluster.distributed</name>  
        <value>false</value>  
   </property> 
   <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>5181</value>                    //zookeeper端口
    <description>指定zk的端口号</description>
  </property>
   <property>  
    <name>hbase.zookeeper.quorum</name>  
    <value>127.0.0.1</value>                
    </property>  
</configuration>

本来想使用自己的zookeeper,结果怎么都不行,还是乖乖使用自带的即 在 conf/hbase.cmd 中
set HBASE_MANAGES_ZK=true (true代表使用自带zookeeper)

  • hadoop 看了不少博客 hadoop的 配置也要和hbase一致,我是这样配了,不知道有没有用,在 hadoop根目录 \etc\hadoop\core-site.xml更改如下
<configuration>
 <property>
        <name>hbase.rootdir</name>
        <value>file:///E:/hbase/data</value>    //和hbase指定路径一致
    </property>
</configuration>

jar包缺失

这时候执行${HBASE_HOME}/}bin/hbase-start.cmd ,会出现一系列的错误,主要就是缺少包导致的.

commons-logging-1.2.jar
slf4j-api-1.7.25.jar
log4j-1.2.15.jar
slf4j-log4j12-1.7.25.jar
htrace-core4-4.0.1-incubating.jar (${HADOOP_HOME}/share/common/lib下直接拷贝就行)

如果还有其他缺包的,下载下来放到${HBASE_HOME}/lib下即可
在下载依赖jar包时,注意版本,如果拷贝后还报错,有时候可能是jar包版本不对或者版本冲突。

找不到winutils.exe

按照那个博客,的确缺失这个hadoop-common-2.8.1-bin.zip,博主给的链接是csdn,本人太穷 ,遂到github找到类似的仓库,把图中hadoop-2.8.1目录下文件拷贝到${HADOOP_HOME}/bin下即可
steveloughran/winutils

hbase 安装目录 hbase安装问题_hadoop

启动

启动 bin/start-hbase.cmd,开启hbase服务
以管理员方式打开dos窗口,进入到${HBASE_HOME}/bin,执行 hbase shell 进入到shell窗口

创建测试表 create  'test_table','info'

     查看表      list  

     其他

       a.HBase 与Hadoop的版本对应关系参见  http://hbase.apache.org/book.html#basic.prerequisites

       b.在启动hbase shell时用管理员方式打开DOS窗口,否则可能会出现目录权限的问题