炼数成金 门户 商业智能 Azure 查看内容

Microsoft Azure Hadoop特性一览

2012-7-29 21:21| 发布者: 岸岸| 查看: 975| 评论: 0|来自: csdn

摘要: 众所周知,大数据浪潮正在渐渐的席卷全球的各个角落。而Hadoop正是这股风暴的动力之源。关于Hadoop的讨论声不绝于耳,利用Hadoop来处理大数据集的兴趣似乎与日俱增。 如今,Microsoft已经将Hadoop作为自身大数据战略 ...

管理 Hadoop 集群 Hive Azure

众所周知,大数据浪潮正在渐渐的席卷全球的各个角落。而Hadoop正是这股风暴的动力之源。关于Hadoop的讨论声不绝于耳,利用Hadoop来处理大数据集的兴趣似乎与日俱增。

如今,Microsoft已经将Hadoop作为自身大数据战略的核心。 Microsoft此举的理由就是看中了Hadoop的潜力,在大数据领域Hadoop已经成为分布式数据处理的标准。通过集成Hadoop技 术,Microsoft允许客户访问快速增长的Hadoop生态系统。同时随着越来越多善于在Hadoop平台进行开发的人才涌出,这对Hadoop发展 极其有利。

主要挑战

  • 数据爆炸导致洞察力下降:企业需要借助适当的工具,了解由降低的硬件成本和复杂的数据源带来的海量数据,清晰的洞察数据背后的本质。
  • 结构与非结构化数据混杂:企业需要同时分析关系型和非关系型数据,捕获的数据中85%以上都是非结构化数据。
  • 数据实时分析存在瓶颈:新的数据源(如Twitter、Facebook和LinkedIn之类的社交媒体网站)会实时生成海量数据,而这些数据无法通过简单的批量处理进行有效地分析
  • 实现简化部署和管理:企业需要更加简单顺畅的部署和设置体验,理想情况下,企业希望使用包含Hadoop相关项目的少量安装文件,而不是从项目中进行选择。

Hadoop是什么

Hadoop是基于HDFS(Hadoop distributed file system)的分布式密集数据处理和数据分析的软件框架。Hadoop在很大程度上是受Google在2004年白皮书中阐述的MapReduce的技 术启发。MapReduce工作原理是将任务分解为成百上千块的小任务,然后发送到计算机集群中。每台计算机再传送会自己那部分信息,MapReduce 则迅速整合这些反馈并形成答案。

MapReduce作为Hadoop的核心是一种处理大型及超大型数据集(TB级别的数据。包括网络点击产生的流数据、日志文件、社交网络等所带来的数据)并生成相关的执行的编程模型。其主要思想是从函数式编程语言借鉴而来的,同时也包含了从矢量编程语言借鉴的特性。

Windows Azure Hadoop实战

下文详细介绍基于Microsoft Azure之上Hadoop的。如果您也想尝试,请访问hadoopazure.com获取邀请。Microsoft在Azure上使用Apache Hadoop(0.20.203)

设立集群

一旦用户应邀参加公测,便可以设置您的Hadoop集群。访问hadoopazure并使用Windows Live ID登录。登录后还需填写相关信息:

  1. 集群(DNS)名称:格式为<个性名>cloudapp.net
  2. 集群大小:选择节点数量(数量从4节点到32节点)以及相关的存储设置(容量从2TB—16TB)
  3. 管理员用户和密码:设置自己的用户名和密码,一旦设置边可通过远程桌面或Excel连接。
  4. SQL Azure实例配置信息:可配置Hive Metastore选项。如果配置此选项将具备网页访问SQL Azure服务器实例,但需要提供目标数据库的名称和登录凭据。指定的登录名必须在目标数据库上具有以下权 限:ddl_ddladmin,ddl_datawriter,ddl_datareader。

所有信息填写完成后单击请求集群。之后将会为用户分配并创建集群。(大约需要5-30分钟)对于集群分配,用户将会看到许多的任务节点和一个被称之为NameNode的头节点。

