一、HBase简介

1、什么是HBase
HBase(Hadoop DataBase)是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
​ HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。
​ HBase是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为其分布式协调服务。
​ 用来存储非结构化和半结构化的松散数据

2、 与传统数据库相比

传统数据库遇到的问题:

数据量很大的时候无法存储
没有很好的备份机制
数据达到一定数量开始缓慢,很大的话基本无法支撑

HBase优势:

线性扩展,随着数据量增多可以通过节点扩展进行支撑
数据存储在hdfs上,备份机制健全
通过zookeeper协调查找数据,访问速度块。

3、HBase特点

海量存储

HBase 适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与HBase的极易扩展性息息相关。正式因为HBase良好的扩展性,才为海量数据的存储提供了便利。

列式存储

这里的列式存储其实说的是列族(ColumnFamily)存储,HBase 是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。

极易扩展

HBase 的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。

通过横向添加RegionSever的机器,进行水平扩展,提升HBase上层的处理能力,提升HBsae服务更多Region的能力。

高并发

由于目前大部分使用HBase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,HBase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。

稀疏

稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

二、HBase安装

下载地址:http://mirror.bit.edu.cn/apache/hbase/
我的hadoop是2.7.7版本的
解压

[root@node01 HBase]# tar -zxvf hbase-1.4.10-bin.tar.gz

修改配置文件

[root@node01 HBase]# cd hbase-1.4.10/
[root@node01 hbase-1.4.10]# cd conf
[root@node01 conf]# ls
hadoop-metrics2-hbase.properties hbase-env.sh hbase-site.xml regionservers hbase-env.cmd hbase-policy.xml  log4j.properties
[root@node01 conf]# vi hbase-env.sh
#添加以下内容
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_212
export HBASE_HOME=/opt/SoftWare/HBase/hbase-1.4.10
export HBASE_CLASSPATH=$CLASSPATH:$HBASE_HOME/lib
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=false
#注意:有两行内容需要注释掉
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
#export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
[root@node01 conf]# vi hbase-site.xml
#添加以下内容<property><!--HBase数据文件存储路径--><name>hbase.rootdir</name><value>hdfs://node01:9000/hbase</value></property><property><name>hbase.master.port</name><value>16000</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><!--HBase依赖的Zookeeper服务器--><name>hbase.zookeeper.quorum</name><value>node01:2181,node02:2181,node03:2181</value></property><property><!--Zookeeper数据存储目录--><name>hbase.zookeeper.property.dataDir</name><value>/opt/SoftWare/Zookeeper/data</value></property># 添加regionservers节点,类似于Hadoop中的Slaves文件[root@node01 conf]# vi regionservers# 添加以下内容:注意删除localhostnode01node02node03

解决jar包问题

# 找到你的安装位置
[root@node01 lib]# cd /opt/SoftWare/HBase/hbase-1.4.10/lib/
[root@node01 lib]# rm -rf hadoop-*
[root@node01 lib]# rm -rf zookeeper-3.5.5.jar
# 把下面的jar包加进来
hadoop-annotations-2.7.7.jar
hadoop-auth-2.7.7.jar
hadoop-client-2.7.7.jar
hadoop-common-2.7.7.jar
hadoop-hdfs-2.7.7.jar
hadoop-mapreduce-client-app-2.7.7.jar
hadoop-mapreduce-client-common-2.7.7.jar
hadoop-mapreduce-client-core-2.7.7.jar
hadoop-mapreduce-client-jobclient-2.7.7.jar
hadoop-mapreduce-client-shuffle-2.7.7.jar
hadoop-yarn-api-2.7.7.jar
hadoop-yarn-client-2.7.7.jar
hadoop-yarn-common-2.7.7.jar
hadoop-yarn-server-common-2.7.7.jar
zookeeper-3.4.14.jar

在HBase中添加Hadoop的配置文件

#通过软连接的方式创建
[root@node01 conf]# ln -s /opt/SoftWare/Hadoop/hadoop-2.7.7/etc/hadoop/core-site.xml core-site.xml
[root@node01 conf]# ln -s /opt/SoftWare/Hadoop/hadoop-2.7.7/etc/hadoop/hdfs-site.xml hdfs-site.xml

分发

[root@node01 SoftWare]# scp -r HBase root@node02:/opt/SoftWare/
[root@node01 SoftWare]# scp -r HBase root@node03:/opt/SoftWare/

配置HBase的环境变量

[root@node01 SoftWare]# vi /etc/profile
# 添加以下内容
# /etc/profile  全局用户,应用于所有的Shell。
# /$HOME/.profile  当前用户,应用于所有的Shell。
# /etc/bash_bashrc 全局用户,应用于Bash Shell。
# ~/.bashrc 局部当前,应用于Bash Sell。
#HBase环境变量配置
export HBASE_HOME=/opt/SoftWare/HBase/hbase-1.4.10
export PATH=$PATH:$HBASE_HOME/bin
[root@node01 SoftWare]# source /etc/profile

启动HBase

#  启动HBase前先启动Zookeeper和Hadoop
root@node01 SoftWare]# start-hbase.sh

访问WEB UI

访问 http://192.168.17.126:16010/ 192.168.17.126是我的ip

三、HBase的shell操作

