转载

使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

注册使用 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 服务构建一个 Big SQL 应用程序

配置 IBM Analytics for Hadoop 服务的一个实例

  1. 在 Bluemix 仪表板中单击 ADD A SERVICE 。选择 IBM Analytics for Hadoop 服务,这会向您应用程序中添加基于 Hadoop 的分析。
  2. Add Service 部分中,确保 App 字段包含 Leave unbound ,目前而言,应设置合适的设置。继续单击 CREATE 创建这个服务实例。
  3. 单击 IBM Analytics for Hadoop 服务实例来打开它。
  4. IBM Analytics for Hadoop 服务页面上,可以看到 Launch 链接和您打开 InfoSphere BigInsights Console 所需的凭据。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

    点击查看大图

    关闭 [x]

    使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

  5. 单击 Docs link

    阅读: 开始使用 Analytics for Hadoop

获取并部署示例应用程序

通过以下步骤获取并部署示例应用程序。

使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  1. 单击本教程开头的 Get the code
  2. 单击 Edit Code 进入编辑模式。

    示例应用程序将一个包含博客数据的文件加载到 Hive 中,然后使用一个 Big SQL JDBC 连接来检索该数据。要使用该应用程序的实例,可以单击本教程开头的 运行应用程序 按钮。打开 BigInsightsSample 文件夹来浏览代码。

  3. 要将示例应用程序从 DevOps Services 部署到 Bluemix,可以分解该存储库作为您账户下的一个新项目。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  4. 编辑 BigInsightsSample 文件夹中的 manifest.yml 文件,以便指定应用程序名称和主机的值,如下图所示。在 Bluemix 中创建 IBM Analytics for Hadoop 服务实例,在清单文件的 services 部分下指定服务名称。确保应用程序名称、主机名和服务名称不包含任何空格或特殊字符。
    • name :提供您选择的任何名称。该名称用于在 Bluemix 仪表板中标记该应用程序。
    • host :该应用程序的主机名。它形成该应用程序的完全限定路径的主机名部分。选择一个惟一的、与其他 Bluemix 用户所使用的名称不同的名称。
    • services :已在 Bluemix 上创建的 IBM Analytics for Hadoop 服务的名称。确保此服务未绑定到任何其他应用程序。
    使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

    要保存对 manifest.yml 文件的更改,可以单击 File > SaveCTRL+S 。通过以下步骤提交对 manifest.yml 文件的更改。

  5. 单击 Git Respository使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  6. 提供一条提交消息,然后单击 COMMIT使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

    点击查看大图

    关闭 [x]

    使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

  7. 单击 PUSH 将提交内容和标签从您的本地分支推送到远程分支。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

    点击查看大图

    关闭 [x]

    使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

  8. 配置构建器。示例随带了一个自定义构建文件,它简化了构建和部署过程。单击 BUILD & DEPLOY
    1. 选择 Advanced 选项卡,您可以看到一个类似下图的窗口。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
    2. 单击 add a builder 配置一个构建器。对于 Builder 字段,可以指定 Ant 。对于 Branch ,可以指定 master 。对于 Build script path ,可以指定 BigInsightsSample使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
    3. 单击 SAVE
    4. 单击 REQUEST BUILD 开始一次构建。
  9. 要配置部署器,可以单击 add a stage使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  10. Add Deployer Stage 窗口中,指定以下设置:
    • Target URL :保留默认值。
    • Application name :保留该字段为空,因为已在 manifest.yml 文件中提及它。
    • Organization :指定应用程序的 Bluemix 组织。
    • Space :保留默认值,如果想要部署在一个不同的空间中,则修改它。
    • Script :指定 cf push -p bisample.war
    使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

    单击 SAVE 并返回到 Build & Deploy 页面的 Advanced 选项卡。

  11. 将构建版本拖放到 dev 窗口中。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

示例简介

通过在基于云的平台上使用 InfoSphere BigInsights,可以构建和运行应用程序来使用 InfoSphere BigInsights 的一些主要组件,避免安装产品软件的开销。这个基于云的 InfoSphere BigInsights 实例包含 Big SQL 和 BigSheets 组件。

