使用开源软件进行大数据处理教学

目前还没有读者喜欢这篇文章。
Open data brain

Opensource.com

海量且多样化的数据量持续增长,以及数据密集型应用的增长,都提出了在各个领域寻找有效数据管理手段的需求。根据最近的一份报告显示,企业面临着大数据管理方面的巨大技能缺口,仅在英国,这一缺口就从 2007 年的 400 人增加到 2012 年的 4,000 人。除此之外,学生普遍缺乏对当前数据分析流程的理解,而随着物联网 (IoT) 和实时数据的增长,这些流程对于未来的挑战变得极其重要。

作为一名计算机科学家,研究和构建建模和模拟应用程序,我最初对 “大数据” 这个术语的吸引力感到困惑。商业似乎专注于用于数据分析的 Hadoop 相关软件,并且简历上有 Hadoop 相关项目可能会带来额外的好处。作为云计算和软件工程的老师,我决定为两名学生布置与 Hadoop 相关的项目,重点是 “智慧城市” 的大数据管理,并采访他们关于他们的学习目标,以了解他们对这些技术的看法。

作为先决条件,学生们可以完全自由地检查 Hadoop 大数据处理的主题,并被要求探索该领域的任何他们想要的工具。Hadoop 是一组工具,支持大数据应用程序的运行,通过多次作业执行,可以快速处理大量数据。它是一个运行 MapReduce 作业的环境,这些作业通常按批次排序。Hadoop 已成为需要分析数据的科学项目中最重要的工具之一。我的学生调查的一些 Hadoop 相关工具包括:

  • Apache Ambari:用于管理和监控 Hadoop 集群的框架
  • Apache Pig:用于运行代码以分析大型数据集的平台。
  • Apache Sqoop:用于在 Hadoop 和其他数据存储之间移动数据的工具
  • Apache ZooKeeper:用于提供同步和维护信息设置的工具。
  • Apache Spark:一种较新的工具,用于更快地在某些类型的数据上运行分析。
  • Apache Flume:一种收集稍后存储在 HDFS 中的信息的系统。
  • Apache Hive:一种允许用户使用类似 SQL 的语言分析数据的工具。
  • Apache Oozie:一种启动分析作业的工具,这些作业已被分解为不同部分的正确顺序。
  • Hadoop 分布式文件系统 (HDFS):一种用于在节点之间划分数据的框架。
  • HCatalog:一种用于上传表格和管理数据的工具,使用户能够使用不同的处理工具(如 Pig、Hive 和 MapReduce)来分析数据。

在学生们成功完成他们的毕业论文后,我问了他们一些问题,以了解他们从经验中学到了什么。 以下是我的两位学生 Saudamini Sonalker 和 Rafiat Olubodun Kadiri 的回答,他们正在使用 Hadoop 进行独立实验。

你为什么想学习 Hadoop? 只是想学习一些新东西,还是受到了行业对该项目的兴趣的影响?

Saudamini: 在阅读了 Victor Mayer-Schonberger 和 Kenneth Cukier 的一本关于大数据的书《大数据:一场将改变我们的生活、工作和思考方式的革命》之后,我主要受到了启发来研究这个主题。辅助大数据处理的工具的预测性质吸引我更多地了解它。专注于智慧城市数据也是该项目的一个有趣元素。我想更多地了解城市数据如何被用来使城市高效、绿色和智能。

Rafiat: 我选择 Hadoop 的主题是因为它是一个新的领域; 这是一个流行语,并且最近一直在市场上占据主导地位。不同的企业都在使用它,包括像 Twitter 和 Facebook 这样的社交媒体网站,它们使用 Hadoop 来挖掘数据以用于不同的目的,使他们能够做出合理的商业决策。

公司用大数据做什么? 他们用它来问什么样的问题?

Saudamini: 公司将大数据用于多种目的。 亚马逊利用它进行推荐,Skyscanner 和 Kayak 通过监控个人的过去搜索来调整航班价格,而 Google 使用它来确定搜索结果的顺序。 大数据的一个有趣的用途是阿姆斯特丹的 能源地图集 项目。 它使用了城市内的能源消耗数据,通过让公民了解自己的使用情况来推广可再生能源。

Rafiat: 不同的公司对大数据有不同的用途。 公司对大数据的使用取决于他们向公众提供的服务类型。 像 eBay 和亚马逊这样的企业使用大数据来预测客户根据他们之前的购买历史以及其他客户的类似购买可能想要什么

