hbase 0.98.1集群安装

本文将基于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

全部服务启动后,訪问:

http://YOUR-MASTER:60010

检查各结点的状态,如都能訪问表示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文件,在当中加入例如以下内容:

时间: 2024-10-18 08:08:33

hbase 0.98.1集群安装的相关文章

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤 --(centos5.8 X64系统) 版本历史 时间 版本 说明 编写者 2015-06-5 1.0 redis3.0.2 分布式集群安装详细步骤 csc 一: redis cluster介绍篇 1:redis cluster的现状 目前redis支持的cluster特性(已亲测): 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot resharding:在线分片 4):进群管理:cluster xxx 5):基于

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

1       VM网络配置... 3 2       CentOS配置... 5 2.1             下载地址... 5 2.2             激活网卡... 5 2.3             SecureCRT. 5 2.4             修改主机名... 6 2.5             yum代理上网... 7 2.6             安装ifconfig. 8 2.7             wget安装与代理... 8 2.8       

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

之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑到是线上生产环境,决定在线迁移,迁移过程,不中断服务.操作过程如下: 一.机器环境 1 2 3 4 5 6 7 8 9 10 11 12 13 迁移前机器环境 ----------------------------------------------------------------------

redis3.2.5 分布式集群安装+错误解决过程

redis3.2.5 分布式集群安装详细步骤 --(centos5.X-6.X _X64系统) 版本历史 时间 版本 说明 编写者 2015-06-5 1.0 redis3.0.2 分布式集群安装详细步骤 崔四超 2016-11-25 1.1 redis3.2.5 分布式集群安装详细步骤 崔四超 一: redis cluster介绍篇 1:redis cluster的现状 目前redis支持的cluster特性(已亲测): 1):节点自动发现 2):slave->master 选举,集群容错 3

CDH5 集群安装教程

一.虚拟机的安装和网络配置. 1.虚拟机安装. 2.安装CentOS-6.5 64位版本. 桥接模式: Master: 内存:3G: 硬盘容量40G: 4核: Slave: 内存2G: 硬盘容量30G: 2核: 3.网络配置(master,slave) 1)进入root账号 su - root 输入密码: vi /etc/sysconfig/network 2)关闭防火墙 vi /etc/sysconfig/selinux #SELinux=disable Service iptables st

HBase简介及集群安装

一.Hbase概述 Apache HBase?是Hadoop数据库,是一个分布式,可扩展的大数据存储. 当您需要对大数据进行随机,实时读/写访问时,请使用Apache HBase?.该项目的目标是托 管非常大的表 - 数十亿行X百万列 - 在商品硬件集群上.Apache HBase是一个开源的,分布式 的,版本化的非关系数据库,模仿Google的Bigtable: Chang等人的结构化数据分布式存储系 统.正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HB

“挖掘机”升级路 一篇(03)--HBase集群安装中的收获

粗略算算,从上周五到这周二,折腾Hadoop已经三天了.这三天我是过得诚惶诚恐,作为一个学徒,老大虽然没有说啥,但是我恨不得立马完成这些基本的部署工作,感觉拖了好久好久.简单的总结一下,第一天折腾Hadoop单机和伪分布式的安装,第二天在折腾Hive的安装,以失败告终,第三天折腾HBase的集群安装,在主节点上安装成功. 也就来具体的谈谈今天的收获,今天的参考资料主要是这么两篇1.分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建(我FQ看的,不知道

分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建

一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务.因此,它可以容错地存储海量稀疏的数据.HBase在列上实现了BigTable论文提到的压缩算法.内存操作和布隆过滤器.HBase的表能够作为MapReduce任务的输入和输出,可以通过Java API来存取数据,也可以

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个须要极度耐心和体力的仔细工作. 虽然有非常多文档教会大家怎么一步一步去完毕这样的工作,可是百密也有一疏. 现成的工具不是没有,可是对于我这个喜欢了解细节的人来说,用别人的东西,写的好还能够,写的不好,出了问题,查找错误难之又难.手工安装Hadoop集群须要对Linux有一定的使用经验.对于全然没有接触Linux的人来说.肯定是