热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hbase学习(一)

Hbase一、概念1.什么是Hbase官方解释:Hbase是一个开源的非关系型分布式数据库。它是一个基于Hadoop的分布式,可扩展,
Hbase

一、 概念

1. 什么是Hbase
官方解释 : Hbase是一个开源的非关系型分布式数据库。它是一个基于Hadoop的分布式,可扩展,巨大数据仓库。
总结 : Hbase是一个高可靠高性能面向列可伸缩的分布式数据库。是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。当用户需要对海量数据进行实时(时效性)、随机(记录级别数据)读/写,用户可以使用Hbase。

常见的NoSQL数据库分类:Key-Value型: Redis、SSDB文档型(Document): MongoDB、Elasticsearch、Solr列存储:HBase图像:Neo4j和关系型数据库不同,NoSQL不同种类之间不可相互替换。

2. HDFS和Hbase的区别
Hbase是构建在HDFS之上的一个数据库服务,能够使用户通过Hbase数据库服务间接的操作HDFS,能够使用户对HDFS上的数据实现CRUD操作(细粒度操作)。

3. Hbase特性

  • 线性和模块化扩展
  • 严格一致reads和writes
  • 表的自动和可配置分片(自动分区)
  • RegionServers之间的自动故障转移支持
  • 方便的基类,用于使用Apache Hbase表支持Hadoop MapReduce作业。
  • 易于使用的Java API,用于客户端访问。
  • Block cache和Bloom Filters 以进行实时查询

4. Hbase的意义

  • Hbase可以满足大规模数据实时处理应用的需求: HadoopMapReduce编程框架的高延迟数据处理机制,使得Hadoop无法满足大规模数据实时处理应用的需求。

  • Hbase可以实现随机访问。

  • 具有高扩展性和高性能: 传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题

  • 节省存储空间: 传统关系数据库在数据结构变化时一般需要停机维护;空列浪费存储空间。

    5. 行存储的缺点

  • IO利用率低:当我们需要某些字段时,行存储读取的是一行的数据,所有会出现多余的字段部分。这一部分IO的读取对于系统而言浪费。

  • 磁盘利用率低:关系型数据库不支持稀疏存储(null值不存储),导致null值也会占用磁盘空间,给系统带来磁盘空间的浪费。

    6. Hbase的结构

  • 命名空间:0.96版本开始支持,是对多个表的逻辑分组,类似于关系数据库的database。

  • 表(table): 一张表中包含若干行。

  • 行(row): 一行包括一个行键(Row Key)和若干列簇,一张表中的行按照行键排序,并用行键作为索引。

  • 列簇(column family): 每个列簇包含若干个列,列簇需要在建表时预定义,运行期间可以动态加入新的列。

  • 单元格(cell): 存储的每一个值存放在一个单元格中。

  • 版本(时间戳):默认是时间戳格式,同一列中可能包含若干单元格,这些单元格有版本号唯一区分,根据版本号降序排列。

    7.列存储
    在这里插入图片描述

    在这里插入图片描述

  • 将IO特性相似的列归为一个簇,Hbase底层在检索的时候以列簇为最小文件加载单位。

  • Hbase中所有的记录都是按照一定顺序排列的,ROWKEY>列簇>列名字>时间戳。默认查询返回时间戳最新版本记录。

  • 支持稀疏存储

  • 磁盘IO利用率100%

缺点:查询的值包含ROWKEY/列信息/时间戳

二、Hbase安装(单机版)


HDFS基本环境

1.安装JDK,配置环境变量JAVA_HOME
rpm -ivh jdk-8u171-linux-x64.rpm (安装JDK)
在这里插入图片描述
vi .bashrc(配置用户环境变量。/etc/profile是系统环境变量)
在这里插入图片描述
source .bashrc(重新加载资源)
jps(查看java相关的进程)

2.关闭防火墙
systemctl stop firewalld # 关闭 服务
systemctl disable firewalld # 关闭开机自启动
3.配置主机名和IP映射关系
vi /etc/hostname
在这里插入图片描述
vi /etc/hosts(配置映射关系)
在这里插入图片描述
4.配置SSH免密登录
ssh-keygen -t rsa(生成公私钥对 rsa:以rsa算法生成公私钥)
在这里插入图片描述
ssh-copy-id CentOS(将公钥添加到受信列表)

5.上传Hadoop安装包,并解压到/usr目录
在这里插入图片描述
6.配置HADOOP_HOME环境变量
在这里插入图片描述
7. 修改core-site.xml
vi /usr/hadoop-2.9.2/etc/hadoop/core-site.xml

<!--nn访问入口-->
<property><name>fs.defaultFS</name><value>hdfs://CentOS:9000</value>
</property>
<!--hdfs工作基础目录-->
<property><name>hadoop.tmp.dir</name><value>/usr/hadoop-2.9.2/hadoop-${user.name}</value>
</property>

8. 修改hdfs-site.xml
vi /usr/hadoop-2.9.2/etc/hadoop/hdfs-site.xml

