2016-12-04 1 views
0

私はmesosクラスタを持っており、2種類のマイクロサービスを実行する必要があります.1つは非常に大きなファイル(ファイル用に2GBを超える可能性があります)を作成し、もう1つはそれらのファイルを分析しています。分析用マイクロサービスはプロデューササービスよりも時間がかかります。 分析サービスが完了した後、ファイルを削除することができます。Mesosの2つのマイクロサービス間で大きなファイルを共有するには?

私は2つの選択肢を考えた:

  1. NFS - プロデューサーのサービスはNFS上のすべてのファイルを作成し、分析サービスは、共有フォルダから直接それを取っています。 (私のクラスタでは、このアプローチがすべての内部帯域幅を消費することに懸念しています)
  2. ローカルディスク(私の好み) - この場合、分析用のマイクロデバイスを何らかの方法で実装して、同じMesosスレーブ上でこの特定のファイルを作成しました。 (私はこのアプローチが可能であるかどうかはわかりません)

この場合、どのようなベストプラクティスですか?

答えて

1

私はこれがあなたの要件に応じて、様々な方法で実現することができると思います。

  • あなたがホスト(エージェント)の障害に対処できるようにしたい場合は、私が使用するよりも、他の方法がないと思いますNFSなどの共有ファイルシステム。それ以外の場合は、Marathonを使用してマイクロサービスをスケジュールすると、タスクは別のエージェント(データがローカルで使用できない場所)で再起動されます。また、各エージェントで同じマウントポイントが使用可能であることを確認し、これらをコンテナ内のホストボリュームとして使用する必要があります。残念ながら、Mesos 1.1.0とMarathon 1.4(まだリリースされていません)では、同じ場所に配置するタスクのPOD機能が利用できるようになりました...

  • ホストマラソンでhostname constraintsを使用し、ホストボリュームをマウントしてサービス間で共有できる場合は、同じエージェント上で2つのMicroservicesを同じ場所に配置することができます(エージェントの障害)。私は、製作サービスが終了した後でのみ分析サービスを開始するためにオーケストレーションが必要になると思います。

関連する問題