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. 十大最佳Leap Motion体感控制器应用

    十大最佳Leap Motion体感控制器应用   Leap Motion Controller也许还没有准备好大规模的发售,但是毫无疑问,这款小巧的动作捕捉器是我们见过的最酷的设备之一.这款设备的硬件 ...

  2. tyvj1305 最大子序和 【单调队列优化dp】

    描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7 当m=2或m=3时,S=5+1=6 输 ...

  3. 洛谷P1445 [Violet] 樱花 (数学)

    洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...

  4. php的自动加载函数spl_autoload_register和__autoload

    spl_autoload_register和__autoload是用来自动加载类的,不用每次都require,include这样搞. 先说__autoload的用法, 在同级目录建立2个文件,一个in ...

  5. socket编程 ------ sockaddr_in 和 sockaddr 的区别

    struct sockaddr 和 struct sockaddr_in 这两个结构体用来处理网络通信的地址. // 以下是 IPv4 的定义 struct sockaddr { unsigned s ...

  6. CSS3实现文本垂直排列

    最近的一个项目中要使文字垂直排列,也就是运用了CSS的writing-mode属性. writing-mode最初时ie中支持的一个属性,后来在CSS3中增添了这一新的属性,所以在ie中和其他浏览器中 ...

  7. Lucene 查询分页技术

    常用的Lucene查询代码如下所示,该代码的作用是将path路径下的所有索引信息返回 public String matchAll(String path) { try { Directory dir ...

  8. Idea工具常用技巧总结

    转自:https://www.jianshu.com/p/131c2deb3ecf Idea常用技巧总结 1.无处不在的跳转 注:这里的快捷键是自己定义的,并非大家的都一样,可以通过findActio ...

  9. 【BZOJ4565】【HAOI2016】字符合并 [状压DP][区间DP]

    字符合并 Time Limit: 20 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 有一个长度为 n 的 01 串,你 ...

  10. UIWebView---iOS-Apple苹果官方文档翻译

    CHENYILONG Blog UIWebView---iOS-Apple苹果官方文档翻译 UIWebView 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博h ...