我最近一直在玩Hadoop。 我有一个六节点的集群,运行HDFS,并运行了一些MapRed作业。 到现在为止还挺好。 不过,我现在正在更系统地做更多的节点。 我们的基础系统是Ubuntu,目前的设置已经使用apt(安装正确的java运行时)和ssh / scp(传播出各种conf文件)进行pipe理。 这显然不是随着时间的推移而扩展的。
有没有人有任何经验的良好的系统pipe理(可能略有异构:不同的磁盘大小,每个节点上不同数量的cpu)hadoop集群自动? 我会考虑无盘启动 – 但想象一下,在一个大型的群集中,启动和运行群集可能在服务于操作系统的机器上是瓶颈的。 还是某种forms的分布式的debian易于保持机器本地环境的同步? 而且,人们如何通过许多(可能是异构的)机器成功pipe理conf文件呢?
首先十分感谢,
亚历克斯
我会build议保持您的节点尽可能相似。 正如你发现的那样,每个节点的不同设置使得生活变得困难。
我当前运行的每个集群都有相同的每个方框,这意味着每个节点的所有configuration都是相同的。 configuration存储在NFS homedir中。 这些机器安装为标准CentOS,然后应用CFengine策略来处理CDH hadoop / hbase软件包的安装,并设置为使用共享configuration。 守护进程启动后,机器将自动成为群集的一部分。
一般来说,我强烈build议使用CFengine,木偶,厨师或其他configuration系统之一。 这使得生活变得更加简单,特别是当你所有的configuration不同时。 这也意味着你只需要安装一个标准的操作系统,然后应用策略来处理所有的安装和configuration。 不需要networking启动。
有点不同的configuration有点令人沮丧的是像hdfs-site.xml和mapred-site这样的configuration文件不能使用inheritance,比如提供一个通用的文件,然后是一些特定的设置,比如datadir或者地图槽数量,节点。 所以你可能要做的就是创build一个通用文件,并将其与特定的节点设置合并,然后将其作为节点的configuration。