ビッグデータクラスターのチューニング

HDFS

シーン1:
DataNodeが動作を開始すると(電源をオンにすると)、ローカルデータブロックが登録のためにNameNodeクライアントに報告されます。このとき、クライアントの数がより重要になります。データノードが小さすぎると、DataNodeは常にタイムアウトするか、 NameNodeに接続するときに接続します。拒否されました。設定が大きすぎると、メモリオーバーヘッドが増加し、不要な無駄が発生し、最終的にメモリオーバーフローが発生する可能性があります。
パラメーター:dfs.namenode.handler.count
NameNodeには、異なるDataNodeの同時ハートビートとクライアントの同時メタデータ操作を処理するために使用されるワーカースレッドプールがあります。スレッドプールのサイズは、このパラメーター(デフォルト)に従って指定されます。値は10、この値一般的な設定の原則は、クラスターサイズに20を掛けた自然対数、 つまり20logN に設定することです。 ここで、Nはクラスターサイズです。
#配置文件hdfs-site.xml
<property>
<name>dfs.namenode.handler.count</name>
<value>10</value>
</property>
Pythonは特定の計算に使用できます。次の例では、例として 8 ノードを 使用しています。
[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のメモリに対応します

 

おすすめ

転載: blog.csdn.net/shenyuye/article/details/108827842