Electronic Joint Business

Solution for E-Business

hive

Hadoop 技术手册 (二) 体验 Hadoop 平台

文章评价:
在上一篇文章中,我们概括介绍了 Hadoop 的各个组件,但是留下的困惑之一就是 “我要如何运行这些软件呢?”。本文将利用 Cloudera 网站提供一个免费的 Hadoop 发行版 CDH 来运行一些示例,使得你对 Hadoop 各个组件有深入的了解。

特别值得一提的是,Hadoop 可以通过 Sqoop 非常好地整合 Informix 和 DB2 数据库。 Sqoop 是全球领先的用于在 Hadoop 和关系数据库之间进行数据迁移的开源实现。它使用 JDBC 来读写 Informix、DB2、MySQL、Oracle 等其他数据源。此外还提供了几个优化的数据库适配器,包括 Netezza 和 DB2。

运行简单的 Hadoop, Hive, Pig, Oozie 和 Sqoop 示例
在上一篇文章中,你已经学习了 Hadoop 的介绍和定义,现在是该实践的时候了。要运行本文的例子,你只要从 Cloudera 网站下载支持 VMware、virtual box 等的镜像文件就可以开始进行 MapReduce 了!我们假定你有一台 64位电脑,并有某种流行的虚拟软件。大多数的虚拟软件中都提供了免费下载。当您试图启动 64位的镜像时,你可能会遇到有关 BIOS 设置的报错。图 1-1 显示了需要在 BIOS 修改的设置 (基于 Thinkpad 电脑)。进行更改时,请务必小心。

示例中所使用的数据实在不能称为 BigData。但是本文的目的不是让你用一台笔记本电脑来和一个庞大的文件交火,而是关注数据源、map-reduce 作业这些有趣的问题,并答疑解惑。

下载 Hadoop 虚拟镜像
我们强烈建议您使用 Cloudera 提供镜像来运行这些示例。 Hadoop 是一个解决问题的技术。 Cloudera 的虚拟镜像包让你不用处理繁杂的配置工作,只需专注于大数据本身的问题。如果你坚持要自己配置所有的组件,那 Hadoop 本身就成为一个问题,而不是解决方案了。

>>> 阅读全文

 

, , , , , , , , , , ,

HadoopDB 入门 (二) 配置MySQL

文章评价:
在上一篇文章中,我们介绍了如何对 HadoopDB 和 PostgreSQL 进行配置,以便它们能在一起工作。在本文中,我们将介绍如何在 HadoopDB 中配置另一种普遍使用的数据库来。在文章的前一部分,我还会涉及如何在 Ubuntu 中安装并运行起 HadoopDB,已经熟悉的朋友可以直接跳过这一部分。这里我使用的是 64 位的 Ubuntu Server 10.04,并且广泛地使用 Ubuntu 的包管理器,本文介绍的安装方式,对于其他的 Linux 系统比如 CentOS 也应该是适用的。

本文介绍的是如何配置一个单节点系统,如果您需要一个多节点系统,可以参考上一篇文章中的介绍,你将会发现对 HadoopDB 进行扩展是多么的简单。

安装 Hadoop
安装 Hadoop 之前,首先需要安装 Java。你可以从 Oracle 的站点下载 Sun JDK,或者使用 OpenJDK 也没有任何问题,在 Ubuntu 上,运行下面命令就可以安装 OpenJDK:

sudo apt-get install openjdk-6-jdk

Michael Noll 写过一篇文章深入讨论了如何在 Ubuntu 上安装 Hadoop,我强烈建议您在开始之前读一下这篇文章,本文很多内容都是借鉴该文章的。

首先我们先创建需要运行 Hadoop 帐号和组:

>>> 阅读全文

 

, , , , , ,

HadoopDB 快速上手指南

HadoopDB 是由美国耶鲁大学计算机科学教授 Daniel J. Abadi 及其团队推出开源并行数据库。该数据库集合关系型数据库的数据处理能力与 Hadoop、MapReduce 等技术于一身,采用了许多不同的开源组件,包括开源数据库、PostgreSQL、Apache Hadoop 技术和 Hive 等等。

