在大数据技术中,Apache Hadoop和MapReduce是最受用户关注的。但管理Hadoop分布式文件系统,或用Java编写执行MapReduce任务则不是简单的事。那么Apache Hive也许能帮助您解决这一难题。 Hive数据仓库工具也是Apache Foundation的一个项目,同时是Hadoop生态系统的关键组件之一,它提供了基于语境的查询语句,即Hive查询语句。
这套语句可以将SQL类查询自动翻译成MapReduce工作指令。 在BI领域,包括IBM DB2、Oracle和SQL Server在内的关系型数据库一直处于统治地位。这使得SQL成为商业智能的首选语言,大……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
在大数据技术中,Apache Hadoop和MapReduce是最受用户关注的。但管理Hadoop分布式文件系统,或用Java编写执行MapReduce任务则不是简单的事。那么Apache Hive也许能帮助您解决这一难题。

Hive数据仓库工具也是Apache Foundation的一个项目,同时是Hadoop生态系统的关键组件之一,它提供了基于语境的查询语句,即Hive查询语句。这套语句可以将SQL类查询自动翻译成MapReduce工作指令。
在BI领域,包括IBM DB2、Oracle和SQL Server在内的关系型数据库一直处于统治地位。这使得SQL成为商业智能的首选语言,大部分数据分析专家都掌握了较强较全面的SQL技能。同样道理,做数据分析的专家对Excel,Pivot表格和图表等工具更熟悉。
先让我们来看一个端到端的BI项目在Windows Azure系统中是如何运行的。在Excel图表中显示美国航空公司的航班正点到达的数据,数据量很大,整个过程不需要编写任何程序代码。
Windows Azure CTP上的Apache Hadoop