集群建立好后用户便可以尝试点击Metro风格的图标,用户可以看到可以执行哪些类型的数据处理以及管理任务。此外可试用Web方式与集群进行数据交换,在使用FTP和ODBC的模式时需要先打开端口(默认为关闭)。

在集群管理页面用户可执行基本的管理任务,如配置集群访问,导入数据,并通过 交互式控制台管理集群。交互控制台支持JavaScript或Hive。当用户访问“任务”部分时,用户可运行MapReduce作业,并可以看到正在运 行以及那些最近完成的MapReduce任务状态。

连接数据

用户有多种途径上传或访问位于Windows Azure上的Hadoop集群的数据。包括直接上传到集群或者访问存储在其他位置上的数据。

虽然FTP允许上传理论上任何大小的文件,但较好将文件大小控制在GB级别。 另外如果用户想批处理作业存储在Hadoop之外的数据,首先需要执行几个配置:设置外部连接,单击主页面上的集群管理并配置所使用的存储位置。如位于 Windows Azure Blob的存储Windows Azure Data Market的查询结果或者Amazon Web Services (AWS) S3上的存储。

  1. 要配置AWS S3连接需要输入安全密钥(公共或私人),之后便可以访问位于S3之上Hadoop集群中的数据
  2. 要使用Windows Azure Data Market中的数据需填写用户名(WLID)、Passkey(想查询或导入的数据源)、查询源以及Hive表名称。在集群中输入查询之前,一定要删除工具生成的Data Market查询限制(100行)。
  3. 要访问存储在Windows Azure Blob存储的数据需要输入存储账户名称URL到Blob存储位置,以及用户的私有passkey值。

运行MapReduce作业

建立和验证Hadoop集群并确认数据可用后便可以运行一个或多个MapReduce作业。

如果用户对Hadoop并不熟悉可查看运行主页面上的Samples按钮,以便更好了解整个流程。如果用户熟悉Hadoop,并想运行MapReduce 作业,有以下几种选择。用户选择方式的取决于对Hadoop工具的熟悉程度,如Hadoop命令提示符以及语言。用户可使用Java、Pig、 JavaScript或C#来执行Windows Azure Hadoop MapReduce任务。

点击Samples,然后打开WordCount配置页面(如图2),页面包 括功能和数据源。源数据不仅需要输入文件名称和文件路径。当文件路径选择本地时意味着文件存储在Windows Azure Hadoop集群,同时源数据也可以选择AWS S3、Windows Azure Blob storage、Windows Azure Data Market或直接从HDFS检索。

配置好参数后,点击执行工作。当运行任务示例时请阅读详细说明,有些可从主页面创建任务,有些则需要RDP连接集群。

在任务执行的过程以及任务完成后可监视工作状态。在任务历史记录页管理账户,可查看任务的详细信息。包括脚本、工作状态、日期、时间信息等。

使用C#处理Hadoop任务

用户还可通过C# Streaming处理Windows Azure Hadoop MapReduce任务。主页面会有相关的示例。用户需要上传所需的文件(davinci.txt, cat.exe和wc.exe)到存储位置,如HDFS、ASV或Amazon S3。同时需要Hadoop HEADNODE的IP地址。然后运行如下命令

  1. js>#cat apps/dist/conf/core-site.xml 

填写任务运行参数

  1. Hadoop jar hadoop-examples-0.20.203.1-SNAPSHOT.jar 
  2. -files "hdfs:///example/apps/wc.exe,hdfs:///example/apps/cat.exe" 
  3. -input "/example/data/davinci.txt" 
  4. -output "/example/data/StreamingOutput/wc.txt" 
  5. -mapper "cat.exe" 
  6. -reducer "wc.exe" 

在示例中mapper和reduce从stdin读取可执行文件并输出到stdout。产生的Map/Reduce任务提交给集群执行并映射文件。如图3

