第十一课:云中的大数据 Azure...Windows Azure 中的HDInsight 是什么? 了解大数据...

27
第十一课:云中的大数据 Windows Azure 中的 HDInsight 是什么?............................................................................... 2 了解大数据............................................................................................................................... 2 大数据工具——Apache Hadoop ....................................................................................... 2 Windows Azure HDInsight 概述........................................................................................ 3 Windows Azure HDInsight 入门指南........................................................................................ 7 设置 HDInsight 群集 ........................................................................................................... 7 从门户运行示例....................................................................................................................... 8 将数据导入 Excel 表格 ......................................................................................................... 18 实现可视化数据..................................................................................................................... 21 本阶段常见问题............................................................................................................................. 25 自我小测试..................................................................................................................................... 25 参考资源:高级应用指南............................................................................................................. 26

Transcript of 第十一课:云中的大数据 Azure...Windows Azure 中的HDInsight 是什么? 了解大数据...

第十一课:云中的大数据

Windows Azure 中的 HDInsight 是什么? ............................................................................... 2

了解大数据 ............................................................................................................................... 2

大数据工具——Apache Hadoop ....................................................................................... 2

Windows Azure HDInsight 概述 ........................................................................................ 3

Windows Azure HDInsight 入门指南 ........................................................................................ 7

设置 HDInsight 群集 ........................................................................................................... 7

从门户运行示例 ....................................................................................................................... 8

将数据导入 Excel 表格 ......................................................................................................... 18

实现可视化数据 ..................................................................................................................... 21

本阶段常见问题 ............................................................................................................................. 25

自我小测试..................................................................................................................................... 25

参考资源:高级应用指南 ............................................................................................................. 26

Windows Azure 中的 HDInsight 是什么?

了解大数据

这是一个大数据的时代,我们不仅每天从媒体上听到这个“大数据”这个词汇,也正在感受

着大数据对我们生活的影响。今天,企业正想方设法从他们捕获的空前数量的数据中获取业

务洞察力。这其中包括大量的非结构化数据,如文件、图像、视频、博客、点击流和地理空

间数据。对于组织来说,主要的挑战是如何降低构建分布式存储和计算的复杂性,以及如何

有效地同时处理结构化和非结构化数据。企业正在寻找一种有效的方式将内部和外部的数据

及服务结合起来。他们也想从诸如微博这样的社交媒体网站中挖掘数据。他们还想基于他们

所捕获的数据更及时地作出决策。为了实现这个目标,企业需要实时地分析他们的数据,而

不是简单地依靠批处理。

从技术角度,大数据是一个用于描述关系型和非关系型数据库中存储的业务数据的术语。大

数据的问题在于,当数据以多种不同方式存储时难以对其进行分析。数据是分散的,它们保

存在关系数据库管理系统 (RDBMS)、XML 普通文件数据库、基于文本的日志文件、二进

制文件及 NOSQL Key/Value 系统中,那么问题来了,该如何分析这些数据呢?

大数据工具——Apache Hadoop

Apache Hadoop 是一个辅助大数据管理和分析的软件框架,由 Apache 基金会开发。

Hadoop 的主要目标是对分布式环境下的“大数据”提供一种可靠、高效、可伸缩的存储及

处理方式。Apache Hadoop 内核提供了带 Hadoop 分布式文件系统 (HDFS) 的可靠数

据存储和一个简单的 MapReduce 编程模型,该模型用于并行处理和分析存储在此分布式

系统中的数据。HDFS 使用数据复制来处理在部署此高度分布式系统时出现的硬件故障问

题。

图:Hadoop 分布式架构

为了降低分析来自各种源的非结构化数据的复杂性,MapReduce 编程模型支持用于闭包

映射和精简操作的核心抽象。MapReduce 编程模型会将其所有作业视为对包含密钥值对

的数据集进行的计算。因此,输入和输出文件都必须包含仅包括键值对的数据集。这种约束

