当前位置: 首页 > news >正文

hbase基础

hbase安装

tar -zxvf hbase-2.4.11-bin.tar.gz -C .
ln -s f hbase-2.4.11-bin hbasemv /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak

vim conf/regionservers

node1
node2
node3

vim conf/hbase-env.sh

# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=false
#设置不扫描hadoop的jar,如果扫描很容易出现异常object is not an instance of declaring class
#参考https://blog.csdn.net/yhj_911/article/details/125481762
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

vim conf/hbase-env.sh

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>node1,node2,node3</value></property><property><name>hbase.rootdir</name><value>hdfs://node2:8020/hbase</value></property>
</configuration>

root@node2 ~: sudo /home/hadoop/bin/xsync hbase-2.4.11-bin
ln -s hbase-2.4.11-bin hbase

vim /etc/profile

export HBASE_HOME=/export/server/hbase
$PATH=$HBASE_HOME/bin

source /etc/profile
root@node2 ~: sudo /home/hadoop/bin/xsync /etc/profile
source /etc/profile

HA

touch conf/backup-masters
echo node1 > conf/backup-masters
xsync conf

定义

数据模型

在这里插入图片描述
d8d
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

linux系统中可以检查xml的正确性

如果有问题才会打印输出
xmllint -noout hbase-site.xml

HBASE简介

HBase是一个开源的、分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力。它能够直接使用本地文件系统,也可使用Hadoop的HDFS文件存储系统。不过,为了提升数据的可靠性和系统的健壮性,而且发挥HBase处理大数据的能力,使用HDFS做为文件存储系统才更为稳妥。html

HBase存储的数据从逻辑上来看就像一张很大的表,而且它的数据列能够根据须要动态地增长。除此以外,每一个单元(cell,由行和列所肯定的位置)中的数据又能够具备多个版本(经过时间戳来区别)。从下图能够看出,HBase还具备这样的特色:它向下提供了存储,向上提供了运算。另外,在HBase之上还可使用Hadoop的MapReduce计算模型来并行处理大规模数据,这也是它具备强大性能的核心所在。它将数据存储与并行计算完美地结合在一块儿。
HBase 和 HDFSweb

HDFSHBase
HDFS是适于存储大容量文件的分布式文件系统。HBase是创建在HDFS之上的数据库。
HDFS不支持快速单独记录查找。HBase提供在较大的表快速查找。
它提供了高延迟批量处理;没有批处理概念。它提供了数十亿条记录低延迟访问单个行记录(随机存取)。
它提供的数据只能顺序访问。HBase内部使用哈希表和提供随机接入,而且其存储索引,可将在HDFS文件中的数据进行快速查找。

HBASE表具备如下特色:

大:一个表能够有上亿行,上百万列
面向列:面向列(族)的存储和权限控制,列(族)独立检索。
稀疏:对于为空(null)的列,并不占用存储空间,所以,表能够设计的很是稀疏。
HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family)。下面是HBASE表的逻辑视图:数据

在这里插入图片描述

hbase shell

list
disable ‘member’
enable ‘member’
put ‘member’,‘zhansan’,‘info:age’,‘24’
scan ‘member’
在这里插入图片描述

将数据记录到时间戳

hbase:001:0> import java.text.SimpleDateFormat
=> [Java::JavaText::SimpleDateFormat]
hbase:002:0> import java.text.ParsePosition
=> [Java::JavaText::ParsePosition]
hbase:003:0> SimpleDateFormat.new("yy/MM/dd HH:mm:ss").parse("08/08/16 20:56:29", ParsePosition.new(0)).getTime()
=> 1218891389000
hbase:004:0> 

查询 Shell 配置和shell设置配置

@shell.hbase.configuration.get(“hbase.rpc.timeout”)
@shell.hbase.configuration.setInt(“hbase.rpc.timeout”, 61010)

HBase数据模型

在 HBase 中,数据模型同样是由表组成的,各个表中又包含数据行和列,在这些表中存储了 HBase 数据。在本节中,我们将介绍 HBase 数据模型中的一些术语。

表(Table)
HBase 会将数据组织进一张张的表里面,一个 HBase 表由多行组成。

