2014年9月18日星期四

Windows Azure HDInsight 服务简介

概述

Windows Azure HDInsight 服务是一项在云中部署和设置 Apache™ Hadoop™ 群集的服务,该服务提供了用于管理、分析和报告大型数据的软件框架。

大型数据

称为“大型数据”的数据指的是具有以下特性的数据:收集的数量不断增长、收集速度日益加快、采用的非结构化格式的类型不断扩展且语义上下文灵活多变。大型数据收集本身不会为企业创造价值。不仅必须提出正确的问题,还必须收集与这些问题相关的数据。若要使大型数据能够提供可操作情报或见解形式的价值,必须使这些数据可访问、清理和分析,然后以有用方式呈现,通常这些数据会与来自各种源的数据结合使用。

Apache Hadoop

Apache Hadoop 是一个简化大型数据管理和分析的软件框架。Apache Hadoop 内核提供了带 Hadoop 分布式文件系统 (HDFS) 的可靠数据存储和一个简单的 MapReduce 编程模型,该模型用于同时处理和分析存储在此分布式系统中的数据。HDFS 使用数据复制来处理在部署此高度分布式系统时出现的硬件故障问题。

MapReduce

为了降低分析来自各种源的非结构化数据的复杂性,MapReduce 编程模型提供了一个用于闭包映射和精简操作的核心抽象。MapReduce 编程模型会将其所有作业视为对密钥值对数据集进行的计算。因此,输入和输出文件都必须包含仅包括密钥值对的数据集。其他与 Hadoop 相关的项目(如 Pig 和 Hive)是基于 HDFS 和 MapReduce 框架构建的,与直接使用 MapReduce 程序相比,使用它们来管理群集会轻松得多。例如,Pig 使您能够使用 JavaScript 编写程序,这些程序将在群集上编译为 MapReduce 程序。它还使您能够流畅地控制对数据流的管理。Hive 提供了针对存储在群集中的文件中的数据的表抽象,可使用类似 SQL 的语句查询该数据。

HDInsight 服务

适用于 Windows Azure 的 HDInsight 服务使 Apache Hadoop 作为云中的服务提供。它使 HDFS/MapReduce 软件框架和相关项目可用于更简单、缩放性更高且经济实用的环境。
HDInsight 服务带来的一大效率与其管理和存储数据的方式有关。HDInsight 服务将 Windows Azure Blob 存储用作默认文件系统。Windows Azure Blob 存储和 HDFS 是独立的文件系统,并且已分别针对数据的存储和计算进行了优化。
  • 对于将使用 HDInsight 服务处理的数据而言,Windows Azure Blob 存储提供了一个可高度缩放的、可用的、低成本的、长期的可共享存储选项。
  • HDFS 上 HDInsight 服务所部署的 Hadoop 群集已为对数据运行 MapReduce 计算任务进行了优化。
在 Azure 中的计算节点上部署 HDInsight 服务群集以执行 MapReduce 任务,并且用户可在完成这些任务后丢弃该群集。在完成计算后将数据保存在 HDFS 群集中是一种成本很高的数据存储方法。Windows Azure Blob 存储时一种可靠的通用 Azure 存储解决方案,通过将数据存储在 Blob 存储中,可以安全地删除用于计算的群集而不会丢失用户数据。不过,Blob 存储不仅仅是一个低成本的解决方案。Azure 存储保管库 (ASV) 为 Blob 存储提供了一个功能全面的 HDFS 文件系统接口,该接口通过支持 Hadoop 生态系统中的整套组件直接操作(默认情况下)Blog 存储所管理的数据来为客户提供无缝体验。
为了简化对 Hadoop 作业的配置、运行和后期处理,HDInsight 服务提供了 JavaScript 和 Hive 交互式控制台。JavaScript 控制台是 HDInsight 所独有的。它从控制台实现并生成可用的 JavaScript、Pig 和 Hadoop 文件系统命令。此简化的 JavaScript 方法为 IT 和数据库专业人员以及范围更广的开发人员提供了更易访问的途径来开始使用 Hadoop 框架,使他们能够管理和分析大型数据。
除了与 Apache Hadoop 相关的可用生态系统项目之外,适用于 Windows Azure 的 HDInsight 服务还提供了开放式数据库连接 (ODBC) 驱动程序来集成商业智能 (BI) 工具(如 Excel、SQL Server Analysis Services 和 Reporting Services),以便加快并简化端到端数据分析。

