web-dev-qa-db-ja.com

Apache Hadoop YarnとKubernetes

  • バージョン2.6以降(Apache Hadoop)ヤーンはdockerコンテナを処理します。基本的に、要求された量のコンテナーをHadoopクラスターに配布し、失敗したコンテナーを再起動します。
  • Kubernetes同じを実行しているようです。

大きな違いはどこですか?

Kubernetesは、Dockerコンテナカーネルをプラットフォームに拡張するために、ほぼクリーンな状態から開発されています。 Kubernetes開発では、ボトムアップのアプローチを採用しています。コンテナ/ポッドごとのリソース要件を指定する際に最適化されていますが、リソースを論理的なグループに分割できる効果的なグローバルスケジューラがありません。 Kubernetesの設計により、クラスター内で複数のスケジューラーを実行できます。各スケジューラは、独自のポッド内のリソースを管理します。ただし、アプリケーションが物理システムが処理できるよりも多くのリソースを要求する場合、Kubernetesクラスターは不安定になります。アプリケーションの要求を超えるインフラストラクチャ容量で最適に機能します。 Kubernetesスケジューラは、アイドル状態のノードを着信アプリケーションリクエストでいっぱいにし、優先度の低いコンテナと飢terminateコンテナを終了して、リソース使用率を改善しようとします。 Kubernetesコンテナーは、S3などの外部ストレージシステムと統合して、データの復元力を提供できます。 Kubernetesフレームワークはetcdを使用してクラスターデータを保存します。 EtcdクラスターノードとHadoop Namenodeは、どちらもKubernetesまたはHadoopプラットフォームの単一障害点です。 EtcdはNamenodeよりも多くのレプリカを持つことができるため、理論的には信頼性の観点からKubernetesを好むようです。ただし、RBACがきめ細かいロールバインディングで定義されていない限り、Kubernetesセキュリティはデフォルトで開かれています。ポッドのセキュリティコンテキストが正しく設定されています。省略すると、ポッドのプライマリグループはデフォルトでルートになります。これは、インフラストラクチャを保護しようとするシステム管理者にとって問題になる可能性があります。

Apache Hadoop YARNは、分離されたJavaプロセスを実行してビッグデータワークロードを処理し、Dockerコンテナをサポートするように改善されました。YARNは、物理リソースを論理ユニットにパーティション化するための容量キューのようなグローバルレベルのリソース管理を提供します。各ビジネスユニットは、クラスターリソースの割合で割り当てることができます。キャパシティリソース共有システムは、使用可能なすべての物理リソースを絞るのではなく、エンタープライズ優先度の保証リソースの可用性を優先して設計されます。YARNは、セキュリティでより多くのポイントを獲得します。Kerberosには、より多くのセキュリティ機能があります。特権/非特権コンテナ、信頼できるDockerイメージ、配置ポリシーの制約のアクセス制御。ほとんどのDocker関連のセキュリティはデフォルトで閉じられており、システム管理者は手動でフラグをオンにしてコンテナにより多くの電力を付与する必要があります。システムのセキュリティ保護のコストが低いため、Kubernetesよりも多くなっています。 Hive、Impala、SparkSQL、IBM BigSQLを含むYARNのp。データベースオプションにより、YARNは魅力的なオプションになります。コンテナーでオンライントランザクション処理を実行し、バッチワークロードを使用してオンライン分析処理を実行できるためです。 Hadoop Developerツールチェーンは圧倒的です。 Mapreduce、Hive、Pig、Sparkなど、それぞれ独自の開発スタイルがあります。ユーザーエクスペリエンスは一貫性がなく、すべてを学習するのに時間がかかります。Kubernetesは、 Dockerコンテナのワークロードを実行するYARNサービスの導入により、YARNはKubernetesよりも言葉遣いが少なく感じられます。

IT運用をパブリッククラウドにアウトソースする計画がある場合は、Kubernetesを選択してください。プライベート/ハイブリッド/マルチクラウドの構築を計画している場合は、Apache YARNを選択してください。

15
Eric Yang

この質問と回答正確にではありませんが、多くの同じ点に触れています。

最後に、Yarnは単なるリソース共有メカニズムでしたが、Kubernetesは全体platformであり、ConfigMap、宣言型環境管理、シークレット管理、ボリュームマウント、これらすべてと対話するための非常によく設計されたAPI、Role Based Access Control、Kubernetesは広く使用されており、採用する候補と購入するツールの両方を非常に簡単に見つけることができます。

A ブログ投稿 私は 修士論文 を引用したことがわかりました。これは、異なるスケジューラーの世界観の間の魅力的なトレードオフのいくつかを説明しています。言葉が多いので、もしあなたがtl; drの答えを探しているなら、そのリンクはそうではないかもしれませんが、そのトピックに関する実際の研究を探しているなら、それは健全に思えます。

5
mdaniel