HDFS
パラメーター:dfs.namenode.handler.count
NameNodeには、異なるDataNodeの同時ハートビートとクライアントの同時メタデータ操作を処理するために使用されるワーカースレッドプールがあります。スレッドプールのサイズは、このパラメーター(デフォルト)に従って指定されます。値は10、この値一般的な設定の原則は、クラスターサイズに20を掛けた自然対数、 つまり20logN に設定することです。 ここで、Nはクラスターサイズです。
#配置文件hdfs-site.xml
<property>
<name>dfs.namenode.handler.count</name>
<value>10</value>
</property>
[root@fan102 ~]# python -c 'import math ; print int(math.log(8) * 20)'
41
糸
シナリオ1:合計7台のマシン、1日あたり数億個のデータ、データソース-> Flume-> Kafka-> HDFS-> Hive
直面している問題: HiveSQLは主にデータ統計に使用され、データの偏りはなく、小さなファイルがマージされ、開かれたJVMが再利用され、IOがブロックされず、メモリが50%未満です。ただし、それでも実行速度は非常に遅く、データ量がピークに達すると、クラスター全体がダウンします。この状況に基づいて、最適化計画はありますか。
分析:不十分なメモリ使用率。これは通常、Yarnの2つの構成、単一のタスクが適用できる最大メモリサイズ、および単一のHadoopノードの使用可能なメモリサイズが原因で発生します。ヤーンサイト.xmlファイルでこれら2つのパラメーターを調整すると、システムメモリの使用率を向上させることができます。
パラメーター1:yarn.nodemanager.resource.memory-mb
このノードでYARNが使用できる物理メモリの合計量を示します。デフォルトは8192(MB)です。通常、128Gサーバーは100Gとして構成され、64Gサーバーは50Gとして構成されます。サーバーは188Gなので、この値を120Gに設定しました。ノードのメモリリソースが十分な8GBでない場合は、この値を減らす必要があり、YARNはノードの物理メモリの合計をインテリジェントに検出しないことに注意してください。
パラメータ2:yarn.scheduler.maximum-allocation-mb
は、単一のタスクが適用できる物理メモリの最大量を表します。デフォルトは8192(MB)です。この値は、タスクデータのサイズに応じて決定する必要があります。128MBは1GBのメモリに対応します