去年年底,微软SQL Server研发团队宣布了Windows Azure平台上的Apache Hadoop功能,即HadoopOnAzure。微软方面称这将简化Hadoop的使用和设置,利用Hive来从Hadoop集群中提取非结构化的数据,并在Excel工具中进行分析,同时增强了Windows Azure的弹性。
HadoopOnAzure的社区预览版还处于未公开状态,用户需要在Microsoft Connect上填写一个简单的问卷调查来获得邀请码,并通过Windows Live ID登陆。输入唯一的DNS用户名,选择初始Hadoop集群大小,提供一个集群登录名和密码,点击Request Cluster按钮。(见图1)
图1 用户只需简单的操作即可修改一个集群设置(点击放大)
开通并设置集群需要15到30分钟时间。HadoopOnAzure社区预览版的资源是免费的,但开通集群24小时之内,你需要在最后6小时的时候更新一下订阅。此后的使用过程中,证书需要每天都更新一次。
用户如要使用Windows Azure的blob持久性数据存储,那么就需要一个Windows Azure的订阅和一个存储账户。否则当集群超时,所有存储在HDFS上的数据都将丢失。如果没有订阅,用户还可以申请注册免费试用三个月的Windows Azure账号,这个账号赠送每位用户20GB存储空间、上百万次存储传输以及20GB的外网带宽。
向SQL Azure blob中填充大数据
这个Apache Hive项目从美国联邦航空管理局(FAA)提取数据,收集了2011年后5个月到2012年1月共6个月以来航班正点到达的信息及延误信息。6页文本资料子集包涵FAA文件栏,栏下有50万行数据每页25 MB。
用户需要将数据上传到一个blob container的文件夹中,这样Hive可搜索到这些数据。关于如何创建Azure blob源数据的详细步骤,可以参考我之前的一篇文章。文章还提到了数据文件以及如何用Windows Live SkyDrive账号下载数据,最后怎样将数据上传到Windows Azure blob的具体步骤。
集群配置完成后,将弹出Elastic MapReduce门户登录页面和集群、账户管理对话框。(见图2)
图2:HadoopOnAzure的MapReduce控制板页面特性和功能。(点击放大)
复制Windows Azure管理门户的Primary Access Key保存到剪切板,点击Manage Cluster,打开页面然后点击Set Up ASV(Azure存储库),将Windows存储账户作为Hive表的数据源。此外,用户还可以使用Amazon S3或Windows Azure Dataplace DataMarket中的数据作为Hive表的数据源。
输入你的存储账号,在Passkey框中粘贴Primary Access Key,点击保Save Settings,Hive即可成功登录数据库访问blob。如果证书获得认证,用户将收到短信通知Azure账号设置成功。
与HDFS不同,即便是最简单的KV(Key-Value)数据,Hive表都需要有schema。要从非HDFS或外部制表符号数据中生成一个Hive表,给其列命名并定义数据类型的话,用户就需要运行 CREATE EXTERNAL TABLE语句,如下面的HiveQL所示:
CREATE EXTERNAL TABLE flightdata_asv ( year INT, month INT, day INT, carrier STRING, origin STRING, dest STRING, depdelay INT, arrdelay INT ) COMMENT 'FAA on-time data' ROW FORMAT DELIMITED FIELDS TERMINATED by '9' STORED AS TEXTFILE LOCATION 'asv://aircarrier/flightdata'; |
Apache Hive的数据类型相对较少,并且不支持日期或时间字段,好在源数据*.csv对应的整数字段如年,月和日数值正好有利于数据的维护。出发(depdelay)和到达(arrdelay)的延误时间值将以分钟的形式呈现。
执行动态HiveQL语句,可以点击Elastic MapReduce的Interactive Console,然后点击Hive按钮打开动态Hive页面,页面顶部出现只读文本框,点击下方文本框为说明。(见图3)
图3:Hive图表选项列表包括新图表标题,列单元格显示某个选定图表字段名。点击﹥﹥键在单元格中插入选定的条目。(点击放大)
下载并安装Apache Hive ODBC驱动及Excel插件
返回Elastic MapReduce主页面,点击Downloads面板。找到与用户Excel版本对应的安装链接,然后点击Run,打开警告对话框。点击More Options,出现Run Anyway选项,点击开始安装,打开ODBC驱动启动Hive设置对话。在I Accept框中打钩。
点击Install开始安装驱动,完成后点击Finish退出安装。下一步,打开Excel,点击Data标签,确认Hive Pane图标存在,点击图标,工作表右面出现Hive Query仪表盘。安装插件会放置一个Hive Pane图标到目录的Hive Data部分。
返回EMR控制主页面,点击Open Ports打开Configure Ports页面,点击ODBC Server,往右拖动,打开TCP port 10000。
执行交互式Apache Hive查询
返回Excel,点击Hive Pane图标,打开Hive Query任务框,点击Enter Cluster Details来打开ODBC Hive Setup对话框,输入一个描述及DNS主机名称,接受TCP端口。下一步,选择Username/Password authentication,输入你的Elastic MapReduce门户实例的用户名及密码。(见图4)
图4:每个链接,机场,TCP端口和集群用户名密码都有其对应的具体名称。(点击放大)
若ODBC Hive对话框中设置的Hive选项正确,那么当用户打开Select or Enter Hive Connection时,输入的名称会作为描述字段弹出。打开Select the Hive Object to Query列表,选择flightdata_asv生成Columns列表。
如要执行一个聚合查询来显示延误的平均时间,可以勾选carrier和arrdelay栏,打开arrdelay字段的函数列表,然后双击列表中的avg,将其添加到HiveQL语句当中(见图5)。
图5:选择avg HiveQL进行聚合查询并双击,HiveQL功能比大多数的SQL更丰富一些
下一步,划去Limit Results勾选框,打开Aggregate Grouping列表,选择carrier列。
在avg()中输入arrdelay,如avg(arrdelay),这可以消除查询语句设计流程的缺陷,点击Execute Query得出查询结果。(见图6)
图6:这是HiveQL查询执行后的结果,B6好F9是FAA专用的两个字节代码,B6指代Jet Blue,F9指代Frontier Airlines。
删除错误的Carrier条目,这可能是由于每列的首标发生错误,导致信息被留在了文档中,结果出现在查询结果里。保留一位小数,关掉任务框,将信息添加到工作表,添加标题,X轴标题和数据标签。(见图7)
图7:Excel表单从图6的数据中生成得来
文章给出的例子阐述了运行HadoopOnAzure CTP的简单流程。微软代码为“Cloud Numerics”的项目也有相似的功能,但是它需要我们在Visual Studio 10以上版本的环境中进行操作。HadoopOnAzure能够将表格数据直接传送到Excel当中,以便做进一步的分析。此外,交互式Hive、Hive ODBC数据源以及对应的Excel插件,都使得HadoopOnAzure成为大数据处理的理想平台。
翻译
相关推荐
-
Spark尚未“成熟” 用户仍需“专业”
虽然Spark的应用对企业而言已经并不陌生,但对于一些企业来说,这项技术可能还是比较“前沿”。
-
关于如何选择混合云,你不得不知的几件事
近年来,提升云计算能力一直是IT决策者和企业对于未来规划的着重点,随着云计算的不断发展,混合云渐渐成为关键词。
-
【对话Teradata高管】我们很幸运,这是一个“大I小T”的时代
Teradata天睿公司近日在上海举办的“2017 Teradata大数据峰会”上,Teradata天睿公司高管们分享了Teradata在开源技术方面的观点和举措。
-
Tableau 携手神州数码 推进中国商业分析发展进程
为了帮助商业领域的更多从业者使用数据,在更短的时间内做出更好的决策,可视化分析领域的Tableau Software今天宣布与神州数码集团建立合作伙伴关系,在中国的商业分析进程中展开深度合作。