的主要收获是导致 MapReduce 作业可以组合。

其他与 Hadoop 相关的项目(如 Pig 和 Hive)建立在 HDFS 和 MapReduce 框架基

础之上。与直接使用 MapReduce 程序相比,此类项目管理群集会轻松得多。例如,Pig 使

您能够使用称为 Pig Latin 的过程语言来编写程序,这些程序将在群集上编译为

MapReduce 程序。它还使您能够流畅地控制对数据流的管理。Hive 是一个数据仓库基础

结构,它为存储在群集中的文件数据提供表抽象,然后可以使用以声明语言(称为 HiveQL)

编写的类似于 SQL 的语句对数据进行查询。

对于希望搭乘大数据这趟高速列车的企业来讲,Hadoop 的确是一个很好的解决方案,但您

的 IT 工程师和数据库管理员却需要花费大量的时间构建和配置群集,才能建立起一个

Hadoop 集群。有没有快速且便利的大数据解决方案可以用呢?答案就在 Windows Azure

的 HDInsight 服务中。

Windows Azure HDInsight 概述

Hadoop 在 Windows Azure 上的实现即为 HDInsight,这是一种 100% 基于 Apache

Hadoop 的云端服务。Azure HDInsight 使 Apache Hadoop 可在云中作为服务使用,

它使 HDFS/MapReduce 软件框架和相关项目(如 Pig、Hive 和 Oozie 等)可用于更简

单、缩放性更高且经济实用的环境。

Hadoop 的标准群集通常具有单个头节点,HDInsight 通过双头节点的方式增加服务的可

用性。切换到新 HA 群集配置不会更改群集的价格,除非客户使用超大头节点设置群集。

HDInsight 带来的主要效率之一与其管理和存储数据的方式有关。HDInsight 使用 Azure

Blob 存储作为默认文件系统。Blob 存储和 HDFS 是独立的文件系统,并且已分别针对数

据的存储和计算进行了优化。

对于将使用 HDInsight 处理的数据而言, Azure Blob 存储是一个可高度缩放、

高度可用、成本低、可长期使用且可共享的存储选项。

HDFS 上 HDInsight 所部署的 Hadoop 群集已为对数据运行 MapReduce 计

算任务进行了优化。

HDInsight 群集部署在 Azure 中的计算节点上,用于执行 MapReduce 任务,一旦任务

完成,即可由用户删除。在传统的 Apache Hadoop 上,完成计算后的数据将保存在 HDFS

上,在云端这是一种成本很高的存储方式。Blob 存储是一个可靠的通用 Azure 存储解决

方案。因此,通过在 Blob 存储中存储数据,可以安全地删除用于计算的群集而不会丢失用

户数据。Azure Blob 存储是一套低成本的解决方案,而且通过实现 Apache Hadoop

FileSystem 接口,微软在 Apache Hadoop 上也贡献了相关的代码来支持 Azure Blob 存

储,使 Hadoop 生态系统中其他的组件也能够访问 Azure Blob 存储,为客户提供了一致

的体验。

HDInsight 使用 Azure PowerShell 配置、运行 Hadoop 作业,并对其进行后期处理。

HDInsight 还提供了一个 Sqoop 连接器,该连接器可用于将数据从 Azure SQL 数据库

导入到 HDFS,或将数据从 HDFS 导出到 Azure SQL 数据库。

Microsoft Power Query for Excel 可用于将数据从 Azure HDInsight 或任何 HDFS 导

入到 Excel 中。这一外接程序通过简化数据发现和对各种数据源的访问,增强了 Excel 中

的自助式 BI 体验。除了 Power Query 之外,还可使用 Microsoft Hive ODBC 驱动程

序集成 Excel、SQL Server Analysis Services 和 Reporting Services 等商业智能 (BI)

工具,推动和简化端到端数据分析。

图:HDInsight / Hadoop 生态体系

