第1章 基础知识
从早期的互联网主流大爆发开始,主要的搜索引擎公司和电子商务公司就一直在和不断增长的数据进行较量。最近,社交网站也遇到了同样的问题。如今,许多组织已经意识到他们所收集的数据是让他们了解他们的用户,提高业务在市场上的表现以及提高基础架构效率的一个宝贵的资源。
Hadoop生态系统就是为处理如此大数据集而产生的一个合乎成本效益的解决方案。Hadoop实现了一个特别的计算模型,也就是MapReduce,其可以将计算任务分割成多个处理单元然后分散到一群家用的或服务器级别的硬件机器上,从而降低成本并提供水平可伸缩性。这个计算模型的下面是一个被称为Hadoop分布式文件系统(HDFS)的分布式文件系统。这个文件系统是“可插拔的”,而且现在已经出现了几个商用的和开源的替代方案。
不过,仍然存在一个挑战,那就是用户如何从一个现有的数据基础架构转移到I~adoop上,而这个基础架构是基于传统关系型数据库和结构化查询语句(SQL)的。对于大量的SQL用户(包括专业数据库设计师和管理员,也包括那些使用SQL从数据仓库中抽取信息的临时用户)来说,这个问题又将如何解决呢?
这就是Hive出现的原因。Hive提供了一个被称为Hive查询语言(简称HiveQL或HQL)的SQL方言,来查询存储在Hadoop集群中的数据。
SQL知识分布广泛的一个原因是:它是一个可以有效地、合理地且直观地组织和使用数据的模型。即使对于经验丰富的Java开发工程师来说,将这些常见的数据运算对应到底层的MapReduceJavaAPI也是令人畏缩的。Hive可以帮助用户来做这些苦活,这样用户就可以集中精力关注于查询本身了。Hlve可以将大多数的查询转换为
MapReduce任务(job),进而在介绍一个令人熟悉的SOL抽象的同时,拓宽Hadoop的可扩展性。如果用户对此存在疑惑,请参考稍后部分的第1.3节“Java和Hive:词频统计算法”中的相关介绍。
……
展开