1.HIVE 和 HBASE 区别 https://www.cnblogs.com/justinzhang/p/4273470.html
1. 两者分别是什么?
Apache Hive 是一个构建在 Hadoop 基础设施之上的数据仓库. 通过 Hive 可以使用 HQL 语言查询存放在 HDFS 上的数据. HQL 是一种类 SQL 语言, 这种语言最终被转化为 Map/Reduce. 虽然 Hive 提供了 SQL 查询功能, 但是 Hive 不能够进行交互查询 -- 因为它只能够在 Haoop 上批量的执行 Hadoop.
Apache HBase 是一种 Key/Value 系统, 它运行在 HDFS 之上. 和 Hive 不一样, Hbase 的能够在它的数据库上实时运行, 而不是运行 MapReduce 任务. Hive 被分区为表格, 表格又被进一步分割为列簇. 列簇必须使用 schema 定义, 列簇将某一类型列集合起来(列不要求 schema 定义). 例如,"message" 列簇可能包含:"to", "from" "date", "subject", 和 "body". 每一个 key/value 对在 Hbase 中被定义为一个 cell, 每一个 key 由 row-key, 列簇, 列和时间戳. 在 Hbase 中, 行是 key/value 映射的集合, 这个映射通过 row-key 来唯一标识. Hbase 利用 Hadoop 的基础设施, 可以利用通用的设备进行水平的扩展.
2. 两者的特点
Hive 帮助熟悉 SQL 的人运行 MapReduce 任务. 因为它是 JDBC 兼容的, 同时, 它也能够和现存的 SQL 工具整合在一起. 运行 Hive 查询会花费很长时间, 因为它会默认遍历表中所有的数据. 虽然有这样的缺点, 一次遍历的数据量可以通过 Hive 的分区机制来控制. 分区允许在数据集上运行过滤查询, 这些数据集存储在不同的文件夹内, 查询的时候只遍历指定文件夹 (分区) 中的数据. 这种机制可以用来, 例如, 只处理在某一个时间范围内的文件, 只要这些文件名中包括了时间格式.
HBase 通过存储 key/value 来工作. 它支持四种主要的操作: 增加或者更新行, 查看一个范围内的 cell, 获取指定的行, 删除指定的行, 列或者是列的版本. 版本信息用来获取历史数据(每一行的历史数据可以被删除, 然后通过 Hbase compactions 就可以释放出空间). 虽然 HBase 包括表格, 但是 schema 仅仅被表格和列簇所要求, 列不需要 schema.Hbase 的表格包括增加 / 计数功能.
3. 限制
Hive 目前不支持更新操作. 另外, 由于 hive 在 hadoop 上运行批量操作, 它需要花费很长的时间, 通常是几分钟到几个小时才可以获取到查询的结果. Hive 必须提供预先定义好的 schema 将文件和目录映射到列, 并且 Hive 与 ACID 不兼容.
HBase 查询是通过特定的语言来编写的, 这种语言需要重新学习. 类 SQL 的功能可以通过 Apache Phonenix 实现, 但这是以必须提供 schema 为代价的. 另外, Hbase 也并不是兼容所有的 ACID 特性, 虽然它支持某些特性. 最后但不是最重要的 -- 为了运行 Hbase,Zookeeper 是必须的, zookeeper 是一个用来进行分布式协调的服务, 这些服务包括配置服务, 维护元信息和命名空间服务.
4. 应用场景
Hive 适合用来对一段时间内的数据进行分析查询, 例如, 用来计算趋势或者网站的日志. Hive 不应该用来进行实时的查询. 因为它需要很长时间才可以返回结果.
Hbase 非常适合用来进行大数据的实时查询. Facebook 用 Hbase 进行消息和实时的分析. 它也可以用来统计 Facebook 的连接数.
5. 总结
Hive 和 Hbase 是两种基于 Hadoop 的不同技术 --Hive 是一种类 SQL 的引擎, 并且运行 MapReduce 任务, Hbase 是一种在 Hadoop 之上的 NoSQL 的 Key/vale 数据库. 当然, 这两种工具是可以同时使用的. 就像用 Google 来搜索, 用 Facebook 进行社交一样, Hive 可以用来进行统计查询, HBase 可以用来进行实时查询, 数据也可以从 Hive 写到 Hbase, 设置再从 Hbase 写回 Hive.
2,Hbase 优化
参考博客: https://www.cnblogs.com/LHWorldBlog/p/8299363.html
3,Hbase 架构
参考博客: https://www.yiibai.com/hbase/hbase_architecture.html
4,Sql 优化
参考博客:
5,MapReduce 工作原理
参考: https://www.cnblogs.com/hadoop-dev/p/5894911.html
5, 数据库左连接, 右连接, 内连接
参考:
来源: http://www.bubuko.com/infodetail-3059412.html