hbase版本 2.0.4  与hadoop兼容表http://hbase.apache.org/book.html#hadoop
 我的 hadoop版本是3.1
 

1.单机版hbase

1.1解压安装包

tar xf hbase-2.0.4-bin.tar.gz -C /opt/ 
 

1.2配置环境变量

编辑/etc/profile
export HBASE_HOME=/opt/hbase-2.0.
export PATH=$PATH:$HBASE_HOME/bin
 
生效环境变量
source /etc/profile

1.3.配置hbase-env.sh

export JAVA_HOME=/usr/java/jdk1..0_191-amd64
export HBASE_MANAGES_ZK=false

1.4配置hbase-env.sh

<property>
<name>hbase.rootdir</name>
<value>file:///home/testuser/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/testuser/zookeeper</value>
</property>
 

1.5启动hbase

start-hbase.sh
报错
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase-2.0.4/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-3.1.1/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
running master, logging to /opt/hbase-2.0.4/logs/hbase-root-master-node04.out
 
原因是有两个log4j的jar起了冲突,只需要删除其中一个
mv /opt/hadoop-3.1./share/hadoop/common/lib/slf4j-log4j12-1.7..jar /opt/hadoop-3.1./share/hadoop/common/lib/slf4j-log4j12-1.7..jar.bak
在hbase-env.sh  配置中默认使用的是hbase自带的zk实例,在完全分布式环境中需要改为false
注意:如果是下面配置是true,就关闭当前的zk实例。
 

进入hbase shell

 

2.高可用完全分布式部署

2.1节点角色分配

 
节点
namenode01
namenode02
zk
datanode
zkfc
journalnode
Hmaster
Hregionserver
node01
 
 
 
 
node02
 
node03
 
 
 
 
node04
 
 
 
 
 

2.2配置环境变量/etc/profile

全部节点配置,配置不要忘记 source一下

export HBASE_HOME=/opt/hbase-2.0.
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin
 

2.3配置hbase-env.sh

export JAVA_HOME=/usr/java/jdk1..0_191-amd64
export HBASE_MANAGES_ZK=false

2.3配置hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node02,node03,node04</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value></value>
</property>
</configuration>

2.4配置regionservers

[root@node01 conf]# cat regionservers
node02
node03
node04

2.5配置backup-masters

(注意:这个配置文件默认没有,单独创建编辑)
[root@node01 conf]# cat backup-masters
node02

2.6拷贝hdfs-site.xml

将hdfs-site.xml拷贝到hbase的配置目录
[root@node01 conf]# cp /opt/hadoop-3.1.1/etc/hadoop/hdfs-site.xml    /opt/hbase-2.0.4/conf/
 

2.7分发hbase到其他节点

 略。。。

2.8启动中出现的一些问题

根据日志 增加一些相应的配置。
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.
hbase-site.xml增加配置 
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
 
regionserver.HRegionServer: STOPPED: Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server node02,16020,1548146100212 has been rejected; Reported time is too far out of sync with master.  Time difference of 122815ms > max allowed of 30000ms
hbase-site.xml增加配置 
<property>
<name>hbase.master.maxclockskew</name>
<value></value>
</property>

2.9启动hbase集群

[root@node01 conf]# start-hbase.sh
running master, logging to /opt/hbase-2.0./logs/hbase-root-master-node01.out
node02: running regionserver, logging to /opt/hbase-2.0./bin/../logs/hbase-root-regionserver-node02.out
node04: running regionserver, logging to /opt/hbase-2.0./bin/../logs/hbase-root-regionserver-node04.out
node03: running regionserver, logging to /opt/hbase-2.0./bin/../logs/hbase-root-regionserver-node03.out
node02: running master, logging to /opt/hbase-2.0./bin/../logs/hbase-root-master-node02.out

2.10验证

通过网页访问hbase
查看web portal使用端口16010
 

网页  node01:16010
符合预期
 

使用 hbase shell
 

2.11 hbase shell 使用

创建test表,列族为 cf 
hbase(main):004:0> create 'test','cf'
Created table test
Took 4.6111 seconds
=> Hbase::Table - test
向这个cf列族put 列名为name,值为 xiaoming的数据
hbase(main):005:0> put 'test','','cf:name','xiaoming'
Took 1.8724 seconds

