将 EDP 示例从 sahara-extra 仓库移动到 sahara

https://blueprints.launchpad.net/sahara/+spec/edp-move-examples

将 Sahara EDP 示例从 sahara-extra 仓库移动到 sahara 仓库可以实现以下几点

  • 因为它消除了代码重复,因为这些示例实际上是在集成测试中使用的

  • 它移除了 sahara-extra 仓库中的一个元素,从而使我们更接近于废弃该仓库并简化我们的仓库结构

  • 它将示例放在开发者更容易找到的地方,并简化了将示例与 Sahara 发行版捆绑的可能性

问题描述

目标是创建一个统一的 EDP 作业集合,该集合可用于教育用户和开发者如何创建/运行作业,并且也可以用作在集成测试期间提交的作业。

提议的变更

在 sahara 根目录下,我们应该创建一个新的目录

sahara/edp-examples

目录结构应遵循标准模式(名称本身并不重要,这只是一个说明)

subdirectory_for_each_example/
  README.rst (what it is, how to compile, etc)
  script_and_jar_files
  src_for_jars/
  how_to_run_from_node_command_line/ (optional)
  expected_input_and_output/ (optional)
hadoop_1_specific_examples/
  subdirectory_for_each_example
hadoop_2_specific_examples/
  subdirectory_for_each_example

集成测试应该被修改为从 sahara/edp-examples 目录中提取作业文件。

以下是一些关于当前脚本和 jar 文件在 sahara-extra/edp-examplessahara/tests/integration/tests/resources 之间的等效性说明

pig-job/example.pig == resources/edp-job.pig
pig-job/udf.jar == resources/edp-lib.jar
wordcount/edp-java.jar == resources/edp-java/edp-java.jar

替代方案

数据模型影响

REST API 影响

其他最终用户影响

示例将不再在 sahara-extra 仓库中找到。我们或许可以在那里放置一个 README 文件,说明“我们已迁移”,持续一个发布周期。

部署者影响

开发者影响

Sahara-image-elements impact

Sahara-dashboard / Horizon 影响

实现

负责人

目前还没有

工作项

这个问题包含几个组成部分

  • 将示例移动到 sahara 仓库

  • 将集成测试使用的任何作业合并到新的示例目录中,以创建一个全面的集合

  • 为当前缺少它们的任何示例提供源代码和编译说明

  • 使集成测试引用新的目录结构

  • 确定哪些示例仅适用于特定 Hadoop 版本(如果有的话)。大多数示例适用于 Hadoop 1 和 Hadoop 2,但有些不适用。特定版本的示例应放在以版本命名的子目录中

依赖项

测试

测试将体现在集成测试中。如果 EDP 示例合并以及集成测试作业后集成测试成功运行,则更改将被视为成功。

文档影响

如果我们的当前文档引用了 EDP 示例,则这些引用应更改为新位置。如果我们的当前文档没有引用 EDP 示例,则应在开发者和/或用户指南中添加引用。

参考资料