行(Row)
HBase 中的一行包含一个行键和一个或多个与其相关的值的列。在存储行时,行按字母顺序排序。出于这个原因,行键的设计非常重要。目标是以相关行相互靠近的方式存储数据。常用的行键模式是网站域。如果你的行键是域名,则你可能应该将它们存储在相反的位置(org.apache.www,org.apache.mail,org.apache.jira)。这样,表中的所有 Apache 域都彼此靠近,而不是根据子域的第一个字母分布。

列(Column)
HBase 中的列由一个列族和一个列限定符组成,它们由:(冒号)字符分隔。

列族(Column Family)
出于性能原因,列族在物理上共同存在一组列和它们的值。在 HBase 中每个列族都有一组存储属性,例如其值是否应缓存在内存中,数据如何压缩或其行编码是如何编码的等等。表中的每一行都有相同的列族,但给定的行可能不会在给定的列族中存储任何内容。

列族一旦确定后,就不能轻易修改,因为它会影响到 HBase 真实的物理存储结构,但是列族中的列标识(Column Qualifier)以及其对应的值可以动态增删。

列限定符(Column Qualifier)
列限定符被添加到列族中,以提供给定数据段的索引。鉴于列族的content,列限定符可能是content:html,而另一个可能是content:pdf。虽然列族在创建表时是固定的,但列限定符是可变的,并且在行之间可能差别很大。

单元格(Cell)
单元格是行、列族和列限定符的组合,并且包含值和时间戳,它表示值的版本。

时间戳(Timestamp)
时间戳与每个值一起编写,并且是给定版本的值的标识符。默认情况下,时间戳表示写入数据时 RegionServer 上的时间,但可以在将数据放入单元格时指定不同的时间戳值。

content:html 列族 column family
content: 列 , html:限定符 column qualifier
cell: 单元格
timestamp 时间戳:版本值的标识符

列的限定符,是列族中数据的索引;列族创建表格时是固定的,但是列的限定符是动态并且行与行之间的差别也是特别大的
列都给属于某个列族,否则(Column family 字段名 does not exis)
权限控制、存储、调优都是在列族层面进行的
cell:由行和列交叉决定;单元格是有版本的;单元格的内容是未解析的字节数组;
单元格由行,列族,列的限定符,值,代表版本的时间戳组成,唯一确定单元格,cell中的数据没有类型的字节数组;

表格视为一组稀疏的行的集合,但他们是按照列族进行物理存储的。
默认压缩过程中清除所有删除标记
对同一行的put操作保证了事务的ACID(原子性,一致性,隔离性,持久性),多行事务

row key

Hotspotting热发现

参考信息:
http://noobyard.com/article/p-awtllgdc-gs.html
https://www.w3cschool.cn/hbase_doc/hbase_doc-4poq2lqf.html

http://www.lryc.cn/news/109814.html

相关文章:

  • 【GitOps系列】如何实施自动化渐进式交付?
  • 【网络】网络层(IP协议)
  • Unity数字可视化学校_昼夜(一)
  • QWidget样式
  • TypeScript基础学习
  • AOF日志:宕机了,Redis如何避免数据丢失
  • 【编程】典型题目:寻找数组第K大数(四种方法对比)
  • Vue3 对比 Vue2 的变化
  • harbor搭建
  • 机器学习05-数据准备(利用 scikit-learn基于Pima Indian数据集作数据预处理)
  • 【枚举+trie+dfs】CF514 C
  • 【计算机视觉】BLIP:统一理解和生成的自举多模态模型
  • 【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构
  • Spring中的事务
  • 38 非法地址访问的 segment fault 的调试
  • c++中c_str()的用法详解
  • 谈谈关于新能源汽车的话题
  • EventBus 开源库学习(二)
  • 4_Apollo4BlueLite电源管理
  • Pytorch入门学习——快速搭建神经网络、优化器、梯度计算
  • 举例说明typescript的Exclude、Omit、Pick
  • 记录一次Linux环境下遇到“段错误核心已转储”然后利用core文件解决问题的过程
  • WPF中自定义Loading图
  • 用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
  • 叮咚买菜财报分析:叮咚买菜第二季度财报将低于市场预期
  • 设计模式行为型——中介者模式
  • Vue——formcreate表单设计器自定义组件实现(二)
  • 人脸验证(Face verification) 和 人脸识别(Face recognition) 的区别
  • 前端如何打开钉钉(如何唤起注册表中路径与软件路径不关联的软件)
  • 数据可视化入门指南