9.24 Hbase基础

Hbase基础

NoSQL
  • NoSQL:not only SQL,非关系型数据库
  • NoSQL是一个通用术语
    • 指不遵循传统RDBMS模型的数据库
    • 数据是非关系的,且不使用SQL作为主要查询语言
    • 解决数据库的可伸缩性和可用性问题
    • 不针对原子性或一致性问题
为什么使用NoSQL
  • 互联网的发展,传统关系型数据库存在瓶颈
    • 高并发读写
    • 高存储量
    • 高可用性
    • 高扩展性
    • 低成本
NoSQL和关系型数据库对比
  • 主要有以下一些区别
对比NoSQL关系型数据库
常用数据库HBase、MongoDB、RedisOracle、DB2、MySQL
存储格式文档、键值对、图结构表格式,行和列
存储规范鼓励冗余规范性,避免重复
存储扩展横向扩展,分布式纵向扩展(横向扩展有限)
查询方式结构化查询语言SQL非结构化查询
事务不支持事务一致性支持事务
性能读写性能高读写性能差
成本简单易部署,开源,成本低成本高
NoSQL的特点
  • 最终一致性
  • 应用程序增加了维护一致性和处理事务等职责
  • 冗余数据存储
  • NoSQL != 大数据
    • NoSQL产品是为了帮助解决大数据存储问题
    • 大数据不仅仅包含数据存储的问题
      • Hadoop
      • Kafka
      • Spark,etc
NoSQL基础概念
  • 三大基石
    • CAP、BASE、最终一致性
  • Indexing(索引)、Query(查询)
  • MapReduce
  • Sharding
三大基石-1
  • CAP理论
    • 数据库最多支持3个中的2个
      • Consistency(一致性)
      • Availability(可用性)
      • Partition Tolerance(分区容错性)
    • NoSQL不保证“ACID”
    • 提供“最终一致性”

image-20200924160843323

三大基石-2
  • BASE
    • Basically Availble(基本可用)
      • 保证核心可用
    • Soft-state(软状态)
      • 状态可以有一段时间不同步
    • Eventual Consistency(最终一致性)
      • 系统经过一定时间后,数据最终能够达到一致的状态
  • 核心思想是即使无法做到强一致性,但应用可以选择适合的方式达到最终一致性
三大基石-3
  • 最终一致性
    • 最终结果保持一致性,而不是时时一致
    • 如账户余额,库存量等数据需强一致性
    • 如catalog等信息不需要强一致性
      • Causal consistency(因果一致性)
      • Read-your-writes consistency
      • Session consistency
假设有三个独立的Process A B C,
Causal consistency(因果一致性)
如果Process A通知Process B它已经更新了数据,那么Process B的后续读取操作则读取A写入的最新值,而与A没有因果关系的C则可以最终一致性。
Read-your-writes consistency
如果Process A写入了最新的值,那么Process A的后续操作都会读取到最新值。但是其它用户可能要过一会才可以看到。
Session consistency
此种一致性要求客户端和存储系统交互的整个会话阶段保证Read-your-writes consistency.Hibernate的session提供的一致性保证就属于此种一致性。
索引和查询
  • Indexing(索引)
    • 大多数NoSQL是按key进行索引
    • 部分NoSQL允许二级索引
    • HBase使用HDFS,append-only
      • 批处理写入Logged
      • 重新创建并排序文件
  • Query(查询)
    • 没有专门的查询语言,通常使用脚本语言查询
    • 有些开始支持SQL查询
    • 有些可以使用MapReduce代码查询
MapReduce、Sharding
  • MapReduce
    • 不是Hadoop的MapReduce,概念相关
    • 可进行数据的处理查询
  • Sharding(分片)
    • 一种分区模式
    • 可以复制分片
      • 有利于灾难恢复
NoSQL分类
  • 主要分为以下四类
键值存储数据库 (key-value)Redis, MemcacheDB, Voldemort内容缓存等
列存储数据库 (WIDE COLUMN STORE)Cassandra, HBase应对分布式存储的海量数据
文档型数据库 (DOCUMENT STORE)CouchDB, MongoDBWeb应用(可看做键值数据库的升级版)
图数据库 (GRAPH DB)Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等,专注于构建关系图谱
键值存储数据库(Key-Value)

image-20200924161831908

列存储数据库(Wide Column Store)

image-20200924161950196

文档型数据库(Document Store)

image-20200924162156956

图数据库(Graph Databases)

image-20200924162403883

NoSQL和BI、大数据的关系
  • BI(Business Intelligence):商务智能
    • 它是一套完整的解决方案
    • BI应用涉及模型,模型依赖于模式
    • BI主要支持标准SQL,对NoSQL支持弱于关系型数据库
  • NoSQL和大数据相关性较高
    • 通常大数据场景采用列存储数据库
    • 如:HBase和Hadoop
