ページの先頭行へ戻る
Big Data Integration Server V1.1.0 分散処理編ユーザーズガイド
FUJITSU Software

D.2 HDFS

HDFSに関連するチューニングパラメーターについて以下に説明します。


(1) NameNodeのヒープサイズ
【設定値】

本機能では、NameNodeのヒープサイズの初期値として、NameNodeが動作するサーバの搭載メモリから値を算出し設定しています。

NameNodeが動作するサーバの搭載メモリ(MB) - 2048(MB) ÷ 4

【推奨値】

NameNodeのヒープサイズの推奨値は、HDFS上に配置するファイル数によって決定します。

100万ファイルあたり1GBのヒープサイズをNameNodeに設定することを推奨します。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hadoop-env.sh

パラメーター名:HADOOP_NAMENODE_OPTS の -Xmx

NameNodeのヒープサイズを1GB(1024MB)に設定する例:

export HADOOP_NAMENODE_OPTS="-Xmx1024m -Xms1024m -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT $HADOOP_NAMENODE_OPTS"

ポイント

-Xmsを-Xmxと同じ値を設定することを推奨します。

(2) DataNodeのヒープサイズ
【設定値】

本機能では、DataNodeのヒープサイズの初期値として、DataNodeが動作するサーバの搭載メモリから値を算出し設定しています。

DataNodeが動作するサーバの搭載メモリ(MB) - 2048(MB) ÷ 12

【推奨値】

DataNodeのヒープサイズの推奨値は、対象DataNode上に配置するブロック数によって決定します。100万ブロックあたり1GBのヒープサイズをDataNodeに設定することを推奨します。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hadoop-env.sh

パラメーター名:HADOOP_DATANODE_OPTS の -Xmx

DataNodeのヒープサイズを1GB(1024MB)に設定する例:

export HADOOP_DATANODE_OPTS="-Xmx1024m -Xms1024m -Dhadoop.security.logger=ERROR,DRFAS $HADOOP_DATANODE_OPTS"

ポイント

-Xmsを-Xmxと同じ値を設定することを推奨します。

(3) dfs.blocksize
【説明】

HDFS上に新たに作成するファイルのブロックサイズをバイト単位で指定します。

【設定値】

本機能では、128MBを設定しています。

【推奨値】

本パラメーターの推奨値は、128MBです。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hdfs-site.xml

ブロックサイズを128MB(134217728bytes)に設定する例:

<property>
    <name>dfs.blocksize</name>
    <value>134217728</value>
</property>

ポイント

本パラメーターを変更した場合は、“D.4 Apache Spark”の以下のパラメーターも本パラメーターと同じ値に変更してください。

(6) spark.files.maxPartitionBytes

(7) spark.sql.files.maxPartitionBytes

(4) dfs.namenode.handler.count
【説明】

NameNodeのスレッド数を指定します。

【設定値】

本機能では、設定を行っていません。そのため、デフォルト値の 10 となります。

【推奨値】

本パラメーターの推奨値は、以下になります。(ln()の結果は切り上げます。)

ln(DataNodeのサーバ数) * 20

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hdfs-site.xml

NameNodeのスレッド数を40に設定する例:

<property>
    <name>dfs.namenode.handler.count</name>
    <value>40</value>
</property>
(5) dfs.datanode.du.reserved
【説明】

HDFS のデータ以外で使用するために予約しておく dfs.datanode.data.dir を配置したディスクの容量(単位:バイト)を指定します。

【設定値】

本機能では、dfs.datanode.data.dir で指定しているディスクの空き容量の40%を設定します。

【推奨値】

本パラメーターの推奨値は、以下になります。

dfs.datanode.data.dirで指定したディスク全容量の10%、または10GBのいずれかの小さい値

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hdfs-site.xml

HDFSのデータ以外に使用するディスクサイズを1GBに設定する例:

<property>
    <name>dfs.datanode.du.reserved</name>
    <value>1073741824</value>
</property>
(6) dfs.namenode.name.dir
【説明】

NameNodeがメタデータを格納するディレクトリを指定します。

【設定値】

本機能では、以下のディレクトリを設定しています。

/var/opt/FJSVbsb/bdpp/hdfs/name

【推奨値】

本パラメーターの推奨値は、内蔵ディスク上のディレクトリです。

複数のディレクトリを指定することが可能ですが、本機能ではHDFSを二重化しているため、複数のディレクトリを指定する必要はありません。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hdfs-site.xml

NameNodeがメタデータを格納するディレクトリを/var/opt/FJSVbsb/bdpp/hdfs/nameとする場合の例:

<property>
    <name>dfs.namenode.name.dir</name>
    <value>/var/opt/FJSVbsb/bdpp/hdfs/name</value>
</property>
(7) dfs.datanode.data.dir
【説明】

DataNodeがブロックファイルを格納するディレクトリを指定します。

【設定値】

本機能では、以下のディレクトリを設定しています。

/var/opt/FJSVbsb/bdpp/hdfs/data

【推奨値】

本パラメーターの推奨値は、内蔵ディスク上のディレクトリです。

カンマ区切りで複数のディレクトリを指定することができます。

複数のディレクトリを指定した場合、ブロックファイルが各ディレクトリに分散配置され、読み書きのパフォーマンスが向上するため、複数のディレクトリを指定することを推奨します。

【設定先】

ファイル名:/etc/opt/FJSVbsb/bdpp/hadoop/hdfs-site.xml

DataNodeのメタデータを格納するディレクトリを/disk1/hdfs/data、/disk2/hdfs/dataとする場合の例:

<property>
    <name>dfs.datanode.data.dir</name>
    <value>/disk1/hdfs/data,/disk2/hdfs/data</value>
</property>