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. Codeforces Round #406 (Div. 2)滚粗记

    A 一看到题,不是一道解不定方程的裸题吗,调了好久exgcd. 其实一个for就好了啊 B 一直WA ON TEST 7真是烦,一想会不会是编号太大了,又写了一个map版本,无用. 调了好久好久才发现 ...

  2. Implement Queue by Two Stacks

    As the title described, you should only use two stacks to implement a queue's actions. The queue sho ...

  3. 解题:AHOI 2005 航线规划

    题面 这种不断删边的首先肯定想到时光倒流啊=.= 在最后剩下的连通图上跑出一棵搜索树,先将边权都赋为$1$,那么两点间的关键航线就是链上边权和,而每加入一条非树边$u,v$都会使得$u,v$链上的边的 ...

  4. 【bzoj2588】Count on a tree

    Portal -->bzoj2588 Solution 不行我一定要来挂这道题qwq很气愤qwq(其实还不是因为自己蠢..) 额首先说一下正解 如果这个问题放在序列上面的话..直接离散化一下然后 ...

  5. poj 1743 后缀数组 最长不重叠子串

    Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 30941   Accepted: 10336 D ...

  6. centos7安装ZABBIX 3.0+ 邮件报警【OK】

    设置主机名: vi /etc/hosts 10.0.0.252 zabbix-server hostnamectl set-hostname   关闭防火墙: systemctl stop firew ...

  7. TersorflowTutorial_MNIST数据集上简单CNN实现

    MNIST数据集上简单CNN实现 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 Tensorflow机器学习实战指南 源代码请点击下方链接欢迎加星 Tesorflow实现基于MNI ...

  8. HDU 4778 状压DP

    一看就是状压,由于是类似博弈的游戏.游戏里的两人都是绝对聪明,那么先手的选择是能够确定最终局面的. 实际上是枚举最终局面情况,0代表是被Bob拿走的,1为Alice拿走的,当时Alice拿走且满足变换 ...

  9. Fiddler 网页采集抓包利器__手机app抓包

    用curl技术开发了一个微信文章聚合类产品,把抓取到的数据转换成json格式,并在android端调用json数据接口加以显示: 基于weiphp做了一个掌上头条插件,也是用的网页采集技术:和一个创业 ...

  10. CSS 文本属性

    一.文本位置 text-align: 参数 /** * left center right:左中右**/text-align: left; 二.文本行间距 line-height: 参数 特别要注意: ...