一:Hbase和Hive对比
- Hive简介
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,
可以将sql语句转换为MapReduce任务进行运行。
Hive 是建立在 Hadoop 之上为了降低 MapReduce 编程复杂度的 ETL 工具。
Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询。
Hive适用于离线的数据分析和清洗,延迟较高。
Hive存储的数据依旧在DataNode上,编写的HQL语句终将是转换为MapReduce代码执行。
Hive 表是纯逻辑表,因为 Hive 的本身并不能做数据存储和计算,而是完全依赖 Hadoop
Hive 是数据仓库工具,需要全表扫描,就用 Hive,因为 Hive 是文件存储,运行Hive查询会花费很长时间,
因为它会默认遍历表中所有的数据。 - Hbase简介
HBase是Hadoop的数据库,一个分布式、可扩展、大数据的存储。
Hbase是一种面向列存储的非关系型数据库。
Hbase用于存储结构化和非结构化的数据,适用于单表非关系型数据的存储,不适合做关联查询,类似JOIN等操作.
Hbase基于HDFS,数据持久化存储的体现形式是Hfile,存放于DataNode中,被ResionServer以region的形式进行管理。
Hbase延迟较低,接入在线业务使用.面对大量的企业数据,HBase可以直线单表大量数据的存储,同时提供了高效的数据访问速度。
HBase通过存储key/value来工作。
HBase 是数据库,需要索引访问,则用 HBase,因为 HBase 是面向列的 NoSQL 数据库.
HBase 是物理表,提供了一张超大的内存 Hash 表来存储索引,方便查询.
HBase 是为了弥补 Hadoop 对实时操作的缺陷
二:Hbase常用的 Shell 操作
三:Hbase数据的备份与恢复
- 简介
停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个
地方,可以是同一个集群,也可以是专用的备份集群。 - 下面我们操作即,把数据转移到当前集群的其他目录下(也可以不在同一个集群中):
a:我们将下面hdfs上的/hbase备份到另外一个目录下
- 命令如下:
- 效果
四:Hbase高可用
- 简介
在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果
Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。
所以 HBase 支持对 Hmaster 的高可用配置。 - 在hadoop111机器的 /usr/local/module/hbase-1.3.1/conf 目录下创建 backup-masters 文件
hadoop111是之前的master节点,现在是让hadoop112成为备用的master节点 - 分发到其他的两台机器
- 在hadoop111机器上执行启动脚本
- 效果