HBase概述
  • HBase是一个领先的NoSQL数据库
    • 是一个面向列存储的数据库
    • 是一个分布式hash map
    • 基于Google Big Table论文
    • 使用HDFS作为存储并利用其可靠性
  • HBase特点
    • 数据访问速度快,响应时间约2-20毫秒
    • 支持随机读写,每个节点20k~100k+ ops/s
    • 可扩展性,可扩展到20,000+节点
HBase发展历史
时间事件
2006年Google发表了关于Big Table论文
2007年第一个版本的HBase和Hadoop0.15.0一起发布
2008年HBase成为Hadoop的子项目
2010年HBase成为Apache顶级项目
2011年Cloudera基于HBase0.90.1推出CDH3
2012年HBase发布了0.94版本
2013-2014HBase先后发布了0.96版本/0.98版本
2015-2016HBase先后发布了1.0版本、1.1版本和1.2.4版本
2017年HBase发布1.3版本
2018年HBase先后发布了1.4版本和2.0版本
HBase用户群体

image-20200924162605562

HBase应用场景-1
  • 增量数据-时间序列数据
    • 高容量,高速写入

image-20200924163219674

HBase应用场景-2
  • 信息交换-消息传递
    • 高容量,高速读写

image-20200924163316129

HBase应用场景-3
  • 应用服务-Web后端应用程序
    • 高容量,高速读写

image-20200924163410312

HBase应用场景示例
  • Facebook
    • 9000 memcached instances,4000 shards mysql
    • 2011全部迁移到HBase
  • Alibaba
    • 自2010年以来,HBase一直为阿里搜索系统的核心存储
    • 当前规模
      • 3 个集群,每个有1000+ nodes
      • 在Yarn上与Flink共享
      • 每天提供超过10M+ ops/s 的服务
Apache HBase生态圈
  • HBase生态圈技术
    1. Lily – 基于HBase的CRM
    2. OpenTSDB – HBase面向时间序列数据管理
    3. Kylin – HBase上的OLAP
    4. Phoenix – SQL操作HBase工具
    5. Splice Machine – 基于HBase的OLTP
    6. Apache Tephra – HBase事务支持
    7. TiDB – 分布式SQL DB
    8. Apache Omid - 优化事务管理
    9. Yarn application timeline server v.2 迁移到HBase
    10. Hive metadata存储可以迁移到HBase
    11. Ambari Metrics Server将使用HBase做数据存储
HBase物理架构-概述
  • HBase采用Master/Slave架构

image-20200924163635721

HBase物理架构 - HMaster
  • HMaster的作用
    • 是HBase集群的主节点,可以配置多个,用来实现HA
    • 管理和分配Region
    • 负责RegionServer的负载均衡
    • 发现失效的RegionServer并重新分配其上的Region
HBase物理架构 - RegionServer
  • RegionServer负责管理维护Region

image-20200924163737553

HBase物理架构 - Region和Table

image-20200924163754218

HBase逻辑架构 - Row
  • Rowkey(行键)是唯一的并已排序
  • Schema可以定义何时插入记录
  • 每个Row都可以定义自己的列,即使其他Row不使用
    • 相关列定义为列族
  • 使用唯一时间戳维护多个Row版本
    • 在不同版本中值类型可以不同
  • HBase数据全部以字节存储

image-20200924163837305

HBase数据管理
  • 数据管理目录
    • 系统目录表hbase:meta
      • 存储元数据等
    • HDFS目录中的文件
    • Servers上的region实例
  • HBase数据在HDFS上
    • 可以通过HDFS进行修复File
    • 修复路径
      • RegionServer->Table->Region-

image-20200924163931936

Hbase架构特点
  • 强一致性
  • 自动扩展
    • 当Region变大会自动分割
    • 使用HDFS扩展数据并管理空间
  • 写恢复
    • 使用WAL(Write Ahead Log)
  • 与Hadoop集成
HBase Shell
  • HBase Shell是一种操作HBase的交互模式
    • 支持完整的HBase命令集
命令类别命令
Generalversion, status, whoami, help
DDLalter, create, describe, disable, drop, enable, exists, is_disabled, is_enabled, list
DMLcount, delete, deleteall, get, get_counter, incr, put, scan, truncate
Toolsassign, balance_switch, balancer, close_region, compact, flush, major_compact, move, split, unassign, zk_dump
Replicationadd_peer, disable_peer, enable_peer, remove_peer, start_replication, stop_replication
hbase基本命令:
用户权限:
	user_permission ['表名'...]
	grant '用户名','RWXCA'
表:
	增:create '表名',{NAME=>'列簇名'},{NAME=>'列簇名'}...
	删:disable '表名'----> drop '表名'
	改:snapshot '表名','镜像名'
		clone_snapshot '镜像名','新表名'
		delete_snapshot '镜像名'
	查:list