工作流程如下:首先mapper文件启动进程被添加到mapper task initialization(如果有多个mapper,每个任务将推出单独的初始化过程),在执行任务时,mapper任务将代码和附加代码转换并作为 MapReduce任务标准输入的一部分,然后mapper从标准输出中收集,并转换代码为key/value pair。换句话说就是当reduce任务接收到来自各个mapper输出时会按照键值对中的键对输入数据进行排序,并将相同的键归类。然后调用 reduce()函数,并通过迭代处理与制定键相关联的值,之后生成一个列表(可能为空)。

使用HiveQL查询Hive Table

使用交互式的Web控制台,用户可对位于用户定义Hadoop集群上的Hive Table进行查询。但在查询之前需要创建Hive Table。使用WordCount MapReduce时需执行以下命令创建和验证Hive Table

  1. hive> LOAD DATA INPATH 
  2. 'hdfs://lynnlangit.cloudapp.net:9000/user/lynnlangit/DaVinciTop10Words.txt' 
  3. OVERWRITE INTO TABLE wordcounttable; 
  4. hive> show tables; 
  5. hive> describe wordcounttable: 
  6. hive> select * from wordcounttable; 

Hive语法类似于SQL语法,HiveQL提供了类似的查询。在默认情况下,Hadoop是区分大小写的。

其他连接集群的方式

在主页面中还可以通过RDP协议连接集群。并通过远程桌面的方式连接到集群的NameNode节点服务器。要通过RDP连接用户需要点击管理首页的“远程 桌面”按钮,然后点击下载RDP连接文件,然后输入用户名和密码,如果出现提示还需要打开客户端机器上的防火墙端口。建立连接后,用户可以向管理本地机器 那样使用Windows资源管理器管理集群。

例如本文作者所用的实例,NameNode节点服务器上部署两个处理器和 14GB内存,并部署Windows Server 2008 R2 企业版(集成SP1),采用Apache Hadoo 0.20.203.1。本集群包括NameNode和一些WorkerNode,共部署8枚处理器。

实例包含标准的Hadoop工具,如Hadoop Command Shell或Command-line interface,以及Hadoop MapReduce tracker(http://[namenode]:50030)和Hadoop NameNode HDFS(http://[namenode]:50070)。使用Hadoop Command shell可运行MapReduce任务或使用RDP协议执行其他管理任务。

Sqoop则为Hadoop和SQL Server(SQL Server 2008 R2或更高本的SQL Server并行数据库)数据传输提供了桥梁。需要下载JDBC驱动并安装在Sqoop节点上。Sqoop基于SQL Server连接器设计,用户可在Hadoop(基于Linux)和SQL Server传输数据。同时Sqoop还支持通过FTP的方式在SQL Azure和HDFS之间导入导出数据。

通过Hive的ODBC驱动(端口号:10000),允许任何Windows应用程序访问并对Hive数据仓库进行查询。同时还允许Excel对Hive的访问,使数据直接从Hive移动到Excel和PowerPivot。

Windows Azure Hadoop优势

Windows Azure Hadoop的有趣优势

●安装容易,并使用Metro风格的管理界面

●在MapReduce作业或数据查询时语言的选择是多样的,MapReduce作业支持Java、C#、Pig、JavaScript,而查询时可试用Hive(HiveQL)。

●可使用现有的技能(Hadoop技术),符合Apache Hadoop 0.203以上版本

●有多种连接选项,包括ODBC驱动(SQL Server/Excel)RDP和其他客户端。以及连接其他云存储的能力(Windows Azure Blobs、Windows Azure Data Market、Amazon Web Services S3)

当Windows Azure Hadoop正式公布时,还会公布许多未知的功能

●当前只是私人测试版,相对功能较少。

●定价尚未公布

●公测期间,对上传文件大小有限制,目前还不清楚正式版发布的版本具备的特性

2

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

热门文章

     

    GMT+8, 2018-10-24 10:22 , Processed in 0.156531 second(s), 22 queries .