注意:HDInsight 集群从第 3 版起,支持 wasb:// 语法 (而非之前的 asv:// 语法)。

Windows Azure HDInsight 的独特优势:

按需灵活扩展

HDInsight 是一种云技术驱动的 Hadoop 发行版。这意味着 HDInsight 架构能够处

理任何数量的数据,按需将数据处理容量从数 TB 扩展至数 PB 级别。您可以随时快

速创建任意数量的节点。Windows Azure 只对您实际使用的计算和存储收取费用。

结构化、半结构化、非结构化,所有数据一网打尽

由于完全符合 Apache Hadoop 标准,HDInsight 能够处理来自网络点击流、社交媒

体、服务器日志、设备和传感器等来源的非结构化或半结构化数据。借此您能够分析新

的数据集,从中寻找新商机,推动组织向前发展。

使用您惯用的语言进行开发

HDInsight 具有强大的编程扩展能力,适用于多种语言,包括 C#、Java 等。您可在

Hadoop 上使用自己习惯的编程语言进行 Hadoop 作业的创建、配置、提交和监控。

了解更多

无需采购或维护硬件

使用 HDInsight,您可在云中部署 Hadoop,无需购买新硬件,也无需其他前期成本。

无需花费大量时间进行安装或设置。Windows Azure 可以为您完成这些工作。您可在

几分钟内启动第一个群集。

使用 Excel 直观呈现您的 Hadoop 数据

由于 HDInsight 与 Excel 集成在一起,因此您能在企业用户熟悉的工具中以全新方

式直观呈现和分析您的 Hadoop 数据。用户可从 Excel 选择 Windows Azure

HDInsight 作为数据源。

将本地 Hadoop 集群与云连接

HDInsight 还能与 Hortonworks 数据平台集成,因此您能将 Hadoop 数据从现场

数据中心移动到 Windows Azure 云,并将其用于备份、开发/测试和云迸发方案。通

过使用微软分析平台系统,您甚至能同时对本地的和云端 Hadoop 集群进行查询。

包含 NoSQL 事务功能

HDInsight 还将包含 Apache HBase,这是一种列式 NoSQL 数据库,基于 Hadoop

分布式文件系统 (HDFS) 运行。这样您就能对非关系数据执行大量事务处理 (OLTP),

并实现一些用例,例如让交互式网站或传感器将数据写入 Windows Azure Blob 存储。

Windows Azure HDInsight 的一种典型情形是:以批处理的方式,对 Azure 节点上

存储的整个非结构化数据集(不需要频繁更新)进行即席分析。

这些情况适用于商业、科学和监管方面的各种活动。例如,这可能包括监控零售业的供

应链、金融业的可疑交易模式、公用事业和服务的需求模式、一系列环境传感器中的空

气和水质量或大城市区域内的犯罪模式。

HDInsight(通常还有 Hadoop 技术)最适合于处理大量已记录或存档的数据,这些

数据在写入后不需要进行频繁更新,并且通常会读取这些数据来进行完整分析。此方案

对更适合由 RDBMS 处理的数据加以补充,RDBMS 要求数据容量较小(GB 而非

PB),并且必须持续更新它,或查询它以获得完整数据集内的特定数据点。RDBMS 最

适用于根据固定架构组织和存储的结构化数据。MapReduce 可以很好地处理没有预

定义架构的非结构化数据,因为它能够在那些数据被处理时对它们进行转译。

Windows Azure HDInsight 入门指南

设置 HDInsight 群集

1、 在 Windows Azure 管理门户上,选择左侧服务列表中的 HDINSIGHT。然后点击“创

建 HDINSIGHT 群集”。

2、 在新建界面,选择 HADOOP 并指定群集的名称、大小,以及群集用户密码,该密码必

须要满足长度和复杂性要求,指定存储账户,然后点击右下角的“创建 HDINSIGHT 群

集”按钮。

3、 等待 Windows Azure 完成该群集的创建工作。

