注册使用 IBM Bluemix ™
这个云平台提供了许多免费的服务、运行时和基础架构,可以帮助您快速构建和部署下一个移动或 Web 应用程序。
为 IBM® Analytics for Hadoop 服务创建一个示例大数据应用程序,该应用程序在一个基于云的 IBM® InfoSphere® BigInsights™ Enterprise Edition 实例上运行。
“ 使用 InfoSphere BigInsights BigSheets 分析社交媒体数据,了解 IBM Watson 品牌的全球普及范围。我将介绍如何使用 IBM Big SQL(InfoSphere BigInsights SQL 接口)查询该数据,部署一个包含读取该数据的 Java™ 应用程序的 WAR 文件。您最终会得到一个应用程序,用户可以使用该应用程序动态地对该数据进行查询。 ”
在云上开发 InfoSphere BigInsights 应用程序可以获得多项好处:
- 使用 IBM Analytics for Hadoop 云服务可以避免采购和配备自己的硬件集群的开销。
- 通过组合云中的多种可用服务来创建应用程序。
- 在应用程序需求增长时,使用您开发环境的基于云的基础架构来扩展硬件环境。
完成您的应用程序的前提条件
- 在 IBM Bluemix 上注册。
- 在 IBM DevOps Services 上进行注册。
- 配置 IBM Analytics for Hadoop 服务的一个实例
配置 IBM Analytics for Hadoop 服务的一个实例
- 在 Bluemix 仪表板中单击 ADD A SERVICE 。选择 IBM Analytics for Hadoop 服务,这会向您应用程序中添加基于 Hadoop 的分析。
- 在 Add Service 部分中,确保 App 字段包含 Leave unbound ,目前而言,应设置合适的设置。继续单击 CREATE 创建这个服务实例。
- 单击 IBM Analytics for Hadoop 服务实例来打开它。
- 在 IBM Analytics for Hadoop 服务页面上,可以看到 Launch 链接和您打开 InfoSphere BigInsights Console 所需的凭据。
点击查看大图
关闭 [x]
- 单击 Docs link 。
阅读: 开始使用 Analytics for Hadoop
获取并部署示例应用程序
通过以下步骤获取并部署示例应用程序。
- 单击本教程开头的 Get the code 。
- 单击 Edit Code 进入编辑模式。
示例应用程序将一个包含博客数据的文件加载到 Hive 中,然后使用一个 Big SQL JDBC 连接来检索该数据。要使用该应用程序的实例,可以单击本教程开头的 运行应用程序 按钮。打开 BigInsightsSample 文件夹来浏览代码。
- 要将示例应用程序从 DevOps Services 部署到 Bluemix,可以分解该存储库作为您账户下的一个新项目。
- 编辑 BigInsightsSample 文件夹中的 manifest.yml 文件,以便指定应用程序名称和主机的值,如下图所示。在 Bluemix 中创建 IBM Analytics for Hadoop 服务实例,在清单文件的 services 部分下指定服务名称。确保应用程序名称、主机名和服务名称不包含任何空格或特殊字符。
-
name
:提供您选择的任何名称。该名称用于在 Bluemix 仪表板中标记该应用程序。 -
host
:该应用程序的主机名。它形成该应用程序的完全限定路径的主机名部分。选择一个惟一的、与其他 Bluemix 用户所使用的名称不同的名称。 -
services
:已在 Bluemix 上创建的 IBM Analytics for Hadoop 服务的名称。确保此服务未绑定到任何其他应用程序。
要保存对 manifest.yml 文件的更改,可以单击 File > Save 或 CTRL+S 。通过以下步骤提交对 manifest.yml 文件的更改。
- 单击 Git Respository 。
- 提供一条提交消息,然后单击 COMMIT 。
点击查看大图
关闭 [x]
- 单击 PUSH 将提交内容和标签从您的本地分支推送到远程分支。
点击查看大图
关闭 [x]
- 配置构建器。示例随带了一个自定义构建文件,它简化了构建和部署过程。单击 BUILD & DEPLOY 。
- 选择 Advanced 选项卡,您可以看到一个类似下图的窗口。
- 单击 add a builder 配置一个构建器。对于 Builder 字段,可以指定
Ant
。对于 Branch ,可以指定 master
。对于 Build script path ,可以指定 BigInsightsSample
。 - 单击 SAVE 。
- 单击 REQUEST BUILD 开始一次构建。
- 要配置部署器,可以单击 add a stage 。
- 在 Add Deployer Stage 窗口中,指定以下设置:
- Target URL :保留默认值。
- Application name :保留该字段为空,因为已在 manifest.yml 文件中提及它。
- Organization :指定应用程序的 Bluemix 组织。
- Space :保留默认值,如果想要部署在一个不同的空间中,则修改它。
- Script :指定
cf push -p bisample.war
。
单击 SAVE 并返回到 Build & Deploy 页面的 Advanced 选项卡。
- 将构建版本拖放到 dev 窗口中。
示例简介
通过在基于云的平台上使用 InfoSphere BigInsights,可以构建和运行应用程序来使用 InfoSphere BigInsights 的一些主要组件,避免安装产品软件的开销。这个基于云的 InfoSphere BigInsights 实例包含 Big SQL 和 BigSheets 组件。
在此示例中,我们使用了 BigSheets 组件来创建一个针对社交媒体的工作簿,然后将该工作簿数据加载到一个 Big SQL 表中。接下来,我们使用了一个 Big SQL JDBC 连接来查询该表的内容。这里介绍的简单函数演示了如何轻松地在基于云的 InfoSphere BigInsights 中创建您自己的应用程序。该过程包含以下步骤。
- 设置您的开发环境。
- 将一个测试数据文件上传到 HDFS。
- 在 BigSheets 中创建一个工作簿,并准备一个制表符分隔的值 (TSV) 输出文件。
- 将 TSV 输出文件导入到一个 Big SQL 表中。
- 从您的 Java 应用程序使用 JDBC 连接查询一个 Big SQL 表。了解如何修改示例应用程序,然后将修改后的 WAR 文件部署到 Bluemix 环境。
第 1 步. 设置 BigInsights 环境
设置 BigInsights 环境来运行示例应用程序。
- 下载示例数据。
- 将 sampleData.zip 文件的内容解压到本地文件系统。该归档文件包含多个文件。但是,对于这个示例应用程序,只需要 blogs-data.txt 文件。该文件包含 IBM Watson 项目所使用的社交媒体数据。
- 使用以下一种方法将 blogs-data.txt 文件上传到 InfoSphere BigInsights Hadoop 文件系统:
第 2 步. 将数据导入 BigSheets 中
现在将示例数据上传到 HDFS,您可以将该数据导入 BigSheets 中并创建一个包含该数据的工作簿。
- 登录到 InfoSphere BigInsights Web 控制台。单击 BigSheets 选项卡,然后单击 New workbook 。
- 将该工作簿命名为
WatsonBlogData
。在分布式文件系统浏览器中,选择上一步上传的 blogs-data.txt 文件。 - 在预览窗格中,选择一个新读取器,将该数据映射为一种电子表格格式。目前的读取器为 Line Reader 。
单击 Line Reader 旁边的编辑按钮,并从下拉列表中选择 JSON Array 。( blogs-data.txt 文件中的数据采用了 JSON Array 结构的格式。)
- 单击预览窗格中的 Fit Columns ,让表列数据显示得更紧凑。然后单击底部的绿色勾号来保存该工作簿。
- 在 BigSheets 工作簿页面上,单击 Build new workbook 创建一个包含先提供数据的工作簿。需要这个构建版本是因为主要工作簿不可编辑,而且我们想要组织工作簿中的列。
- 单击编辑按钮将新工作簿重命名为
WatsonBlogDataRevised
。 - 因为无需使用所有列就可以完成设计,所以应该丢弃一些列。
- 单击任何列标题中的箭头,然后选择 Organize columns 。
- 单击以下列旁边的 x 删除它们:
- Crawled
- Inserted
- IsAdult
- PostSize
- 单击底部的勾号确认删除。
- 单击 Save 。然后单击 Save and Exit 并单击 Save 。
- 单击 Run 运行工作簿。等待运行完成。
第 3 步. 将一个 TSV 文件加载到一个 Big SQL 表中
可以导出 BigSheets 工作簿的内容,以便将它的数据加载到 Big SQL 表中供进一步分析。
- 导出 BigSheets 工作簿:
- 在 WatsonBlogDataRevised 工作簿的菜单栏中,单击 Export data 。
- 在下拉列表中,在 Format Type 中选择 TSV 类型。
备注:Big SQL 可使用来自其他选择的输出,但可能需要额外的步骤。例如,如果选择 CSV,引号可能保留在表中。要使用没有引号的数据,可以使用 TRIM()
函数执行 SELECT
或 CREATE TABLE AS
。
- 指定 Export to File 。
- 单击 Browse 在 HDFS 文件系统中指定一个目标目录。选择您的路径(比如 /user/<username>/sampleData/watson),然后输入新文件
WatsonBlogs
的名称。单击 OK 。 - 确保 Include Headers 复选框已清除,因为我们希望仅导出数据。单击 OK 。一个消息对话框显示工作簿已成功导出。单击 OK 。
- 记下您想要在 Big SQL 中定义的 BigSheets 工作簿中的列名称和数据类型。我们从 BigSheets 导出了以下列:
- Country :包含一个两字母的国家标识符。
- FeedInfo :包含来自 Web 源的信息,这些信息具有不同的长度。
- Language :包含标识源的语言的字符串。
- Published :包含一个日期和时间戳。
- SubjectHtml :包含一个具有不同长度的主题。
- Tags :包含一个具有不同长度,提供类别的字符串。
- Type :包含 Web 源的来源,它是一个新闻博客还是公共源。
- URL :包含源的 Web 地址,具有不同的长度。
第 4 步. 使用该应用程序
用户现在可以使用此应用程序分析示例社交媒体数据了。
获取模式名称供以后在 Big SQL 控制台中使用
- 单击应用程序名称,打开您想要在 Bluemix 仪表板中创建的应用程序。
- 应用程序页面打开时,您会看到一个类似于下图的图标。单击 Show Credentials 查看 VCAP 服务环境变量。
可将属性导出到本地文件,或者复制最相关的信息用于访问 InfoSphere BigInsights Big SQL 服务器。
运行该应用程序
运行该应用程序或在浏览器中输入 http://myAppName.bluemix.net/
。
您的应用程序会创建一些字段来提供文件和表信息。它还创建了按钮来将数据加载到表中和查询这些表。
- 作为用户,首先在 TSV File 字段中输入 TSV 文件的绝对路径。这是您在之前的一步中创建的 TSV 文件。在 Table 字段中输入一个表名称。将此表命名为
my_demotable
。这个字段包含您自己的用户定义的表名称。 - 单击 LOAD 在新表中填入来自该社交媒体示例的数据。
- 单击 Fetch data 查看结果。在此应用程序中,显示了前 5 条记录。
- 要验证您的表是否已创建,可以直接在 InfoSphere BigInsights Big SQL 控制台中运行查询。
- 返回到 InfoSphere BigInsights Web 控制台的 Welcome 页面。在 Quick Links 部分中,单击 Run Big SQL Queries 打开 Big SQL 页面。
- 这个示例应用程序使用的是 Big SQL V3.0 JDBC URL。因此,运行以下查询时选择 Big SQL 选项。输入以下命名以设置模式实例。模式名称可从
VCAP_SERVICES
清单 中找到。 USE schemaname
USE
命令在当前的活动会话中按默认设置建立模式名称。如果不发出 USE
命令,必须将所有表引用设置为完全限定,比如 schemaName.my_demotable
。
- 可以输入以下 SQL 代码来查询您创建的表:
SELECT * FROM my_demotable;
- 该表的内容显示出来了。此结果可确认应用程序在正常运行。
从这个开发应用程序并部署到云的简单示例,您可能已看到基于云的 BigInsights 实例非常强大。
作为开发人员,可创建具有图形界面、嵌入式指令和分析工具的应用程序。InfoSphere BigInsights 提供了相关功能,云提供了一个更加富有成本效益、更容易访问和更灵活的使用平台。二者相结合,简化了开发和部署环境。
Sudhakar Ts 领导了 IBM 大数据的质量保证工作,对本教程的质量做出了巨大贡献。非常感谢他的帮助。
相关主题: Bluemix 简介 Bluemix 入门 Cloud Foundry 命令行工具 将应用程序部署到 Bluemix 中
本教程中使用到的 BLUEMIX 服务: Analytics for Hadoop 服务 可以帮助您分析和可视化 Hadoop 上的大数据,无需配置或者管理集群。