4

CoreOS クラスター上で動作する何らかの分散ファイル システムが必要です。

そのため、CoreOS ノードで HDFS を実行したいと考えています。これは可能ですか?

2 つのオプションが表示されます。

  1. CoreOS を拡張する - HDFS を CoreOS に直接インストールする - CoreOS のコンテナ化の概念全体を壊し、多くの追加コンポーネントをインストールすることを意味するため、理想的ではありません
  2. CoreOS 上の Docker コンテナで HDFS を実行し、アフィニティを設定する

オプション 2 が最善のアプローチのように思えますが、いくつかの潜在的な阻害要因があります。

  • HDFS を実行している Docker コンテナーに物理ディスクを確実に公開するにはどうすればよいですか?
  • コンテナのアフィニティをどのようにスケーリングしますか?
  • これは Name ノードなどでどのように機能しますか?

乾杯。

4

1 に答える 1

6

2つの可能性を提供しようとします。私はこれらのいずれも試していないので、ほとんどが提案です。しかし、あなたを正しい道に導くことができます。

最初に、HDFS を実行する必要があり、ホスト上のデバイス アクセスが必要な場合は、必要なホスト デバイス (直接ディスク) にアクセスできる特権コンテナーで HDFS デーモンを実行します。およびフラグの詳細については、https://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configurationを参照してください。--privileged--device

理論的には、ディスクへのアクセスを処理しているコンテナーにデバイスを渡すことができます。--link次に、お互いに話すようなものを使用できます。NameNode は、ボリューム ( で渡される) を使用してホストにメタデータを格納し-vます。ただし、私が NameNode について少し読んだことを考えると、とにかく高可用性のための良い解決策はまだないように思われ、それは単一障害点です。

特に HDFS ではなく、クラスター化されたファイル システムを探している場合、調査する 2 番目のオプションは、CoreOS 471.1.0 のカーネルに追加された最近の Ceph FS サポートを確認することです: https://coreos.com/releases /#471.1.0 . その後、特権コンテナーの同じアプローチを使用してホスト ディスクにアクセスし、Ceph FS クラスターを構築できる場合があります。次に、Ceph FS クラスターにディレクトリをマウントするための Ceph ツールがインストールされた「データのみ」のコンテナーがあり、これを他のコンテナーが使用するボリュームとして公開する場合があります。

これらはどちらも単なるアイデアであり、個人的には HDFS や Ceph を使用したことはありません (ただし、Ceph に注目しており、概念実証としてこのようなものをすぐに試してみたいと思っています)。

于 2014-10-17T16:27:39.857 に答える