4、 群集创建完毕,我们可以通过 Windows Azure 管理门户中看到该群集已经在运行。

从门户运行示例

1、 在 Windows Azure 管理门户->HDINSIGHT 中点击刚刚建立的群集,进入快速启动

界面。

2、 点击页面底部的工具栏上的“查询控制台”按钮。浏览器会打开查询控制台页面,请用

Admin 账户和之前设定的密码进行登录。

3、 这里提供了两个示例数据解决方案,传感器数据分析和网站日志分析。它们的作用如下

所示:

示例 作用

传感器数据分析 了解如何使用 HDInsight 处理加热、通风和空调 (HVAC) 系统产生

的历史数据,以识别无法可靠地保持设定温度的系统

网站日志分析 了解如何使用 HDInsight 分析网站日志文件,以了解一天中从外部网

站对该网站的访问次数,以及用户遇到的网站错误汇总

4、 在本指南中我们以传感器数据分析为例,在 Azure HDINSIGHT 查询控制台 Web 页面

上点击“传感器数据分析”。我们可以看到有关该数据方案的简要介绍。然后点击页面

右上角的“下一步”。

5、 查看完成该示例的先决条件,如果您的计算机不满足这些条件,请首先根据网页上的提

示和链接下载并安装相应的软件。然后点击页面右上角的“下一步”。

6、 将来自于传感器的数据加载至 Windows Azure Blob 存储,然后点击页面右上角的“下

一步”。

7、 创建配置单元表,查看代码,然后点击页面右上角的“下一步”。

8、 创建针对传感器数据的配置单元查询,查看代码,然后点击页面右上角的“下一步”。

9、 在执行查询步骤,查看代码,点击“提交”按钮。

10、 点击作业会话下的“查看详细信息”,可以了解作业详情:

11、 完成执行查询后点击页面右上角的“下一步”按钮。然后将数据加载至 Excel 表。

将数据导入 Excel 表格

如 果 您 的 计 算 机 上 没 有 安 装 Microsoft® Hive ODBC Driver , 请 先 访 问

http://www.microsoft.com/en-us/download/details.aspx?id=40886 下载并安装。安

装过程非常简单,在此省略。

1、 打开计算机上的 Microsoft Excel。从“数据”选项卡中,选择“来自其他源”,然后选

择“来自 Microsoft Query”。

2、 在选择数据源对话框中,选中“Sample Microsoft Hive DSN”,然后点击“”按钮。

3、 在 Microsoft Hive ODBC Driver Connection Dialog 对话框,输入 HDInsight 群集

名称,管理员用户名及密码,然后点击“OK”按钮。

4、 在查询向导中,选择 hvac_building 表,然后选择 > 按钮。

5、 单击“Next”继续查看向导,直到到达带有 Finish 按钮的对话框。单击“Finish”。

6、 数据将被导入至 Excel 表中:

实现可视化数据

因为数据已导入 Excel,您将使用 Power View 以可视方式导出数据。

1、 在 Excel 工作表中,选择插入选项卡,然后选择 Power View 以打开新的 Power

View 报表。

2、 在 Power View 字段区域,选择国家/地区和 extremetemp 旁的复选框。清除所有

其他复选框。在字段 框,单击 extremetemp 旁的向下箭头,然后选择计数(不为空

白)。

3、 从设计选项卡中,选择地图以在世界地图上按国家/地区显示温度数据。

4、 地图上显示的每个圆圈表示记录温度高于或低于 目标温度 5 度之上的次数。圆圈

越大,在此位置记录的极端温度的实例越多。

5、 虽然通过可视化地图上的温度数据,您可以更容易查看哪个地点在维持目标温度方面出

现问题,但您无法由此深入了解根本原因。请执行以下步骤,使用生成信息确定 HVAC

是否是问题的源头。

6、 打开新的 Excel 工作表,依次选择“数据”选项卡、来自其他源、来自 Microsoft Query。