## 进入到HBase的Shell
[root@master ~]# hbase shell
## 查看帮助的命令(可以用查看HBASE支持的所有的命令)
hbase(main):001:0> help
## 查看当前的数据库中有哪些表
hbase(main):002:0> list
0 row(s) in 0.2300 seconds
=> []
## 创建表
hbase(main):058:0> create 'student','info'
## 插入数据
## put 表名,rowkey,'列族名:列名',数据
hbase(main):058:0> put 'student','1000001','info:name','zhangsan'
## 扫描整个表的数据
hbase(main):058:0> scan 'student'
## 扫描指定范围的数据
hbase(main):058:0> scan 'student',{STARTROW=>'a',ENDROW=>'ab'}
## 查看指定行中的某一列的数据
hbase(main):058:0> get 'student','1000001','info:sex'
## 查看指定行的所有数据
hbase(main):058:0> get 'student','1000001'
## 更新指定列的数据
hbase(main):012:0> put 'student','1000001','info:name','lisi'
hbase(main):013:0> put 'student','1000001','info:age','100'## 查看表的结构
hbase(main):058:0> describe 'student'
## 统计这个表有多少行
hbase(main):058:0> count 'student'
## 删除某一行的某一列
hbase(main):058:0> delete 'student','1000001','info:sex'
## 直接删除某一行
hbase(main):058:0> deleteall 'student','1000001'
## 清空表数据
hbase(main):058:0> truncate 'student'
#提示:清空表的操作顺序为先disable,然后再truncate。
## 删除表
# 首先需要先让该表为disable状态
hbase(main):058:0> disable 'student'
# 然后才能drop这个表
hbase(main):058:0> drop 'student'
## 变更表信息
hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}
hbase(main):022:0> get 'student','1000001',{COLUMN=>'info:name',VERSIONS=>3}

HBase简介及安装相关推荐

  1. HBase基础【HBase简介、HBase安装、HBase shell操作】

    文章目录 一 HBase简介 1 HBase定义 2 HBase数据模型 (1) HBase逻辑结构 (2) HBase物理存储结构 (3)数据模型 a)Name Space b)Table c)Ro ...

  2. 2021年大数据HBase(二):HBase集群安装操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase集群安装操作 一.上传解压HBase安装包 ...

  3. Redis简介及安装

    Redis简介及安装 文章目录 Redis简介及安装 一.nosql介绍 1.NoSQL 2.NoSQL和SQL数据库的比较: 二.Redis 1.简介 2.Redis特性 3.Redis 优势 4. ...

  4. HBase原理和安装

    HBase的基本概念和安装: Hbase简介 HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储. 官方网站 ...

  5. Cloudera简介和安装部署概述

    Cloudera简介和安装部署概述 原创2016年09月06日 11:27:10 标签: Cloudera / 大数据 / CDH / Hadoop 12285 最近作者在研究Cloudera,并且在 ...

  6. Phoenix简介和安装

    文章目录 Phoenix简介及安装 1.Phoenix简介 2.安装 3.Phoenix Shell命令 4.表的映射 测试 存在的一些问题 Phoenix简介及安装 1.Phoenix简介 定义:通 ...

  7. Java:计算机编程语言Java的简介、安装(编程环境/工具)、学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略

    Java:计算机编程语言Java的简介.安装(编程环境/工具).学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编 ...

  8. Redis6 系列一 简介与安装

    Redis6 系列一 简介与安装 穆成祥 千缘科技 1.      NoSQL数据库简介 1.1.  技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML. ...

  9. 大数据技术之HBase(一)HBase简介、HBase快速入门、HBase进阶

    文章目录 1 HBase 简介 1.1 HBase 定义 1.2 HBase 数据模型 1.2.1 HBase 逻辑结构 1.2.2 HBase 物理存储结构 1.2.3 数据模型 1.3 HBase ...

最新文章

  1. c#.net调用pdf2swf.exe将pdf文件转换为swf,vs中运行正常,布署IIS服务器部署转换后文字部分为空白...
  2. MySQL从删库到跑路
  3. 安卓连接mysql客户端_安卓客户端与mysql服务器端数据交互
  4. 【规范】前端编码规范——jquery 规范
  5. 《游戏脚本的设计与开发》-第一部分总结 文字脚本的功能扩展和一个游戏测试...
  6. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
  7. python easy install 编译_python安装easy_install和pip
  8. word手写字体以假乱真_Word小技巧|打印作文草稿纸
  9. php的socket,PHP Socket范例
  10. 使用STL中的list容器实现单链表的操作
  11. CSS浮动元素的水平居中
  12. 旋转音乐html,css3可控旋转音乐播放按钮
  13. 6-vue-component
  14. UVA 10341 Solve It
  15. 判断字符是数字字符还是大写字符或者是小写字符
  16. R语言编程技术(2)
  17. 集合之比较接口器+Map家族的HashMap+LinkedHashMap+Hashtable+ConcurrentHashMap
  18. Excel VBA 外贸邮件群发
  19. 如何实现用户关系的自动绑定?
  20. Ubuntu 20.04安装RTL8812BU网卡驱动教程

热门文章

  1. 【小迪实地】Webdav安全配置相关与漏洞利用
  2. 复频域求零输入响应_零输入响应是齐次解的一部分
  3. 2017-2018-2 20155203《网络对抗技术》Exp9 :Web安全基础
  4. 【大数据技术基础系列】列式数据库与基于行的数据库存储数据结构
  5. npm,nodejs如何升级
  6. 辗转相除法的原理,一看就懂,一学就会
  7. 机器学习(三):线性模型
  8. 【你又有一个好消息】荣获2022年国民技术MCURT-Thread设计大赛获奖榜单头名
  9. ubuntu18 usb耳机,ubuntu18.04 调试USB声卡
  10. 美国大学工程计算机排名,美国大学Computer Engineering 计算机工程专业排名