首页 > 其他 > 详细

hbase

时间:2019-08-07 23:14:12      阅读:152      评论:0      收藏:0      [点我收藏+]

HBASE安装

HBASE简介

1.什么是HBASE:

HBASE是一个数据库----可以提供数据的实时随机读写

HBASE与mysql、oralce、db2、sqlserver等关系型数据库不同,它是一个NoSQL数据库(非关系型数据库)

Hbase的表模型与关系型数据库的表模型不同:

Hbase的表没有固定的字段定义;

Hbase的表中每行存储的都是一些key-value对

Hbase的表中有列族的划分,用户可以指定将哪些kv插入哪个列族

Hbase的表在物理存储上,是按照列族来分割的,不同列族的数据一定存储在不同的文件中

Hbase的表中的每一行都固定有一个行键,而且每一行的行键在表中不能重复

Hbase中的数据,包含行键,包含key,包含value,都是byte[ ]类型,hbase不负责为用户维护数据类型

HBASE对事务的支持很差

2.Hbase特性:

2.1 数据的最终持久化存储是基于--HDFS-->存储容量可以随时在线扩容

2.2 HBASE的数据增删改查模块是:分布式系统-->HBASE是一个分布式数据库系统

2.3 nosql

3.Hbase表结构:

技术分享图片

4.Hbase工作机制:

技术分享图片

HBASE安装

HBASE是一个分布式数据库

其中有一个管理角色: HMaster(一般2台,一台active,一台backup)

其他的数据节点角色: HRegionServer(很多台,看数据容量)

上传压缩包、解压、删除 docs(可删可不删)

1.vim hbase-env.sh

export JAVA_HOME=/usr/local/software/jdk1.8.0_11
export HBASE_MANAGES_ZK=false

2.vim hbase-site.xml

<configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
    <property>
            <name>hbase.rootdir</name>
            <value>hdfs://pengyy22:9000/hbase</value>
    </property>
    <!-- 指定hbase是分布式的 -->
    <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
    </property>
    <!-- 指定zk的地址,多个用“,”分割 -->
    <property>
            <name>hbase.zookeeper.quorum</name>
            <value>pengyy42:2181,pengyy43:2181,pengyy44:2181</value>
    </property>
</configuration>

3.启动

 ./start-hbase.sh 
 
报错-1
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/software/hadoop-2.8.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/software/hbase-2.1.2/lib/client-facing-thirdparty/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]
解决方案:
1.这个方法修改后hadoop启动总是会告警(最好不要用此方法)
cd /usr/local/software/hadoop-2.8.1/share/hadoop/common/lib/
mv slf4j-log4j12-1.7.10.jar slf4j-log4j12-1.7.10.jar.copy
2.修改hbase项目下//conf/hbase-env.sh这个文件.添加下面这行
看key名字就应该能明白:Hbase禁用查找Hadoop的Classs=True
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

报错-2
2018-08-01 23:30:33,794 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster. 
解决方案:
cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/
可能是 hbase-2.1.2编译的问题

报错-3
 Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server pengyy42,16020,1564065239869 has been rejected; Reported time is too far out of sync with master.  Time difference of 28800450ms > max allowed of 30000ms
解决方案:
date -s "2019-07-25 22:42:40"
hwclock -w
服务器时间不一致,手动设置成一样

4.检验

jps 命令查看

http://pengyy22:16010/ 

5.启动备用master

在集群中找任意一台机器启动一个备用的master

bin/hbase-daemon.sh start master

新启的这个master会处于backup状态

6.hbase命令行客户端

bin/hbase shell

Hbase> list // 查看表

Hbase> status // 查看集群状态

Hbase> version // 查看集群版本

hbase

原文:https://www.cnblogs.com/pengyy/p/11318264.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!