在标题为“Information Platforms and the Rise of the Data Scientist”的文章一文中,Jeff Hammerbacher把“信息平台”描述为“企业摄取(ingest)、处理(process)、生成(generate)信息的行为”与“帮助加速从经验数据中学习”的“中心”。
在Facebook,Jeff团队所构建的信息平台中,最庞大的组成部分是Apache Hive(https://hive.apache.org/)。Hive是一个构建在Hadoop上的数据仓库框架,是应Facebook每天产生的海量新兴社会网络数据进行管理和(机器)学习的需求而产生和发展的。在尝试了不同系统之后,Jeff团队选择Hadoop来存储和处理数据,因为Hadoop的性价比高,同时还能够满足他们的可伸缩性要求。
Hive的设计目的是让精通SQL技能但Java编程技能相对较弱的分析师能够对Facebook存放在HDFS中的大规模数据集执行查询。今天,Hive已经是一个成功的Apache项目,很多组织把它用作一个通用的、可伸缩的数据处理平台。
当然,SQL并不是所有大数据问题的理想工具。例如,它并不适合用来开发复杂的机器学习算法。但它对很多分析任务非常有用,而且它的另一个优势是业内人士都非常熟悉它。此外,SQL是商业智能工具的“通用语言”(可以通过ODBC这一桥梁来用),Hive有条件和这些产品进行集成。
最早提出“数据科学家”这个头衔的人,也是Facebook数据科学团队的负责人,Cloudera的联合创始人。这位出生于1983年的数学天才有一句名言:“我们这一代最杰出的头脑都在拼命思考如何吸引人们点击更多的广告,这个感觉糟透了。”他后来加入纽约著名的西奈山医院,成为一位医学研究者,运用自己的数据分析才能去攻克癌症、老年痴呆症、糖尿病及其他慢性疾病。
本章介绍如何使用Hive。我们假设你用过SQL和常见的数据库体系结构。在介绍Hive特性的同时,我们会经常将这些特性与其传统RDBMS对应部分进行比较。
Apache Hive™数据仓库软件有助于读取,编写和管理驻留在分布式存储中的大型数据集,并使用 SQL 语法进行查询。
构建于Apache Hadoop™之上,Hive 提供以下特性:
Hive 提供标准的 SQL 功能,包括许多后来的SQL:2003,SQL:2011和SQL:2016 features 用于分析。
Hive 的 SQL 也可以通过用户定义函数(UDF),用户定义聚合(UDAF)和用户定义的 table 函数(UDTF)与用户 code 一起扩展。
没有一个“Hive 格式”必须存储数据。 Hive 附带内置连接器,用于逗号和 tab-separated 值(CSV/TSV)文本文件,Apache 实木复合地板 ™,Apache ORC™和其他格式。用户可以使用其他格式的连接器扩展 Hive。有关详细信息,请参阅开发者指南中的文件格式和Hive SerDe。
Hive 不是为在线 transaction 处理(OLTP)工作负载而设计的。它最适用于传统的数据仓库任务。
Hive 旨在通过其输入格式最大化可扩展性(使用动态添加到 Hadoop cluster 的更多机器扩展),performance,extensibility,fault-tolerance 和 loose-coupling。
Hive 的组件包括 HCatalog 和 WebHCat。
以下链接提供对 Apache Hive wiki 文档的访问。此列表不完整,但您可以浏览这些 Wiki 页面以查找其他文档。有关更多信息,请参阅官方Hive 网站。
最新版本的 Hive 可在 Hive 网站的下载页面上找到。对于每个 version,页面提供 release date 和指向 change log 的链接。如果要为早期的 version(或开发分支)更改 log,请使用配置发行说明页面。
Apache Hive JIRA跟踪 Hive code,文档,基础结构等的更改。每个已解决的 JIRA 问题的 version number 或分支显示在问题页面顶部的“详细信息”部分的“修复 Version/s”字段中。对于 example,HIVE-5107具有 0.13.0 的修复 version。
有时 version number 会在发布之前发生变化。当发生这种情况时,可能仍会在 JIRA,wiki 和邮件列表讨论中找到原始数字。例如:
| 发行号 | 原始号码 |
|---|---|
| 1.0.0 | 0.14.1 |
| 1.1.0 | 0.15.0 |
| 2.3.0 | 2.2.0 |
有关 Hive 分支的更多信息,请参见如何提供:了解 Hive 分支。
Apache Hive,Apache Hadoop,Apache HBase,Apache HDFS,Apache,Apache feather 徽标和 Apache Hive 项目徽标是 Apache Software Foundation 的商标。