HBase
Posted 亿钱君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase相关的知识,希望对你有一定的参考价值。
HBase
- 第 1 章 HBase 原理、简介
- 第 2 章 HBase 快速入门
- 第 3 章 HBase数据结构
- 第 4 章 HBase原理
- 第 6 章 HBase API操作
- 第 7 章 HBase优化
- 第8章 扩展
第 1 章 HBase 原理、简介
1.1 HBase 定义
- Hbase是分布式面向列(统计分析)存储数据库
- HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统
- HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。
- 几十亿级别数据,秒级响应,耗资源,但速度快!!!
前面提到的方式合到一块来解决数据存储问题!!!
1.2 HBase 特点
- 1)海量存储
- 2)列式存储
- 3)极易扩展
- 4)高并发(多核)
- 5)稀疏:列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的
1.3 HBase 基本架构
- 1)Client:
- 2)Zookeeper
- 3)Hmaster(NameNode)
- 4)HregionServer(DataNode)
- 5)HDFS:HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持
1.3 HBase安装
第 2 章 HBase 快速入门
2.1 HBase 安装部署
2.1.1 Zookeeper 正常部署
2.1.2 Hadoop 正常部署
2.1.3 HBase 的解压
2.1.4 HBase 的配置文件
修改 HBase 对应的配置文件。(hbase/conf目录下)
- 1)hbase-env.sh 修改内容:
- 2)hbase-site.xml 修改内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:8020/HBase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
-
3)regionservers:
-
4)软连接 hadoop 配置文件到 HBase:
[atguigu@hadoop102 module]$ ln -s /opt/module/hadoop-3.1.3//etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
[atguigu@hadoop102 module]$ ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
2.1.5 HBase 远程发送到其他集群
[atguigu@hadoop102 module]$ xsync hbase/
注意:
2.1.6 HBase 服务的启动
2.1.7 查看 HBase 页面
2.2 HBase Shell 操作
2.2.1 基本操作
1.进入 HBase 客户端命令行
[atguigu@hadoop102 hbase]$ bin/hbase shell
2.2.2 表的操作
注意:删除问题
第 3 章 HBase数据结构
3.1 RowKey:行键
- 与nosql数据库们一样,RowKey是用来检索记录的主键
- RowKey行键 (RowKey)可以是任意字符串
- 访问HBASE table中的行,只有三种方式:
3.2 Column Family:列族
- 列族:HBASE表中的每个列,都归属于某个列族
- 列族是表的schema的一部 分(而列不是),必须在使用表之前定义
- 列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。
3.3 Cell、Time Stamp
、、、、
3.4 命名空间
注:删除命名空间时,如命名空间有表,需先删除表后才能删除
第 4 章 HBase原理
4.1 读流程
查询效率低!!!!!!,Hbase是统计分析的,不是用来查询的
4.2 写流程
4.3 数据flush过程
4.4 数据合并过程
第 6 章 HBase API操作
6.1 环境准备
6.2 HBaseAPI
6.2.1 获取Configuration对象
6.2.2 判断表是否存在
6.2.3 创建表
6.2.4 删除表
6.2.5 向表中插入数据
6.2.6 删除多行数据
6.2.7 获取所有数据
6.2.8 获取某一行数据
6.2.9 获取某一行指定“列族:列”的数据
6.3 MapReduce
- 通过 HBase 的相关 JavaAPI,我们可以实现伴随 HBase 操作的 MapReduce 过程,
- 比如使用MapReduce 将数据从本地文件系统导入到 HBase 的表中,
- 比如我们从 HBase 中读取一些原始数据后使用 MapReduce 做数据分析。
6.3.1 官方 HBase-MapReduce
第 7 章 HBase优化
7.1 高可用
7.2 预分区
7.3 RowKey设计
7.4 内存优化
7.5 基础优化
第8章 扩展
8.1 HBase在商业项目中的能力
8.2 布隆过滤器
8.3 HBase2.0新特性
以上是关于HBase的主要内容,如果未能解决你的问题,请参考以下文章