私の理解では、20 コアのマシンが 1 台あります。この場合、仮想化する必要はありません。作成する VM は、総リソースから一部のリソースを消費するためです。最適なオプションは、ラップトップに Linux OS をインストールし、hadoop を疑似分散モードでインストールして、コンテナーの割り当てに使用可能なリソースを構成することです。
優れたパフォーマンスを得るには、CPU コアとメモリが必要です。したがって、20 コアだけでは役に立ちません。十分な量の物理メモリも必要です。メモリの割り当てについては、このドキュメントを参照できます。
Hadoop の背後にある基本は、コスト効果の高い方法で大量のデータを処理するための分散コンピューティングとストレージです。したがって、仮想化を使用して同じ親マシン (小さなマシン) で複数のマシンを実現しようとすると、個々のマシンの OS によって多くのリソースが消費されるため、役に立ちません。代わりに、マシンに Hadoop をインストールし、リソースを Hadoop に適切に構成すると、ジョブは (可用性と要件に応じて) 複数のコンテナーで実行されるため、並列処理が行われます。したがって、既存のマシンから最大限のパフォーマンスを引き出すことができます。
したがって、最適なオプションは、疑似分散クラスターをセットアップし、リソースを適切に割り当てることです。疑似分散モードは、すべてのデーモンが単一のマシンで実行されるモードです。
共有したハードウェア構成を使用すると、hadoop セットアップに以下の構成を使用できます。これで十分な負荷を処理できます。
(yarn-site.xml) yarn.nodemanager.resource.memory-mb = 81920
(yarn-site.xml) yarn.scheduler.minimum-allocation-mb = 1024
(yarn-site.xml) yarn.scheduler.maximum-allocation-mb = 81920
(yarn-site.xml) yarn.nodemanager.resource.cpu-vcores = 16
(yarn-site.xml) yarn.scheduler.minimum-allocation-vcores = 1
(yarn-site.xml) yarn.scheduler.increment-allocation-vcores = 1
(yarn-site.xml) yarn.scheduler.maximum-allocation-vcores = 16
(mapred-site.xml) mapreduce.map.memory.mb = 4096
(mapred-site.xml) mapreduce.reduce.memory.mb = 8192
(mapred-site.xml) mapreduce.map.java.opts = 3072
(mapred-site.xml) mapreduce.reduce.java.opts = 6144