概要

本主题描述了 HDInsight 服务所支持的 Hadoop 生态系统、HDInsight 服务的主要使用方案以及其他资源的指南。本主题包含以下部分:
  • HDInsight 服务上的 Hadoop Ecosystem - HDInsight 服务提供了对 Pig 和 Hive 的实现,并支持与 ASV/HDFS 和 MapReduce 框架集成的其他 BI 工具(如 Excel、SQL Server Analysis Services 和 Reporting Services)。也可下载作为 Hadoop 生态系统的一部分的开放源程序(如 Mahout、Pegasus、Sqoop 和 Flume),并将该程序与 HDInsight 配合使用。此部分描述 Hadoop 生态系统中的这些程序将用于处理哪些作业。
  • 适用于 HDInsight 服务的大型数据方案 - 此部分解答了以下问题:HDInsight 服务对于哪些类型的作业而言是一种适用的技术?
  • HDInsight 服务的资源 - 此部分指明可从何处查找相关资源以了解其他信息。

Windows Azure 上的 Hadoop 生态系统

介绍

HDInsight 服务提供一个实现 Microsoft 的基于云的解决方案以处理大型数据的框架。此联合生态系统管理和分析大型数据的数量,并使用 MapReduce 编程模型的并行处理功能。本节详细列举并简述了可与 HDInsight 配合使用的与 Apache 兼容的 Hadoop 技术。
HDInsight 服务提供了对 Hive 和 Pig 的实现以集成数据处理和仓库功能。Microsoft 的大型数据解决方案与 Microsoft BI 工具(如 SQL Server Analysis Services、Reporting Services、PowerPivot 和 Excel)集成。这使您能够对由 HDInsight 服务存储和管理的数据执行直接 BI 处理。
也可下载作为 Hadoop 生态系统的一部分并已构建为基于 Hadoop 群集运行的其他与 Apache 兼容的技术和相关技术,并将其与 HDInsight 服务配合使用。其中包括开放源技术,如将 HDFS 与相关数据存储和日志文件集成的 Sqoop 和 Flume,以及提供图形挖掘功能的 Pegasus。

Pig

Pig 是一种用于在 Hadoop 群集上处理大型数据的高级平台。Pig 包含一种称作 Pig Latin 的数据流语言(该语言支持对大型数据集编写查询)和一个从控制台运行程序的执行环境。Pig Latin 程序包含在后台转换为 MapReduce 程序系列的数据集转换系列。Pig Latin 抽象提供了比 MapReduce 更丰富的数据结构,并为 Hadoop 执行 SQL 对 RDBMS 系统执行的操作。Pig Latin 可完全扩展。在整理分析时,可调用用 Java、Python、C# 或 JavaScript 编写的用户定义的函数 (UDF) 来自定义每个处理路径阶段。有关其他信息,请参阅欢迎使用 Apache Pig!(可能为英文页面)

Hive

Hive 是一种用于管理存储在 HDFS 中的数据的分布式数据仓库。它是 Hadoop 查询引擎。Hive 提供了类似 SQL 的接口和相关数据模型,使分析人员能够使用强大的 SQL 技能。Hive 使用一种称作 HiveQL 的语言(一种 SQL 行话)。Hive(类似于 Pig)是一种基于 MapReduce 的抽象,它在运行时会将查询转换为一系列 MapReduce 作业。适用于 Hive 的方案在概念上与适用于 RDBMS 的方案更相近,因此适用于结构化程度更高的数据。对于非结构化数据,Pig 是更佳的选择。HDInsight 服务包含适用于 Hive的 ODBC 驱动程序,它提供了从商业智能工具(如 Excel)到 Hadoop 的直接实时查询。有关其他信息,请参阅欢迎使用 Apache Hive!(可能为英文页面)