在此示例中,我们使用了 BigSheets 组件来创建一个针对社交媒体的工作簿,然后将该工作簿数据加载到一个 Big SQL 表中。接下来,我们使用了一个 Big SQL JDBC 连接来查询该表的内容。这里介绍的简单函数演示了如何轻松地在基于云的 InfoSphere BigInsights 中创建您自己的应用程序。该过程包含以下步骤。

  1. 设置您的开发环境。
  2. 将一个测试数据文件上传到 HDFS。
  3. 在 BigSheets 中创建一个工作簿,并准备一个制表符分隔的值 (TSV) 输出文件。
  4. 将 TSV 输出文件导入到一个 Big SQL 表中。
  5. 从您的 Java 应用程序使用 JDBC 连接查询一个 Big SQL 表。了解如何修改示例应用程序,然后将修改后的 WAR 文件部署到 Bluemix 环境。

第 1 步. 设置 BigInsights 环境

设置 BigInsights 环境来运行示例应用程序。

  1. 下载示例数据。
  2. 将 sampleData.zip 文件的内容解压到本地文件系统。该归档文件包含多个文件。但是,对于这个示例应用程序,只需要 blogs-data.txt 文件。该文件包含 IBM Watson 项目所使用的社交媒体数据。
  3. 使用以下一种方法将 blogs-data.txt 文件上传到 InfoSphere BigInsights Hadoop 文件系统:
    • 单击服务仪表板中的 Launch 来使用 BigInsights Web 控制台。
      1. 单击 BigInsights Web 控制台的 Files 选项卡。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

        点击查看大图

        关闭 [x]

        使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

      2. 在 HDFS 导航器中,展开 user 目录并选择具有与控制台页面右上角显示的相同的用户名的目录。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
      3. 单击 Upload 图标。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
      4. 找到 blogs-data.txt 文件,选择它,然后单击 OK 。该文件现在已位于分布式文件系统中。可以在主要窗格中查看该文件的内容。
    • 使用 HttpFS REST API 执行上传。

      使用 REST API 上传较大的文件。可以使用与这个示例应用程序捆绑的 httpfsUpload.sh 脚本。您可以在 InfoSphere BigInsights 文档 使用 HttpFS REST API 管理文件系统 中找到 REST API 的详细信息。

第 2 步. 将数据导入 BigSheets 中

现在将示例数据上传到 HDFS,您可以将该数据导入 BigSheets 中并创建一个包含该数据的工作簿。

  1. 登录到 InfoSphere BigInsights Web 控制台。单击 BigSheets 选项卡,然后单击 New workbook
  2. 将该工作簿命名为 WatsonBlogData 。在分布式文件系统浏览器中,选择上一步上传的 blogs-data.txt 文件。
  3. 在预览窗格中,选择一个新读取器,将该数据映射为一种电子表格格式。目前的读取器为 Line Reader

    单击 Line Reader 旁边的编辑按钮,并从下拉列表中选择 JSON Array 。( blogs-data.txt 文件中的数据采用了 JSON Array 结构的格式。)

    使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  4. 单击预览窗格中的 Fit Columns ,让表列数据显示得更紧凑。然后单击底部的绿色勾号来保存该工作簿。
  5. 在 BigSheets 工作簿页面上,单击 Build new workbook 创建一个包含先提供数据的工作簿。需要这个构建版本是因为主要工作簿不可编辑,而且我们想要组织工作簿中的列。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  6. 单击编辑按钮将新工作簿重命名为 WatsonBlogDataRevised使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  7. 因为无需使用所有列就可以完成设计,所以应该丢弃一些列。
    1. 单击任何列标题中的箭头,然后选择 Organize columns使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
    2. 单击以下列旁边的 x 删除它们:
      • Crawled
      • Inserted
      • IsAdult
      • PostSize
    3. 单击底部的勾号确认删除。
  8. 单击 Save 。然后单击 Save and Exit 并单击 Save
  9. 单击 Run 运行工作簿。等待运行完成。

第 3 步. 将一个 TSV 文件加载到一个 Big SQL 表中

