coreos&hdfs-在linux容器/docker中运行分布式文件系统

zd287kbt  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(326)

我需要在coreos集群上运行某种分布式文件系统。
因此,我想在coreos节点上运行hdfs。这可能吗?
我可以看到2个选项;
扩展coreos—直接在coreos上安装hdfs—这并不理想,因为它打破了coreos的整个集装箱化概念,意味着要安装许多附加组件
在coreos上的docker容器中运行hdfs并设置关联
方案2似乎是最好的办法,但也有一些潜在的阻碍因素;
如何将物理磁盘可靠地公开给运行hdfs的docker容器?
如何缩放容器关联?
这是如何工作的名称节点等?
干杯。

uemypmqf

uemypmqf1#

我会尽量提供两种可能性。这两个我都没试过,所以大部分都是建议。但能让你走上正确的道路。
首先,如果您想执行hdfs并且它需要在主机上访问设备,那么可以在有权访问所需主机设备(直接访问磁盘)的特权容器中运行hdfs守护程序。看到了吗https://docs.docker.com/reference/run/#runtime-特权linux功能和lxc配置,以获取 --privileged 以及 --device 旗帜。
理论上,您可以将设备传递给处理磁盘访问的容器。然后你可以用 --link 互相交谈。namenode将使用卷(通过 -v ). 不过,考虑到我对namenode所做的一点了解,似乎还没有一个好的高可用性解决方案,这是一个单一的失败点。
如果您正在寻找一个集群文件系统而不是hdfs,那么第二个要探索的选项是查看coreos471.1.0内核中最近添加的ceph fs支持:https://coreos.com/releases/#471.1.0. 然后,您就可以使用特权容器的相同方法访问主机磁盘来构建ceph fs集群。然后,您可能有一个“仅数据”容器,该容器安装了ceph工具以在ceph fs集群上挂载目录,并将其作为卷公开给其他容器使用。
虽然这两个都只是想法,我还没有使用hdfs或ceph个人(虽然我一直在关注ceph,并希望尽快尝试这样的东西作为概念的证明)。

相关问题