本文将基于hbase 0.98.1解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net/bluishglc/article/details/24593597,转载请注明出处。

1. 安装与配置
1.1. 前置条件
确保已经安装了hadoop并保证hadoop运行正常。关于hbase与hadoop的版本号依赖关系,请參考:  https://hbase.apache.org/book/configuration.html#hadoop 关于java和hadoop的安装和配置请參考:http://blog.csdn.net/bluishglc/article/details/24591185 本文不再赘述,仅仅给出一些环境变量的參考。建议在/etc/profile.d/以下建立一个env_var.sh文件,在当中加入例如以下内容:
JAVA_HOME=/usr/java/jdk1.7.0_51
HADOOP_HOME=/usr/local/hadoop
HBASE_HOME=/usr/local/hbase
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
export JAVA_HOME HADOOP_HOME HBASE_HOME PATH

注:为了在输入命令时避免同名的cmd文件的干扰,能够使用rm -f $HBASE_HOME/bin/*.cmd删除cmd文件。


1.2. 将安装包解压到/usr/local(或者/opt)下, 编辑conf/hbase-env.sh
 在开头部分加入:
export JAVA_HOME=/usr/java/jdk1.7.0_51
export HBASE_LOG_DIR=/var/hbase/logs
关于在hbase-env.sh中设置JAVA_HOME的原因与在hadoop-env.sh和yarn-env.sh中设置JAVA_HOME的原因是一样的,即使你的结点上已经正确设置了JAVA_HOME,在*-env.sh中设置依旧是必须的!

1.3. 配置${HBASE_HOME}/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/var/hbase</value>
</property>
<property >
<name>hbase.rootdir</name>
<value>hdfs://YOUR-NAMENODE:9000/hbase</value>
</property>
<property >
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>YOUR-ZNODE1,YOUR-ZNODE2,YOUR-ZNODE3</value>
</property>
</configuration>

对于hbase.master.info.bindAddress的配置须要注意,该项默认值是0.0.0.0,若改为某个结点的主机名或IP时,若在另外一个结点上使用start-hbase.sh启动hbase会失败。原因是使用start-hbase.sh启动时,会将当前结点作为master,即在当前结点上启动master服务。但假设hbase.master.info.bindAddress是另外一个结点,那么另外一个主机的地址是肯定无法bind到当前主机上的,所以HMaster服务就起不来了。
1.4 配置slave结点列表
通常情况我们使用start-hbase.sh脚本来启动整个集群。查看该脚本能够知道,该脚本会基于配置文件在目标结点上启动master,zookeeper和regionserver,而regionserver的列表是在${HBASE_HOME}/conf/regionservers文件里配置的,一个结点一行。所以我们须要在此文件里加入全部的regionserver机器名或IP
1.5. 将上述配置的hbase安装程序又一次打包拷贝到全部结点的相应位置再展开,同一时候记得改动每一个结点的/etc/profile
2. 启动
2.1 关于账户设置
关于这一点,在账户设置上与hadoop是一致的,请參考blog.csdn.net/bluishglc/article/details/24591185一文的3.1节。为了从简,本文直接使用root账户启动。
2.2 启动HBase集群
运行:
start-hbase.sh 
该命令可在随意结点上运行,只是须要注意的是:在哪个结点上运行该命令,该点将自己主动成为master(与zookeeper的配置不同。hbase的配置文件里不提供指定master的选项)。假设须要多个back-up master,可在另外的结点上通过hbase-daemon.sh start master单独启动master!
以下是单独启动某项服务的命令:
启动zookeeper
hbase-daemon.sh start zookeeper
启动master
hbase-daemon.sh start master
启动regionserver
hbase-daemon.sh start regionserver
全部服务启动后,訪问:
检查各结点的状态,如都能訪问表示HBase没有问题,如无法訪问或缺少节点。可分析log的中的信息找出问题原因。

3. 常见问题和处理方法

3.1  org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server xxxxxx,60020,1416564592512 has been rejected; Reported time is too far out of sync with master.  Time difference of xxxxx ms > max allowed of 30000ms

这是因为各节点的时间不同步引起的,解决问题须要在集群各几点上安装和启动NTP服务,并选取当中一台机器(往往是master节点)做为集群内的时间服务器,从而确保整个集群全部机器的时间是一致的。

3.2 FATAL [master:xxxxx:60000] master.HMaster: Unhandled exception. Starting shutdown.
org.apache.hadoop.security.AccessControlException: Permission denied: user=hbase, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x

这是因为启动HBase服务的用户没有在HDFS指定文件夹上(这里是根文件夹)进行写操作的权限。出现这样的问题的常见原因是使用了某个专有帐号(比方hadoop)启动了hadoop的各项服务,而使用了另个某个专有帐号(比方hbase)去启动hbase,因为hbase在初次启动时须要在HDFS的根文件夹上建立一个hbase文件夹来存放数据,而对于hdfs来说,仅仅有hadoop用户才有权在根文件夹上进行写操作。

所以解决办法就是使用hadoop用户在hdfs的根文件夹上建立一个hbase文件夹,同一时候把它的group和owner都改为hbase就能够了。

建议在/etc/profile.d/以下建立一个env_var.sh文件,在当中加入例如以下内容:

hbase 0.98.1集群安装的更多相关文章

  1. HBase体系架构和集群安装

    大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...

  2. CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装

    1 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.9.1 2.9.2 2.9.2.1 2.9.2.2 2.9.3 2.9.3.1 2.9.3.2 2.9.3.3 2. ...

  3. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——集群安装总览

    1,手动下载压缩包.tar(下载地址),采用tarball形式手工安装集群. 2,共启用13台虚拟机,CentOS6.5 64bit,nn1,nn2,rm1,rm2,dn1,dn2,dn3,dn4,d ...

  4. Redis Cluster 4.0高可用集群安装、在线迁移操作记录

    之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...

  5. Redis3.0.7 cluster/集群 安装配置教程

    1.前言 环境:CentOS-6.7-i386-LiveDVD 安装的CentOs系统 节点: 6个节点,3个主节点.3个从节点(由于redis默认需要3个主节点,如果想每个主节点有一个从节点,这是最 ...

  6. Hadoop3.0完全分布式集群安装部署

    1. 配置为1个namenode(master主机),2个datanode(slave1主机+slave2主机)的hadoop集群模式, 在VMWare中构建3台运行Ubuntu的机器作为服务器: 关 ...

  7. Hbase 0.92.1集群数据迁移到新集群

    老集群 hbase(main):001:0> status 4 servers, 0 dead, 0.0000 average load hbase(main):002:0> list T ...

  8. Hadoop 2.4.1+HBase 0.98.6.1 分布式安装

    参考:http://blog.csdn.net/wind520/article/details/39856353

  9. hadoop 2.2.0集群安装

    相关阅读: hbase 0.98.1集群安装 本文将基于hadoop 2.2.0解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net ...

随机推荐

  1. HTML DOM应用案例1

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. mysql +keeplive+drbd高可用架构

    1MySQL+DRBD+keepalived高可用架构 DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的开源软件,类似于 ...

  3. 二、VueJs 填坑日记之基础项目构建

    在上一篇文章中,大致介绍了一下本系列博文以及学习vuejs我们需要了解的一些概念,希望大家认真阅读,所谓知己知彼,百战百胜,学习也一样,工欲善其事,必先利其器,要想学好vuejs,那前提的概念一定要熟 ...

  4. javaWeb内置对象

    jsp内置对象是web容器创建的一组对象. jsp内置对象的名称是jsp的保留字. jsp内置对象是可以直接在jsp页面使用的对象,无需使用new获取实例. jsp九大内置对象 1.request 2 ...

  5. C#Session丢失问题的解决办法

    关于c# SESSION丢失问题解决办法   我们在用C#开发程序的时候经常会遇到Session很不稳定,老是数据丢失.下面就是Session数据丢失的解决办法希望对您有好处.1.在WEB.CONFI ...

  6. [转载] Gossip算法学习

    转载自http://blog.csdn.net/yfkiss/article/details/6943682/ 1. 概述gossip,顾名思义,类似于流言传播的概念,是一种可以按照自己的期望,自行选 ...

  7. 企业级应用TOMCAT

    第1章 Tomcat 1.1 Tomcat简介 Tomcat是一个免开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不多的场合下被普遍使用,是开发调试JSP程序的首选,另 ...

  8. python学习笔记 tuple

    1. ()去声明.与list类似,但是其元素不能改变. 2. 需要注意的是1中的不能改变是指()中的元素不能改变,如果其元素是一个list,那么list中的元素是可以改变的,不论是大小还是其他的. 3 ...

  9. [ 面试没回答上的问题2]IOS上给body绑定click事件的bug

    面试被问到ios上的bug,自己提到绑定click事件的bug,但是并没有把问题讲的很清楚,这里再清理一下思路. 这个bug只在IOS上有,包括ihone,ipad,由于ios浏览器都用的safari ...

  10. springboot-helloworld

    1使用idea创建springboot项目如下图所示 并选择web模块 2,登录springboot官网 http://projects.spring.io/spring-boot/ 引入相关依赖包如 ...