可以导出 BigSheets 工作簿的内容,以便将它的数据加载到 Big SQL 表中供进一步分析。

  1. 导出 BigSheets 工作簿:
    1. 在 WatsonBlogDataRevised 工作簿的菜单栏中,单击 Export data使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
    2. 在下拉列表中,在 Format Type 中选择 TSV 类型。

      备注:Big SQL 可使用来自其他选择的输出,但可能需要额外的步骤。例如,如果选择 CSV,引号可能保留在表中。要使用没有引号的数据,可以使用 TRIM() 函数执行 SELECTCREATE TABLE AS

    3. 指定 Export to File
    4. 单击 Browse 在 HDFS 文件系统中指定一个目标目录。选择您的路径(比如 /user/<username>/sampleData/watson),然后输入新文件 WatsonBlogs 的名称。单击 OK
    5. 确保 Include Headers 复选框已清除,因为我们希望仅导出数据。单击 OK 。一个消息对话框显示工作簿已成功导出。单击 OK使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  2. 记下您想要在 Big SQL 中定义的 BigSheets 工作簿中的列名称和数据类型。我们从 BigSheets 导出了以下列:
    • Country :包含一个两字母的国家标识符。
    • FeedInfo :包含来自 Web 源的信息,这些信息具有不同的长度。
    • Language :包含标识源的语言的字符串。
    • Published :包含一个日期和时间戳。
    • SubjectHtml :包含一个具有不同长度的主题。
    • Tags :包含一个具有不同长度,提供类别的字符串。
    • Type :包含 Web 源的来源,它是一个新闻博客还是公共源。
    • URL :包含源的 Web 地址,具有不同的长度。

第 4 步. 使用该应用程序

用户现在可以使用此应用程序分析示例社交媒体数据了。

获取模式名称供以后在 Big SQL 控制台中使用

  1. 单击应用程序名称,打开您想要在 Bluemix 仪表板中创建的应用程序。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  2. 应用程序页面打开时,您会看到一个类似于下图的图标。单击 Show Credentials 查看 VCAP 服务环境变量。 使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

    可将属性导出到本地文件,或者复制最相关的信息用于访问 InfoSphere BigInsights Big SQL 服务器。

运行该应用程序

运行该应用程序或在浏览器中输入 http://myAppName.bluemix.net/

使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序

您的应用程序会创建一些字段来提供文件和表信息。它还创建了按钮来将数据加载到表中和查询这些表。

使用 IBM Analytics for Hadoop 服务构建一个 Big SQL 应用程序
  1. 作为用户,首先在 TSV File 字段中输入 TSV 文件的绝对路径。这是您在之前的一步中创建的 TSV 文件。在 Table 字段中输入一个表名称。将此表命名为 my_demotable 。这个字段包含您自己的用户定义的表名称。
  2. 单击 LOAD 在新表中填入来自该社交媒体示例的数据。
  3. 单击 Fetch data 查看结果。在此应用程序中,显示了前 5 条记录。
  4. 要验证您的表是否已创建,可以直接在 InfoSphere BigInsights Big SQL 控制台中运行查询。
    1. 返回到 InfoSphere BigInsights Web 控制台的 Welcome 页面。在 Quick Links 部分中,单击 Run Big SQL Queries 打开 Big SQL 页面。
    2. 这个示例应用程序使用的是 Big SQL V3.0 JDBC URL。因此,运行以下查询时选择 Big SQL 选项。输入以下命名以设置模式实例。模式名称可从 VCAP_SERVICES 清单 中找到。
      USE schemaname

      USE 命令在当前的活动会话中按默认设置建立模式名称。如果不发出 USE 命令,必须将所有表引用设置为完全限定,比如 schemaName.my_demotable

    3. 可以输入以下 SQL 代码来查询您创建的表:
      SELECT * FROM my_demotable;
    4. 该表的内容显示出来了。此结果可确认应用程序在正常运行。

从这个开发应用程序并部署到云的简单示例,您可能已看到基于云的 BigInsights 实例非常强大。

作为开发人员,可创建具有图形界面、嵌入式指令和分析工具的应用程序。InfoSphere BigInsights 提供了相关功能,云提供了一个更加富有成本效益、更容易访问和更灵活的使用平台。二者相结合,简化了开发和部署环境。

Sudhakar Ts 领导了 IBM 大数据的质量保证工作,对本教程的质量做出了巨大贡献。非常感谢他的帮助。

相关主题: Bluemix 简介 Bluemix 入门 Cloud Foundry 命令行工具 将应用程序部署到 Bluemix 中

本教程中使用到的 BLUEMIX 服务: Analytics for Hadoop 服务 可以帮助您分析和可视化 Hadoop 上的大数据,无需配置或者管理集群。

正文到此结束
Loading...