共计 1552 个字符,预计需要花费 4 分钟才能阅读完成。
初接触 Hadoop 技术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证 Hive,Pig,HBase 这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?…. 请教了 ^_^ 没关系这里我帮大家理清每个技术的原理和思路。
Pig
一种操作 hadoop 的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了。当初雅虎自己慢慢退出 pig 的维护之后将它开源贡献到开源社区由所有爱好者来维护。不过现在还是有些公司在用,不过我认为与其使用 pig 不如使用 hive。:)
Pig 是一种数据流语言,用来快速轻松的处理巨大的数据。
Pig 包含两个部分:Pig Interface,Pig Latin。
Pig 可以非常方便的处理 HDFS 和 HBase 的数据,和 Hive 一样,Pig 可以非常高效的处理其需要做的,通过直接操作 Pig 查询可以节省大量的劳动和时间。当你想在你的数据上做一些转换,并且不想编写 MapReduce jobs 就可以用 Pig.
Hive
不想用程序语言开发 MapReduce 的朋友比如 DB 们,熟悉 SQL 的朋友可以使用 Hive 开离线的进行数据处理与分析工作。
注意 Hive 现在适合在离线下进行数据的操作,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操作,因为一个字“慢”。相反
起源于 FaceBook,Hive 在 Hadoop 中扮演数据仓库的角色。建立在 Hadoop 集群的最顶层,对存储在 Hadoop 群上的数据提供类 SQL 的接口进行操作。你可以用 HiveQL 进行 select,join, 等等操作。
如果你有数据仓库的需求并且你擅长写 SQL 并且不想写 MapReduce jobs 就可以用 Hive 代替。
HBase
HBase 作为面向列的数据库运行在 HDFS 之上,HDFS 缺乏随即读写操作,HBase 正是为此而出现。HBase 以 Google BigTable 为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。
HBase 是一个数据库,一个 NoSql 的数据库,像其他数据库一样提供随即读写功能,Hadoop 不能满足实时需要,HBase 正可以满足。如果你需要实时访问一些数据,就把它存入 HBase。
你可以用 Hadoop 作为静态数据仓库,HBase 作为数据存储,放那些进行一些操作会改变的数据。
Pig VS Hive
Hive 更适合于数据仓库的任务,Hive 主要用于静态的结构以及需要经常分析的工作。Hive 与 SQL 相似促使 其成为 Hadoop 与其他 BI 工具结合的理想交集。
Pig 赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。
Pig 相比 Hive 相对轻量,它主要的优势是相比于直接使用 Hadoop Java APIs 可大幅削减代码量。正因为如此,Pig 仍然是吸引大量的软件开发人员。
Hive 和 Pig 都可以与 HBase 组合使用,Hive 和 Pig 还为 HBase 提供了高层语言支持,使得在 HBase 上进行数据统计处理变的非常简单
Hive VS HBase
Hive 是建立在 Hadoop 之上为了减少 MapReduce jobs 编写工作的批处理系统,HBase 是为了支持弥补 Hadoop 对实时操作的缺陷的项目。
想象你在操作 RMDB 数据库,如果是全表扫描,就用 Hive+Hadoop, 如果是索引访问,就用 HBase+Hadoop。
Hive query 就是 MapReduce jobs 可以从 5 分钟到数小时不止,HBase 是非常高效的,肯定比 Hive 高效的多。
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)