我在具有非专用节点的群集上运行Hadoop(即它与其他应用程序/用户共享节点)。当其他用户使用群集的节点时,不允许在该节点中运行Hadoop作业。因此,在给定时刻可能只有少数节点可用,并且这几个节点不具有Hadoop作业所需的所有数据块(副本)。
我还有一个用于备份的大型网络附加存储。所以,我想知道是否有办法将它用作Hadoop的辅助存储。例如,如果群集中缺少某些数据块,Hadoop将从辅助/备份存储中获取该块。
有什么想法吗?
提前致谢!
答案 0 :(得分:1)
我不知道hadoop的这种“混合”存储模式。所以我不认为你的场景是由hadoop直接支持的。
对我来说,看起来你需要更多的“弹性”解决方案。如果EMR可用于开源 - 它可能是一个不错的选择 - 其中NAS将扮演S3的角色。
在你的情况下我会建议以下解决方案:
在所有可用服务器上安装和运行数据节点。它们不像任务跟踪器那样充满资源 - 因为它们只是顺序读/写数据。
在所有计算机上也安装任务跟踪器,但仅在现在未使用的那些上运行。 Hadoop非常智能,可以在可能的情况下保留数据位置。与此同时,hadoop将更容易更改任务跟踪器的数量,然后消失数据节点。
或者,您只能构建任务跟踪器集群,而不是使用HDFS并针对NAS运行作业。
在所有情况下,我仍然期望与其他用户的主要干扰是网络拥塞 - 在随机播放阶段,hadoop通常会使网络饱和。