当我们将数据塞进表里后不会立马写入到hdfs上,这是由于hbase的数据会暂存在内存中当内存使用达到一定阀值后会溢写到磁盘上。

 

如果想让他立即写到磁盘需要使用flush 命令
hbase(main):007:0> flush 'test'
Took 2.6511 seconds

2.12验证高可用

手动kill node01上的Hmaster进程,看是master是否会切换到node02
 

hbase学习(二)hbase单机和高可用完全分布式安装部署的更多相关文章

  1. 大数据学习笔记——Hbase高可用+完全分布式完整部署教程

    Hbase高可用+完全分布式完整部署教程 本篇博客承接上一篇sqoop的部署教程,将会详细介绍完全分布式并且是高可用模式下的Hbase的部署流程,废话不多说,我们直接开始! 1. 安装准备 部署Hba ...

  2. MySQL高可用之PXC安装部署(续)

      Preface       Yesterday I implemented a three-nodes PXC,but there were some errors when proceeding ...

  3. MySQL高可用之PXC安装部署

      Preface       Today,I'm gonna implement a PXC,Let's see the procedure.   Framework   Hostname IP P ...

  4. 一站式学习Redis 从入门到高可用分布式实践

    1:redis 是用c语言来实现的,速度快 持久化 单线程 复杂的数据类型有bitmap和hyperloglog和geo地理信息2:高可用.分布式 v2.8开始支持Redis-Sentinel(哨兵) ...

  5. springCloud学习-高可用的分布式配置中心(Spring Cloud Config)

    1.简介 高可用的分布式配置中心,即将配置中心做成一个微服务,将其集群化,从而达到高可用.config-server和config-client向eureka-server注册,且将config-se ...

  6. 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备

    在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在 ...

  7. 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

    原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...

  8. ProxySQL Cluster 高可用集群环境部署记录

    ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...

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

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

随机推荐

  1. bzoj3251: 树上三角形(思维题)

    神tmWA了8发调了20min才发现输出没回车T T... 首先考虑一段什么样的序列才会是N... 显然最长的形式就是斐波那契,前两数之和等于第三数之和,这样就无法组成三角形并且序列最长.可以发现在i ...

  2. [POI2011]SEJ-Strongbox

    题目大意: 一个有密码箱,数字是0~n-1,其中有若干个密码,密码的特点:若x是密码,y是密码,(x可以等于y)则(x+y)%n也是密码. 给一个n(<=10^14),一个k(k<=min ...

  3. hibernate实现数据实体复制保存

    hibernate实现数据实体复制保存 2013年12月16日 11:57:22 Hardy008 阅读数:3474   描述:需要将数据的一条记录进行复制保存为一条新记录. 思路:从数据库中取得一条 ...

  4. bzoj3938 Robot

    3938: Robot Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 336  Solved: 112[Submit][Status][Discuss ...

  5. vue 父子组件相互传递数据

    例子一 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...

  6. [DeeplearningAI笔记]卷积神经网络2.3-2.4深度残差网络

    4.2深度卷积网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 [残差网络]--He K, Zhang X, Ren S, et al. Deep Residual Learni ...

  7. libxml移植到android

    libxml是C语言写的xml解析库,是我们开发可移植程序的首选,下面讲述将其移植到android的步骤 1.下载已经配置好的源代码包android_libxml2.rar http://pan.ba ...

  8. 将new Date() 格式化为 ’2018-10-11‘ 的字符串格式

    function dateToString( date , format ){ if(!date) return ""; if (!Common.type.isDate(date) ...

  9. 关于java 获取 html select标签 下拉框 option 文本内容 隐藏域

    在HTML中从多选下拉框中提取已选中选项的文本内容到后台,被这个问题难倒了. demo.jsp文件 <select id="selecttype" name"typ ...

  10. Linux命令学习-图形化界面命令开关闭

    su root password 1, 关闭图形界面: init 3 关闭图形界面(XServer服务也会关闭) 开启图形界面: init 5 或 startx 开机时,不进入 X Window: v ...