VisualBox下安装HBase集群

照着上面的步骤一步步的解决,但是最后错误频发,没有找到解决方案。

 1、bin/stop-hbase.sh 命令后,一直小圆点,进程结束不了。后来查遍了几乎所有的google上此类问题,发现是Hmaster没有搞定,这才记起可以用jps命令查看进程情况,一查看,果然是那样,没有Hmaster进程。

 2、进入shell后,建表以及其他操作,都提示

    ERROR:org.apache.hadoop.hbase.MasterNotRunning:Null

    在logs里可以看到org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown

    遍查google,发现了N中解决方案:

    1)确认hbase.rootdir与hdfs.xml里面的dfs.name是否一直

    2)关闭防火墙:sudo ufw disable

    3)在windows主机名:c:\windows\system32\drivers/etc 加入各主机名(最后发现,原来是cywin使用者出现的问题,汗)

    4)注释掉/etc/hosts里的localhost,最后发现,没必要

    5)开始换版本的组合,从hadoop20.2换到hadoop20.203.0,又把hbase从90.3的一般版本换到stable版本,仍然不行。

3、最后发现的两个致命错误,这个是真实存在的

    1)使用hadoop和hbase的用户,由于文件的权限限制,一直使用root用户,最后发现root会导致一些错误的产生。最后所有的机子新建grid用户。

    2)本文的题目。从VMware到visual Box,这是关键所在,换完虚拟机版本,所有问题迎刃而解,发觉困扰半周的问题居然就在这里!(版本害死人啊!!!)

建立过程(参考一网友)

当然,java,hadoo之类已经建好。我最后用了三台机子

  namenode:192.168.122.136  用户名ubn

  datanode1:192.168.122.140              ub1

  datanode2:192.168.122.141               ub2

 java路径:/home/grid/java/jdk

 hadoop路径:/home/grid/hadoop

 hbase路径:/home/grid/hbase

下载hbase-0.20.2.tar.gz, 解压到预设目录即可。我的目录:/home/grid/hbase/

解压完成更改文件名 mv hbase0.90.3   hbase  (这样便于设置各种变量,后面带一大串数字的文件夹名,引用时很容易出错,这也算是最大的新的

1、修改conf/hbase-env.sh

export JAVA_HOME=/home/grid/java/jdk

export HBASE_CLASSPATH=/home/grid/hadoop/conf

export HBASE_MANAGES_ZK=true

  HBASE_MANAGES_ZK选择了tru,让机子自己管理zookeeper

2、修改hbase-site.xml,增加以下内容


<property>

    <name>hbase.rootdir</name>

    <value>hdfs://ubn/hbase</value>

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

其中: hbase.rootdir:“hdfs://ubn:9000”这部分必须和hadoop-config/core-site.xml中的fs.default.name保持一致;

3、把/home/grid/hadoop/conf/hdfs-site.xml文件拷贝至hbase的conf文件夹下

4、在conf/regionservers中添加hadoop-config/conf/slaves中所有的datanode节点。

5、删除/hbase/lib/hadoop-core-0.20-append-r1056497.jar

     拷贝/hadoophadoop-0.20.0-core.jar到/hbase-0.90.2/lib/

6、最后,把配置好的hbase,拷贝到其它节点 scp

运行

Hadoop、ZooKeeper和HBase之间应该按照顺序启动和关闭:启动Hadoop->启动HBase—>停止HBase—>停止Hadoop。

执行bin/start-hbase.sh和bin/stop-hbase.sh 脚本启动和停止HBase服务。

测试,hbase shell,测试:


list  列出所有表

create 建表,如 create 'test','data'

put 插入数据

相关推荐