你好,游客 登录 注册 搜索
背景:
阅读新闻

使用 Hive 构建数据库

[日期:2013-09-09] 来源:伯乐在线  作者: [字体: ]
  当您需要处理大量数据时,存储它们是一个不错的选择。令人难以置信的发现或未来预测不会来自未使用的数据。大数据是一个复杂的怪兽。用 Java? 编程语言编写复杂的 MapReduce 程序要耗费很多时间、良好的资源和专业知识,这正是大部分企业所不具备的。这也是在 Hadoop 上使用诸如 Hive 之类的工具构建数据库会成为一个功能强大的解决方案的原因。
  如果一家公司没有资源构建一个复杂的大数据分析平台,该怎么办?当业务智能 (BI)、数据仓库和分析工具无法连接到 Apache Hadoop 系统,或者它们比需求更复杂时,又该怎样办?大多数企业都有一些拥有关系数据库管理系统 (RDBMSes) 和结构化查询语言 (SQL) 经验的员工。Apache Hive 允许这些数据库开发人员或者数据分析人员使用 Hadoop,无需了解 Java 编程语言或者 MapReduce。现在,您可以设计星型模型的数据仓库,或者常态化的数据库,而不需要挑战 MapReduce 代码。忽然之间,BI 和分析工具,比如 IBM Cognos? 或者 SPSS? Statistics,就可以连接到 Hadoop 系统。
  数据库
  构建数据库,并且能够使用这些数据,这不是 Hadoop 或者数据库问题。多年以来,人们一直习惯将数据组织到库中。有许多由来已久的问题:如何将数据分门别类?如何将所有数据连接到集成的平台、机箱或者 库?多年来,各种方案层出不穷。
  人们发明了很多方法,比如 Dewey Decimal 系统。他们将通讯录中的人名或企业名按照字母顺序排列。还有金属文件柜、带货架的仓库、地址卡文件系统,等等。雇主尝试用时间卡,打卡器以及时间表追踪员工。人们需要结构化和组织化数据,还需要反映和检查这些数据。如果您无法访问、结构化或理解这些数据,那么存储这么多的数据有什么实际意义呢?
  RDBMSes 使用了过集合论和第三范式。数据仓库有 Kimball、Inmon、星型模型、Corporate Information Factory,以及专用数据集市。他们有主数据管理、企业资源规划、客户关系管理、电子医疗记录和其他许多系统,人们使用这些系统将事务组织到某种结构和主题中。现在,我们有大量来自各个行业的非机构化或半结构化数据,例如,社交媒体、邮件、通话记录、机械指令、远程信息,等等。这些新数据需要集成到存储结构化的新旧数据的非常复杂、非常庞大的系统中。如何分类才能使得销售经理能够改进报告?如何构建库才能使得执行主管能够访问图表和图形?
  您需要找到一种将数据结构化到数据库的方法。否则,只是拥有大量只有数据科学家才能访问数据。有时,人们只是需要简单的报告。有时,他们只是想要拖拽或者编写 SQL 查询。
  大数据、Hadoop 和 InfoSphere BigInsights
  本小节将向您介绍 InfoSphere? BigInsights?,以及它与 Hadoop、大数据、Hive、数据库等有何联系。InfoSphere BigInsights 是 Hadoop 的 IBM 分区。您可能对 Apache 和 Cloudera 比较了解,但是业内许多人都曾涉足 Hadoop。它开始于开源的使用 MapReduce 的 Hadoop 和 Hadoop 分布式文件系统 (HDFS),通常还包括其他工具,比如 ZooKeeper、Oozie、Sqoop、Hive、Pig 和 HBase。这些发布版与普通 Hadoop 的区别在于它们被添加在 Hadoop 顶层。InfoSphere BigInsights 就属于这一类版本。
  您可以在 Hadoop 的 Cloudera 版本之上使用 InfoSphere BigInsights。此外,InfoSphere BigInsights 提供一个快速的非结构化的分析引擎,您可以将它和 InfoSphere Streams 结合在一起使用。InfoSphere Streams 是一个实时的分析引擎,它开创了联合实时分析和面向批次的分析的可能。
  InfoSphere BigInsights 还拥有内置的、基于浏览器的电子表格 BigSheets。这个电子表格允许分析人员每天以电子表格样式使用大数据和 Hadoop。其他功能包括基于角色的安全和管理的 LDAP 集成;与 InfoSphere DataStage? 的集成,用于提取、转换、加载 (ETL);常用的使用案例的加速器,比如日志和机器数据分析;包含常用目录和可重复使用工作的应用目录;Eclipse 插件;以及 BigIndex,它实际上是一个基于 Lucene 的索引工具,构建于 Hadoop 之上。
  您还可以使用 Adaptive MapReduce、压缩文本文件、自适应调度增强来提高性能。此外,您还可以集成其他应用,例如,内容分析和 Cognos Consumer Insights。
  Hive
  Hive 是一个强大的工具。它使用了 HDFS,元数据存储(默认情况下是一个 Apache Derby 数据库)、shell 命令、驱动器、编译器和执行引擎。它还支持 Java 数据库连接性 (JDBC) 连接。 由于其类似 SQL 的能力和类似数据库的功能,Hive 能够为非编程人员打开大数据 Hadoop 生态系统。它还提供了外部 BI 软件,例如,通过 JDBC 驱动器和 Web 客户端和 Cognos 连接。
  您可以依靠现有的数据库开发人员,不用费时费力地寻找 Java MapReduce 编程人员。这样做的好处在于:您可以让一个数据库开发人员编写 10-15 行 SQL 代码,然后将它优化和翻译为 MapReduce 代码,而不是强迫一个非编程人员或者编程人员写 200 行代码,甚至更多的复杂 MapReduce 代码。
  Hive 常被描述为构建于 Hadoop 之上的数据仓库基础架构。事实是,Hive 与数据仓库没有什么关系。如果您想构建一个真实的数据仓库,可以借助一些工具,比如 IBM Netezza。但是如果您想使用 Hadoop 构建一个数据库,但又没有掌握 Java 或者 MapReduce 方面的知识,那么 Hive 会是一个非常不错的选择(如果您了解 SQL)。Hive 允许您使用 Hadoop 和 HBase 的 HiveQL 编写类似 SQL 的查询,还允许您在 HDFS 之上构建星型模型。
  Hive 与 RDBMSes
  Hive 是一个读模式 系统,而 RDBMSes 是一个典型的写模式 系统。传统的 RDMBSes 在编写数据时验证模型。如果数据与结构不符,则会遭到拒绝。Hive 并不关心数据的结构,至少不会在第一时间关心数据结构,它不会在您加载数据时验证模型。更确切地说,只在您运行查询之后,它才会关心该模型。
  Hive 的限制
  在使用 Hive 时可能会有一些挑战。首先,它与 SQL-92 不兼容。某些标准的 SQL 函数,例如 NOT IN、NOT LIKE 和 NOT EQUAL 并不存在,或者需要某种工作区。类似地,部分数学函数有严格限制,或者不存在。时间戳或者 date 是最近添加的值,与 SQL 日期兼容性相比,更具有 Java 日期兼容性。一些简单功能,例如数据差别,不能正常工作。
  此外,Hive 不是为了获得低延时的、实时或者近乎实时的查询而开发的。SQL 查询被转化成 MapReduce,这意味着与传统 RDBMS 相比,对于某种查询,性能可能较低。
  另一个限制是,元数据存储默认情况下是一个 Derby 数据库,并不是为企业或者生产而准备。部分 Hadoop 用户转而使用外部数据库作为元数据存储,但是这些外部元数据存储也有其自身的难题和配置问题。这也意味着需要有人在 Hadoop 外部维护和管理 RDBMS 系统。
  安装 InfoSphere BigInsights
  这个棒球运动数据示例向您展示了在 Hive 中如何从平面文件构建常用的数据库。虽然这个示例比较小,但它显示了使用 Hive 构建数据库有多么轻松,您可以使用该数据运行统计数据,确保它符合预期。将来尝试组织非结构数据时就无需检查那些信息。
  完成数据库构建之后,只要连接到 Hive JDBC,就可以使用任何语言构建 Web 或者 GUI 前端。(配置和设置一个 thrift 服务器,Hive JDBC 是另一个话题)。我使用 VMware Fusion 在我的 Apple Macbook 上创建了一个 InfoSphere BigInsights 虚拟机 (VM)。这是一个简单的测试,这样我的 VM 就有 1 GB 的 RAM 和 20 GB 的固态磁盘存储空间。操作系统是 CentOS 6.4 64-bit distro 的 Linux?。您还可以使用某些工具,例如 Oracle VM VirtualBox,如果您是 Windows? 用户,那么您还可以使用 VMware Player 创建 InfoSphere BigInsights VM。(在 Fusion 上设置 VM、VMware Player 或者 VirtualBox 不在本文的讨论范围之内。)
  从下载 IBM InfoSphere BigInsights 基础版开始。您需要有一个 IBM ID,或者您可以注册一个 ID,然后下载 InfoSphere BigInsights 基础版。
  输入和分析数据
  现在,您可以在任何地方获取数据。绝大多数网站都提供了逗号分隔值 (CSV) 格式的数据:天气、能源、运动、金融和博客数据。例如,我使用来自 Sean Lahman 网站的结构化数据。使用非结构化数据会费力一些。




收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款