HBase单机踩过的坑

来源:互联网 发布:mac的常用快捷键 编辑:程序博客网 时间:2024/05/17 02:17

hbase

环境配置

操作系统:Mac 内存8G(Windows 7 内存8G)

安装hbase有分布式和单机两种。

分布式的话,需要部署hadoop和zookeeper。在单机的情况下这两个都不要安装。使用自带的就可以。

单机安装

安装步骤就不叙述了,按官网的步骤,没毛病。

重点是:JAVA_HOME要配置,或者在脚本conf/hbase-env.sh中配置export JAVA_HOME=你自己的java路径

讲一些我遇到的坑。

  1. 启动hbase报错,zookeeper.ClientCnxn: Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
  2. 启动hbase报错,zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

解决方案

step1

在/etc/hosts 下配置:

Linux添加配置:

127.0.0.1 localhost127.0.0.1 ubuntu.ubuntu-domain ubuntu

Mac 和Windows添加配置:

127.0.0.1 localhost

step2

在Mac下用sudo,Windows下用自带的cmd(用git-bash,没成功)。

如果是windows下出现的,请留意下面的问题以及解决方案

windows 上面的两个问题有可能是下面的这个问题导致:

  1. windows 中使用hbase 异常:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

这里有详细的解释:null\bin\winutils.exe

解决方案:

  1. 跟代码会发现是HADOOP_HOME的问题。如果HADOOP_HOME为空,必然fullExeName为null\bin\winutils.exe。
  2. 为了得到完整的地址fullExeName,配置HADOOP_HOME,我机器上安装了Hadoop,所以是F:\workspace\hadoop-2.6.5。继续执行代码又发现了错误。就去一看,bin文件夹下没有winutils.exe这个东西。去github.com/WSYW126下载一个,放就去即可。当然因为是单机的所以我们不需要安装hadoop,将上面的文件下载后设置HADOOP_HOME为解压文件的路径就行。

检查启动结果

方法一:检验HBase是否正常启动:

  1. 在bin目录执行hbase shell,正常的话会进入hbase命令行模式,即 hbase(main):001:0>
  2. 输入 create ‘test’ ,’f1’,正常的话会出现

    hbase(main):002:0> create 'test','f1'0 row(s) in 1.3530 seconds
  3. 继续输入 list,正常的话会列出我们刚刚创建的test表。

方法二 打开浏览器

访问localhost:16010/master-status,可以看到hbase的一些状态信息。

master-status

OK 可以用了,尽情体验hbase吧。

hbase使用过程中的问题记录

question 1

hbase在两个项目中引用的版本号:hbase-client version 1.2.2 和 hadoop-core version 1.2.1.
项目A不报错,项目B一直报错。
错误内容:org.apache.hadoop.net.NetUtils.getInputStream(Ljava/net/Socket;)
各种debug追代码,以为要自己make代码了。不过最后发现是版本不支持,选择支持的版本就可以了。

question 2

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

出现这个问题是因为没有配置HADOOP_HOME导致的,所以在系统变量中配置即可,但是看样子需要重启电脑。

所以为了不重启电脑在项目中使用System.setProperty(“hadoop.home.dir”, “D:\hadoop-common-2.2.0-bin-master”); 暂时解决问题。


参考资料:

备注:
转载请注明出处:http://blog.csdn.net/wsyw126/article/details/72973021
作者:WSYW126

原创粉丝点击