博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hbase 0.98.1集群安装
阅读量:7287 次
发布时间:2019-06-30

本文共 3268 字,大约阅读时间需要 10 分钟。

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

1. 安装与配置
1.1. 前置条件
确保已经安装了hadoop并保证hadoop运行正常。关于hbase与hadoop的版本号依赖关系,请參考:    关于java和hadoop的安装和配置请參考: 本文不再赘述,仅仅给出一些环境变量的參考。建议在/etc/profile.d/以下建立一个env_var.sh文件,在当中加入例如以下内容:
JAVA_HOME=/usr/java/jdk1.7.0_51HADOOP_HOME=/usr/local/hadoopHBASE_HOME=/usr/local/hbasePATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/binexport 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_51export 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
hbase.tmp.dir
/var/hbase
hbase.rootdir
hdfs://YOUR-NAMENODE:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
YOUR-ZNODE1,YOUR-ZNODE2,YOUR-ZNODE3
对于
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是一致的,请參考 一文的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文件,在当中加入例如以下内容:
你可能感兴趣的文章
学习笔记--配置DHCP服务器(基于接口的地址池)
查看>>
Windows Server 2008安全内幕
查看>>
[CSS]练习纯CSS实现瀑布流的几种方法
查看>>
基于Linux操作系统配置java环境及Windows操作系统配置java环境(jdk安装)
查看>>
Gamebryo实例学习之五DX9MSAATextures
查看>>
我的近况
查看>>
网站运营的4点经验
查看>>
电信运营商的流量增值——互联网广告
查看>>
查看硬盘物理序列号的程序源代码
查看>>
Debian查看启动日志
查看>>
haproxy配置详解以及动静分离的实现
查看>>
1.2 Zookeeper伪集群安装
查看>>
查看客户端域策略应用结果
查看>>
美团外卖Android平台化的复用实践
查看>>
美团即时物流的分布式系统架构设计
查看>>
流行语折射科技新活力
查看>>
Zabbix高级应用二、监控磁盘阵列、Exchange队列、DAG
查看>>
Ubuntu16.04LTS上搭建Sentry
查看>>
oracle查看表空间大小及表数量
查看>>
js 常用提示 console.log & console.info
查看>>