按照先前相同步骤导入数据,但此次选择 hvac_building 表, 且仅选择 hvacproduct

和 extremetemp 列。

7、 导入数据后,选择插入选项卡,然后选择 Power View。在 Power View 的字段章节

中,单击 extremetemp 字段旁的向下箭头,然后选择计数(不为空白)。

8、 从设计选项卡中,选择柱形图,然后选择堆积柱形图。

9、 显示图后,选择左上角按 hvacproduct 排序旁的向下箭头,然后选择 extremetemp

的计数以按 extremetemp 字段对列进行排序。

10、 从此图中,您可以看到 FN39TG 的极端温度实例高于其他单位。

本阶段常见问题

问题 1:我的 HDInsight 群集需要多少个数据节点?

解答:数据节点数量视您的需求而变化。凭借 Windows Azure 云服务的良好灵活性,您

可以尝试多种不同的群集大小,以确定性能和成本的最佳组合,您只需为在特定时间使用的

服务付费。

问题 2:如果我需要的 HDInsight 数据节点数超过了订阅允许的节点数,该怎么办?

对于所能创建的 HDInsight 数据节点的数目,每个订阅均有默认限制。如果您需要创建较

大的 HDInsight 群集集群或多个 HDInsight ,其节点总数超过了当前订阅的最大值,则

可以请求提高订阅的计费限制。请提交“支持类型”为“计费”的支持工单。取决于您申请

的每订阅最大节点数,我们可能要求您提供更多信息,以便我们能够优化您的部署。

问题 3:HBase 群集为何需要更大的 ZooKeeper 节点?

解答:要运行 HBase NoSQL 工作负载,您需要更大尺寸的 VM 以改进可用性。

问题 4:HDInsight 的使用情况如何反映在我的账单上?

解答:HDInsight 将会成为每份客户发票上单独的一行内容,可下载的 CSV 文件将包含有

关使用的 HDInsight 实例类型和大小等详细信息。

问题 5:包含“x”个数据节点的群集的成本是多少?

解 答 : 要 估 算 不 同 大 小 群 集 的 成 本 , 请 使 用 Windows Azure 计 算 器 。

http://www.windowsazure.cn/pricing/calculator#data-management

自我小测试

通过阅读本章,相信您已经对 Windows Azure 的 HDInsight 有了一定的了解,下面就通

过几个自测题来验证并巩固您的阅读成果吧。

问题 1:HDInsight 能够处理的数据类型包括:

A、结构化 B、半结构化 C、非结构化 D、以上全部

问题 2:如果要估算 HDInsight 群集的成本费用,可以使用哪个工具?

A、PowerShell B、Windows Azure 价格估算器 C、远程桌面连接 D、命令提

示符

问题 3:Windows Azure HDInsight 可以和以下哪个工具集成实现数据可视化?

A、写字板 B、画图板 C、Excel D、Windows Media Player

问题 4:使用 Windows Azure HDInsight 在云端构建一个 Hadoop 集群最快仅需多长

时间?

A、数分钟 B、数小时 C、数天 D、数周

问题 5:用来将 Windows Azure HDInsight 作为 Excel 数据源的必备工具是:

A、Internet Explorer B、Visual Studio C、Microsoft Hive ODBC 驱动程序 D、

远程桌面连接

正确答案: 问题 1(D) 问题 2(B) 问题 3(C) 问题 4(A) 问题 5(C)

参考资源:高级应用指南

HDInsight SDK 参考文档

http://msdn.microsoft.com/library/azure/dn479185.aspx/

HDInsight 中的 Hadoop 集群的可用性和可靠性

http://www.windowsazure.cn/zh-cn/documentation/articles/hdinsight-high-

availability/

使用 Microsoft Hive ODBC Driver 将 Excel 连接到 HDInsight

http://www.windowsazure.cn/zh-cn/documentation/articles/hdinsight-connect-

excel-hive-ODBC-driver/

使用 HDInsight 分析航班延误数据