HadoopDB 的查询是利用 MapReduce 或常规的 SQL 语言完成的。MapReduce 适用于大规模数据集(大于1TB)的并行计算。另一方面,HadoopDB 的数据处理部分是利用Hadoop 完成的。Abadi表示,其中部分是利用了分布在无分享计算机群集中的许多节点上的不同 PostgreSQL 实例完成的。实质上,HadoopDB是MapReduce和并行数据库管理系统技术的混血儿。不过和 Aster Data、Greenplum或Hive等已经开发出的项目和厂商不同,HadoopDB不是简单地在语言/接口层面上的混合,它是更深的系统实现层面上的集成。

因为集两种技术的精华于一身,HadoopDB 可以取得 MapReduce 等大规模并行数据基础设施的容错性。在这些基础设施中,服务器故障对整个网络的影响非常小。HadoopDB可以执行复杂的分析,速度几乎与已有的商用并行数据库一样快。

本文的目的是为运行HadoopDB给出一些指导。整个 HadoopDB 的设计概述可以在VLDB 论文的第五节找到。在该论文中,你还可以找到我们测试 Hadoop (带 HDFS)、HadoopDB 和商用并行数据库的测试结果比较。

HadoopDB 的基本原理是利用 Hadoop 来存取部署在集群上多个单一节点上的 DBMS 服务器(比如:PostgreSQL 或 MySQL)。通过发起 SQL 查询,HadoopDB 将尽可能多的数据处理推给数据库引擎来进行(通常情况下,大部分的映射/组合 – Map/Combine 阶段的逻辑可以用 SQL 来表达)。这样就创建了一个类似于无共享并行数据库的系统。应用从数据库世界得到的技术大大提升了性能,特别是在更复杂的数据分析上。同时,HadoopDB 依赖于 MapReduce 框架的事情确保了系统在高可扩展性和容错、异构性(heterogeneity)方面的效果与 Hadoop 类似。详细内容请再次参考 VLDB 论文。

>>> 阅读全文

 

, , , , , , ,

Hadoop 技术手册(一) Hadoop 生态系统

文章评价:
现在是数据的年代。近 10 年来,随着 Web 不断发展状态,数据的大小也在飞速增长,而且丝毫没有慢下来的迹象。统计数据表明,每过去的一年中所生成的数据要大大超过历年的数据的总和。摩尔定律不单对计算机硬件生效,现在对于不断生成的数据也同样有效。面对如此海量的数据,业界用了一个简单明了的词来称呼它: Big Data。

和用行和列来存储结构化信息的方式不同, Big Data 面对的是复杂的,非结构化的存储格式,包括网站、社会性媒体、电子邮件 甚至是视频、演示文稿等等。这是个非常重要的区别,为此,要从 Big Data 中提取有价值的商业信息,都必须依靠某些技术来对这些格式进行可扩展的、精确且有效分析。

紧接着下一个问题就出现了 – 我们如何有效地处理这些 Big Data?在这一领域的开拓者之一是谷歌 Google,它设计了类似 MapReduce 和 Google文件系统等可扩展的框架。受到这些设计的启发,Apache 倡导了一个名为 Hadoop 的开源项目。Apache Hadoop 是一个开源框架,可以对大型数据集的进行跨集群的分布式处理。

Hadoop 生态系统 (Ecosystem)
Apache Hadoop 的核心由 2 个子项目组成 – Hadoop MapReduce 和 Hadoop 分布式文件系统。 Hadoop MapReduce 是编程模型,也是一个软件框架,可以编写在集群上进行并行处理大量数据的应用。 HDFS 是 Hadoop 应用所使用的主要存储系统。 HDFS 创建了数据块的多个副本,并将其分发整个集群的计算节点上以便能可靠、且快速的进行计算。其它和 Hadoop 相关的 Apache 项目还包括: Chukwa, Hive, HBase, Mahout, Sqoop 和 ZooKeeper 等等。

下图列出了 Hadoop 的一些组件,接下来我们会逐一介绍 Hadoop 生态系统的这些关键组件。

>>> 阅读全文

 

, , , , , , , , ,