Mahout

Mahout 是一个开放源计算机学习库,有助于构建可缩放的匹配学习库。通过使用 map/reduce 范例,为 Mahout 开发的用于群集、分类和基于批处理的协同筛选的算法将基于 Apache Hadoop 实现。有关其他信息,请参阅什么是 Apache Mahout(可能为英文页面)

Pagasus

Pegasus 是一种在 Hadoop 上运行的千兆级图形挖掘系统。图形挖掘是用于查找模式、规则和异常描述图表的数据挖掘。此上下文中的图表是一组对象,其中任意两个对象之间都存在链接。此结构类型体现了网络无处不在的特性,包括 Web 上链接的页面、计算机和社交网络(Facebook、Twitter)以及许多生物和物理系统。在 Pegasus 之前,可挖掘的最大图表大小纳入了数百万个对象。通过开发在 Hadoop 群集上并行运行的算法,Pegasus 开发了用来挖掘包含几十亿个对象的图表的算法。有关其他信息,请参阅 Project Pegasus 网站。

Sqoop

Sqoop 是一种用于在 Hadoop 和关系数据库(如 SQL)或其他结构化数据存储之间尽可能高效地传输批量数据的工具。使用 Sqoop 可将数据从外部结构化数据存储导入到 HDFS 或相关的系统(如 Hive)。Sqoop 也可从 Hadoop 中提取数据并将提取到的数据导出到外部关系数据库、企业数据仓库或任何其他结构化数据存储类型。有关其他信息,请参阅 Apache Sqoop 网站。

Flume

Flume 是一种分布式的、可靠的可用服务,可用于高效收集和聚集大量日志数据并将这些数据移动到 HDFS。Flume 的体系结构基于流式数据流。它可靠并具有容错功能,同时还包含可调整的可靠性机制以及许多故障转移和恢复机制。它具有一个支持联机分析应用程序的简单的可扩展数据模型。有关其他信息,请参阅 Flume 网站(构建中)。

商业智能工具

熟悉的商业智能 (BI) 工具(如 Excel、PowerPivot、SQL Server Analysis Services 和 Reporting Services)使用 ODBC 驱动程序检索、分析和报告与 HDInsight 服务集成的数据。Hive ODBC 驱动程序和用于 Excel 的 Hive 外接程序可从“HDInsight 服务”门户进行下载。

适用于 HDInsight 服务的大型数据方案

提供 HDInsight 服务的用例的典型方案是以批处理形式对存储在 Windows Azure 节点上的整个非结构化数据集进行临时分析,这不需要进行频繁更新。
这些情况适用于商业、科学和监管方面的各种活动。例如,这可能包括监控零售业的供应链、金融业的可疑交易模式、公用事业和服务的需求模式、一系列环境传感器中的空气和水质量或大城市区域内的犯罪模式。
HDInsight 服务(通常与 Hadoop 技术)最适合于处理大量已记录或存档的数据,这些数据在写入后不需要进行频繁更新,并且通常会读取这些数据来进行完整分析。此方案是对更适合由关系数据库管理系统 (RDBMS) 处理的数据的补充,该系统需要较少的数据(十亿字节而不是千万亿字节)且必须针对完整数据集内的特定数据点进行连续更新或查询。RDBMS 最适用于根据固定架构组织和存储的结构化数据。MapReduce 适用于没有预定义架构的非结构化数据,因为在处理该数据时,它能够对该数据进行说明。

后续步骤:HDInsight 服务的资源

Microsoft:HDInsight 服务
Microsoft:Windows 和 SQL Database
Microsoft:商业智能
Apache Hadoop
  • Apache Hadoop - 提供一个允许通过简单的编程模型跨计算机群集分布式处理大型数据集的框架的软件库。
  • HDFS - Hadoop 分布式文件系统 (HDFS) 是由 Hadoop 应用程序使用的主存储系统。
  • Map Reduce - 一个用于编写可以并行方式快速处理计算节点的大型群集上的大量数据的编程模型和软件框架。

没有评论:

发表评论