行:
	put的时候:put '表名','行键','列簇名:列','值'[,时间戳]
	可以单独删除行,行内的数据全部删除
列簇:
	增:alter '表名',NAME=>'列簇名'
	删:alter '表名',NAME=>'列簇名',METHOD=>'delete'
	改:先加,后删
	查:get '表名','行键','列簇名'
列:
cell:值+时间戳

批量导入文件:

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns="HBASE_ROW_KEY,emp:name,emp:job_title,emp:company,time:sDate,time:eDate" "emp_basic" /test/emp_basic.csv
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Mendix 9.24.2是低代码开发平台Mendix的一个版本。要安装Mendix 9.24.2,您需要按照以下步骤操作: 首先,您需要从Mendix官方网站(https://www.mendix.com/)下载Mendix 9.24.2的安装文件。在网站上,您可以找到Mendix的下载页面,并选择适合您操作系统的安装文件。 下载完成后,双击安装文件开始安装程序。您将被引导到安装向导界面。按照向导的提示,选择安装语言、安装路径和其他设置。确保您具有管理员权限,否则可能无法完成安装过程。 安装过程可能需要一些时间,具体取决于您的计算机性能和网络速度。请耐心等待,直到安装完成。 安装完成后,打开Mendix的安装路径,您将找到Mendix Studio Pro的快捷方式。双击该快捷方式启动Mendix Studio Pro。 在Mendix Studio Pro中,您需要登录或注册Mendix账户。如果已经拥有Mendix账户,请输入您的登录凭据进行登录。如果没有账户,请按照界面上的引注册一个新账户。 登录后,您可以开始使用Mendix 9.24.2进行低代码应用开发。根据您的需求,您可以创建新的应用、导入现有项目或浏览Mendix的示例模板。 总之,安装Mendix 9.24.2需要下载安装文件、执行安装程序、登录Mendix账户等步骤。安装完成后,您可以开始使用Mendix Studio Pro进行低代码应用开发。 ### 回答2: 要安装 Mendix 9.24.2,你可以按照以下步骤进行操作: 1. 首先,确保你的计算机符合 Mendix 9.24.2 的系统要求。Mendix 9.24.2 可以在 Windows、Mac 和 Linux 系统上运行,并需要一定的计算机性能和软件环境。 2. 访问 Mendix 官方网站并登录你的账号。如果你还没有账号,需要注册一个新的账号。 3. 在 Mendix 官网的下载页面,浏览下载选项,找到 Mendix 9.24.2 的安装包。根据你的操作系统选择相应的安装包进行下载。 4. 下载完成后,双击安装包运行安装程序。根据安装向导的示,选择安装位置和其他可选设置。确保你已经阅读并同意安装程序的许可协议。 5. 安装程序会开始自动执行安装过程。这可能需要一些时间,具体取决于你的计算机性能和网络速度。 6. 安装完成后,你可以选择启动 Mendix Studio。根据引输入你的 Mendix 账号信息,创建一个新的项目或者导入现有的项目。 7. 一旦项目加载完毕,你就可以开始使用 Mendix Studio 进行开发。Mendix Studio 提供了一套图形化的工具,帮助你建立应用程序的用户界面、逻辑和模型。 以上就是安装 Mendix 9.24.2 的简要步骤。请记住,具体的安装过程可能因操作系统和个人设置而有所不同,建议你参考 Mendix 官方文档或向他们的支持团队寻求帮助。 ### 回答3: Mendix 9.24.2是低代码开发平台Mendix的一个版本。要安装Mendix 9.24.2,您可以按照以下步骤进行操作: 1. 首先,确保您的计算机系统满足Mendix 9.24.2的系统要求。您可以在Mendix官方网站上找到这些要求。 2. 在Mendix官方网站上下载Mendix 9.24.2的安装程序。安装程序通常是一个可执行文件,具有.msi文件扩展名。 3. 双击安装程序,开始安装过程。您可能需要管理员权限才能执行此操作。 4. 跟随安装向导的示进行操作。通常,您需要同意许可协议、选择安装目录和组件,并选择其他选项,如更新现有安装或创建桌面快捷方式。 5. 完成安装后,您可以在安装目录中找到Mendix 9.24.2的安装文件。您可以选择在桌面上创建快捷方式,以方便您访问平台。 6. 打开Mendix 9.24.2,您将被要求登录或注册。如果已经有一个Mendix账户,您可以使用该账户登录。否则,您需要注册一个新账户。 7. 登录后,您可以开始使用Mendix 9.24.2进行低代码应用开发。您可以使用平台的各种工具和功能,创建自定义应用程序,连接据源,设计用户界面等等。 总的来说,安装Mendix 9.24.2是一个比较简单的过程。只要您按照安装向导的示进行操作,您应该能够成功安装和启动Mendix 9.24.2,开始使用这个强大的低代码开发平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值