在设置沙箱环境时,安装 Hadoop 时遇到了哪些问题? 是什么促使你选择 Hortonworks Sandbox 进行实验?

Saudamini: 在决定使用 Hortonworks 数据平台之前,我探索了几种选择。选择它的主要原因是因为它是开源和免费的。其他竞争对手,如 MapR、Amazon Web Services 和 Cloudera,无论平台多么优秀,都非常昂贵。但是,设置沙箱有严格的内存要求。需要一个 64 位处理器才能通过虚拟机访问沙箱,并且至少需要 4GB RAM。这减慢了我的流程,并且该平台在要求方面没有灵活性。

Rafiat: 有相当多的公共 Hadoop 集群专为在计算环境中存储和分析大量非结构化数据而设计。 它们可以在云基础设施上使用,例如 Heroku、Hortonworks Sandbox、Azure 等。

经过几次搜索后,我决定使用 Hortonworks 数据平台,一个开源的 apache Hadoop 数据平台。 系统要求包括使用 Windows 或 Mac 操作系统,至少 4GB 的 RAM,一个虚拟机环境,以及一个支持虚拟化的 64 位芯片。

第一步是下载虚拟机,然后从 Hortonworks 网站下载沙箱。 在此之后,我使用给定的 IP 地址连接到沙箱。

使用 Hortonworks 沙箱进行研究有一些负面影响,我仍然面临这些影响。 一段时间我无法使用给定的 IP 地址访问沙箱,但在多次尝试后,它起作用了。 其次,虚拟机一打开就会减慢我的电脑速度,并且查询需要很长时间才能加载。

此外,我面临的问题是,当我的机器自行关闭而不允许我自行关闭虚拟机时,下次我打开它时,虚拟机会出现配置错误,这限制了我访问沙箱。 我面临的另一个问题是有时无法访问某些工具,这减慢了我的研究速度。

Hortonworks 数据平台如何工作?

Saudamini: 该平台可以分为三个层次:数据访问层、集群资源管理和 HDFS。 数据访问层是用户上传、编目和管理数据的地方;一个人使用这一层来输入他们的 Hive/Pig 作业以供系统执行。 集群资源管理 (YARN) 是数据处理引擎的架构中心,因此可以在 HDFS 上运行多个应用程序。 这一层本质上充当了其他两者的翻译器。 最后,HDFS 是 MapReduce 作业在主节点和从节点之间并行运行的地方。

Ambari 是一个基于 Web 的 GUI,可以与底层机器通信,并允许用户设置和管理 Hadoop 集群。

Rafiat: 访问沙箱时,我被定向到一个页面,我在那里可以访问不同的工具,如 Hive、文件浏览器、Pig、作业浏览器等。我可以上传不同类型的文件(zip 文件、csv、xml),然后使用 Hive、Pig 和 HCatalog 等工具,通过文件浏览器图标上传的文件来创建表。然后我可以创建查询来提供具有不同标准的各种类型的表以满足需求。

Ambari 可用于监控和管理 Hadoop 集群。 监控已执行的查询的结果,并显示查询对 CPU 使用率、内存使用率、网络使用率等的影响。

你探索了哪些工具,以及在此过程中你学到了哪些新东西?

Saudamini: 最初,我计划探索 Pig 和 Hive,但我在 Hortonworks Sandbox 上运行 Pig 脚本时遇到问题,因此坚持使用 Hive。 Hive 查询语言与 SQL 非常相似,因此如果有人精通后者,那么他们在使用该工具时应该不会遇到问题。 在 Hortonworks Sandbox 上,Hive 有一个名为 Beeswax 的图形用户界面。 Hive 将你编写的查询转换为 MapReduce 作业。 是否需要多个选项来处理数据取决于从事大型项目的用户的技能组合。 Hive 消除了培训或雇用外部资源以填补空白的需求。 这种灵活性在这样的情况下很有用。

Rafiat: 我使用了 Hive,它使用了一种类似 SQL 的脚本语言,称为 HiveQL。 它适用于熟悉结构化查询语言的用户。 此外,Pig 被用作一种数据分析语言,它也是 Hadoop 上的一个高级处理层。 它由一种名为 Pig Latin 的语言组成。

你处理了什么样的文件? 智慧城市数据集?

Saudamini: 我专注于智慧城市数据,特别是伦敦交通和社会数据。

