我正在处理的项目涉及一组Hadoop节点,每个节点的配置文件略有不同,具体为NameNode
,SecondaryNameNode
和{{1 }}。
我想要做的是创建一个覆盖GitHub的存储库,它可以容纳这些不同的目录集,文件夹层次结构和文件。
我想的一种方法就是创建一个repo,其中不同的配置是不同的分支。
然而,还有另一种方法吗?也许这样每个节点都存在于主回购的不同子目录中?我可以看出这可能会使推拉变得复杂。
有谁知道最好的方法是什么?
这是我想要如何设置的图纸:
答案 0 :(得分:0)
将不同的代码库放入单个存储库可能很麻烦。如果要进行适用于所有版本的更改,将其合并到所有分支中可能会非常繁琐且容易出错。
我会设计系统,使配置可以分开并传递给使用它的代码。然后,创建4个单独的存储库:
每个配置包都将主代码包作为依赖项。每个都可以有少量代码在主包中运行系统,传递自己的配置。
这样,您可以有效地重复使用代码,避免多个分支出现问题。
答案 1 :(得分:0)
如果我理解正确,您需要一些可用于部署各种配置文件的配置管理工具。
首先,Apache Ambari或Cloudera Manager已经为Hadoop做了这个。在我看来,没有理由推出自己的工具。
我一直在使用的其他替代品使用Github repo for Chef / Puppet / Ansible模块/角色,这些模块/角色不断部署到集群。您可以在整体环境级别,每个服务或仅对特定主机定义变量。并且所有配置都在主分支中。您使用主机组来指定将哪个服务或环境应用于哪些服务器