<!--block副本因子-->
<property><name>dfs.replication</name><value>1</value>
</property>
<!--配置Sencondary namenode所在物理主机-->
<property><name>dfs.namenode.secondary.http-address</name><value>CentOS:50090</value>
</property>
<!--设置datanode最大文件操作数-->
<property><name>dfs.datanode.max.xcievers</name><value>4096</value>
</property>
<!--设置datanode并行处理能力-->
<property><name>dfs.datanode.handler.count</name><value>6</value>
</property>

9.修改slaves
vi /usr/hadoop-2.9.2/etc/hadoop/slaves
CentOS
10. 格式化NameNode&#xff0c;生成fsimage
在这里插入图片描述
11. 启动HDFS服务
start-dfs.sh

Zookeeper安装(协调)

1. 上传zookeeper的安装包,并解压在/usr目录下
tar -zxf zookeeper-3.4.12.tar.gz -C /usr/
2.配置Zookepeer的zoo.cfg
在这里插入图片描述
在这里插入图片描述
3. 创建zookeeper的数据目录
mkdir /root/zkdata
**4.启动zookeeper服务 **
在这里插入图片描述

Hbase配置与安装(数据库服务)

1. 上传Hbase安装包,并解压到/usr目录下
tar -zxf hbase-1.2.4-bin.tar.gz -C /usr/
2.配置Hbase环境变量HBASE_HOME
在这里插入图片描述
3.配置hbase-site.xml
cd /usr/hbase-1.2.4/
vi conf/hbase-site.xml

<property><name>hbase.rootdir</name><value>hdfs://CentOS:9000/hbase</value>
</property>
<property><name>hbase.cluster.distributed</name><value>true</value>
</property>
<property><name>hbase.zookeeper.quorum</name><value>CentOS</value>
</property>
<property><name>hbase.zookeeper.property.clientPort</name><value>2181</value>
</property>

4.修改hbase-env.sh,将HBASE_MANAGES_ZK修改为false
在这里插入图片描述
export HBASE_MANAGES_ZK&#61;false告知Hbase,使用外部Zookeeper

** 5. 启动Hbase**
在这里插入图片描述

**6.验证Hbase安装是否成功 **
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Shell命令

1. 打开Hbase Shell
在这里插入图片描述
2. 获取帮助
在这里插入图片描述
3. 查看服务器状态
在这里插入图片描述
4.查看版本信息
在这里插入图片描述

Namespace-数据库

1. 创建namespace
在这里插入图片描述
2.查看namespace详情
在这里插入图片描述
3. 修改namespace
在这里插入图片描述
4. 查看所有的namespace
在这里插入图片描述
5. 查看namespace的表
在这里插入图片描述
6. 删除namespace
在这里插入图片描述

表的操作

1. 查看所有表-(用户表)
在这里插入图片描述
2. 创建表
在这里插入图片描述

  • VERSIONS:保留数据版本&#xff0c;默认值1(一共查询到的数量)
  • TTL&#xff1a; 列簇下列存活时间&#xff0c;默认是FOREVER
  • BLOCKCACHE:是否开启缓存&#xff0c;用于加快读
  • IN_MEMORY:设置是否将列簇下所有数据加载内存中&#xff0c;加速读写&#xff0c;默认值false
  • BLOOMFILTER:配置布隆过滤器(一种数据文件过滤机制)&#xff0c;默认值ROW&#xff0c;可选值两个
  • ROW|ROWCOL:如果修改为ROWCOL系统需要额外开销存储列信息作为过滤文件的索引

3. 查看table详情
在这里插入图片描述
4. 禁用表
在这里插入图片描述
**5.启用表 **
在这里插入图片描述
6.截断表
在这里插入图片描述
7.删除表
在这里插入图片描述

DML操作

1.put
在这里插入图片描述
2.get
在这里插入图片描述
3.delete/deleteal
在这里插入图片描述
4.scan
在这里插入图片描述


推荐阅读
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Redis概念
    Redis概念:redis是一款高性能的NOSQL系列的非关系型数据库什么是NOSQLNOSQL(NoSQLNotOnlySQL),意即不仅仅是SQL,是一项全新的数据库理念, ... [详细]
  • 美团优选推荐系统架构师 L7/L8:算法与工程深度融合 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
    开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
  • 如何提升Python处理约1GB数据集时的运行效率?
    如何提升Python处理约1GB数据集时的运行效率?本文探讨了在后端开发中使用Python处理大规模数据集的优化方法。通过分析常见的性能瓶颈,介绍了多种提高数据处理速度的技术,包括使用高效的数据结构、并行计算、内存管理和代码优化策略。此外,文章还提供了在Ubuntu环境下配置和测试这些优化方案的具体步骤,适用于从事推荐系统等领域的开发者。 ... [详细]
  • Hadoop——实验七:MapReduce编程实践
    文章目录一.实验目的二.实验内容三.实验步骤及结果分析 1.基于ubuntukylin14.04(7)版本,安装hadoop-eclipse-kepler-plugi ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
author-avatar
手机用户2502894791
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有