Rafiat: 智慧城市数据被用于这些实验,大多数数据都是从 ITU 数据统计网站和伦敦数据存储网站检索的。

实验的目标是什么?你们取得了什么成果?

Saudamini: 目标是观察底层机制和集群负载的性能。在处理不同的 Big Data 文件后,我比较了 CPU 性能、集群负载、内存使用情况和网络使用情况的结果。

在平台上处理了交通和社会数据,以检查在伦敦实施智能办公室以减少交通和节省人们时间的可能性。假设是在交通繁忙的行政区和工作目的地最多的行政区之间存在相关性。虽然在大多数情况下都是如此,但这些行政区不像最初想象的那样位于伦敦市中心。

Rafiat: 实验的目标是分析从不同来源(如国际电信联盟 (ITU) 网站、伦敦数据存储、Amazon Web Services 上的公共数据集等)检索到的一组数据。目的是使用数据量作为分析数据时要考虑的标准之一。通过这样做,该实验将能够显示处理数据需要多长时间。

如果现在给你一个大数据处理项目,你将如何处理?

Saudamini: 如果时间不是问题,并且价格是一个问题,那么我建议使用 Hortonworks Sandbox,因为它对数据源类型、数据处理工具选项和 Ambari 环境的灵活性提供了完整的数据管理体验。但是,如果时间至关重要并且金钱不是问题,那么考虑提供类似云中用户体验的其他选项将是有益的。

Rafiat: 我会在专门用于该平台的单独机器上使用 Hortonworks Data Platform,因为我自己的机器配置不高。

作为一名计算机科学专业的学生,你认为对于数据管理,我们应该总是使用这些工具吗?

Saudamini: 如果您正在处理的数据集很大,那么我认为建议使用像这样的 Big Data 工具。它们的灵活性和快速处理使它们成为部署为解决智慧城市问题的理想选择。但是,我不相信我们应该总是使用它们。如果数据集不需要,我们实际上可以尝试避免使用这些工具。许多分析功能可以通过其他 BI 工具完成。Big Data 工具的学习曲线可能很陡峭,因此在部署使用它们的系统时应考虑培训用户。

Rafiat: 数据管理是一个非常重要的主题。作为学生、个人或组织,有效管理数据具有不同的优势。这包括防止数据重复,从而节省内存空间。如果需要,它可以验证结果。数据管理可以正确理解数据,使用查询来提供所需的特定信息,因此可以轻松理解数据。

总而言之,我们在使用工具处理 Big Data 应用程序方面得到了不同的结果。当时,开放的 Hadoop 数据平台似乎是显而易见的选择。如前所述,MapReduce 是 Hadoop 分布式文件系统的核心。Hortonworks Sandbox 配备了 YARN,这是第二代 MapReduce。它划分了两个重要任务,使流程更加高效。YARN 支持批处理以及实时处理项目。Hortonworks Data Platform 能够适应用户现有的数据架构,这是一个巨大的优势。除了该平台是免费、高效且适应性强之外,它还提供了一个广泛的教程和基于用户的指南列表,介绍了如何使用它提供的服务。

由于大数据是当前的流行语,因此有很多大数据处理平台可用。大多数服务;Amazon Web Services、Cloudera、MapR 等等,都会根据流量和他们处理的数据量向用户收费。Cloudera 的网站声称,“该公司的企业数据中心 (EDH) 软件平台使组织能够存储、处理和分析任何类型的、任何容量的所有企业数据——从而创造卓越的成本效益并实现业务转型。”

当前朝着开放数据生成海量数据的趋势需要实时处理,从而需要智能解决方案来处理它。拥有更多开源工具可以推动进一步的开放数据研究,不仅影响计算,还会影响社会科学,经济学家和政府可以在其中利用大数据。

返回到
学校

本文是返校季系列的一部分,重点介绍面向各级学生的开源项目和工具。

User profile image.
一名对涉及软件设计、开发和交付的各种活动感兴趣的软件工程师,使用各种平台和工具。

1 条评论

Will 说得很好——除了混淆“大数据”和“高级分析”(它们不是同一件事)之外,我认为很多营销人员尤其是在为了“大”而努力变得“大”——Gartner 有一个预测(我认为是去年)“数据湖”中 90% 的数据将永远不会被使用。 http://goo.gl/Ksdrqj

Creative Commons License本作品已获得 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© 2025 open-source.net.cn. All rights reserved.