生活在单个GitHub存储库下的各种源存储库的嵌套结构

时间:2017-10-13 17:21:26

标签: git hadoop github

我正在处理的项目涉及一组Hadoop节点,每个节点的配置文件略有不同,具体为NameNodeSecondaryNameNode和{{1 }}。

我想要做的是创建一个覆盖GitHub的存储库,它可以容纳这些不同的目录集,文件夹层次结构和文件。

我想的一种方法就是创建一个repo,其中不同的配置是不同的分支。

然而,还有另一种方法吗?也许这样每个节点都存在于主回购的不同子目录中?我可以看出这可能会使推拉变得复杂。

有谁知道最好的方法是什么?

这是我想要如何设置的图纸:

enter image description here

2 个答案:

答案 0 :(得分:0)

将不同的代码库放入单个存储库可能很麻烦。如果要进行适用于所有版本的更改,将其合并到所有分支中可能会非常繁琐且容易出错。

我会设计系统,使配置可以分开并传递给使用它的代码。然后,创建4个单独的存储库:

  • 主要代码
  • NameNode config
  • SecondaryNameNode config
  • DataNode config

每个配置包都将主代码包作为依赖项。每个都可以有少量代码在主包中运行系统,传递自己的配置。

这样,您可以有效地重复使用代码,避免多个分支出现问题。

答案 1 :(得分:0)

如果我理解正确,您需要一些可用于部署各种配置文件的配置管理工具。

首先,Apache Ambari或Cloudera Manager已经为Hadoop做了这个。在我看来,没有理由推出自己的工具。

我一直在使用的其他替代品使用Github repo for Chef / Puppet / Ansible模块/角色,这些模块/角色不断部署到集群。您可以在整体环境级别,每个服务或仅对特定主机定义变量。并且所有配置都在主分支中。您使用主机组来指定将哪个服务或环境应用于哪些服务器