Skip to content

Instantly share code, notes, and snippets.

@GedowFather
Created September 3, 2012 06:10
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save GedowFather/3607168 to your computer and use it in GitHub Desktop.
Save GedowFather/3607168 to your computer and use it in GitHub Desktop.
CDH4 configurations
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Setting up queues -->
<property>
<name>yarn.scheduler.capacity.root.queues</name>
<value>default,tree</value>
<description>
The queues at the this level (root is the root queue).
(階層構造について)
queue-pathと呼ばれる階層構造は、rootが必須である。
階層を作る場合はまず yarn.scheduler.capacity.root.queues に一段目となる
値をカンマ区切りで指定する。
さらに yarn.scheduler.capacity.root.tree.queues に値を割り当てる
ことで二段目を作成できる。
defaultは該当する階層名がないジョブの場合に割り当てられる特殊名となっており、
まずは最低限である /default のみで始めるとよい。
このqueue-pathを用いて以降の設定を各階層ごとに行なっていく
</description>
</property>
<!-- Resource Allocation -->
<property>
<name>yarn.scheduler.capacity.root.capacity</name>
<value>100</value>
<description>
The total capacity as a percentage out of 100 for this queue.
If it has child queues then this includes their capacity as well.
The child queues capacity should add up to their parent queue's capacity or less.
queueの基本上限値となる%値。
メモリリソースはもちろん、MaxApplicationも比例して減少する。
rootのキャパシティは100にしておく
</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.capacity</name>
<value>80</value>
<description>Default queue target capacity.</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.tree.capacity</name>
<value>20</value>
<description>Default queue target capacity.</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
<value>100</value>
<description>
The maximum capacity of the default queue.
yarn.scheduler.capacity.(queue-path).capacity による基本上限値があるが
リソースに空きがある場合に基本上限値を超えて実行される。
その柔軟に多く割り当てられる基本上限値を超える最大上限値の設定がこれ。
しかし柔軟度にも制限があり、多くの場合は基本上限値+1containerまでと
なるようだが、場合によりけりであり、柔軟度の設定というものも無い。
</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.user-limit-factor</name>
<value>0.95</value>
<description>
Default queue user limit a percentage from 0.0 to 1.0.
queue毎の、無条件に抑える制限割合。
yarn.scheduler.capacity.(queue-path).capacity による基本上限値に対して
さらにこの割合が乗算される形で上限値が減少する。
</description>
</property>
<!-- Running and Pending Application Limits -->
<property>
<name>yarn.scheduler.capacity.maximum-applications</name>
<value>10000</value>
<description>
Maximum number of applications that can be pending and running.
Applicationの最大キュー数。
</description>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.1</value>
<description>
Maximum percent of resources in the cluster which can be used to run application masters
i.e. controls number of concurrent running applications.
ApplicationMasterがリソースを占める割合。float値で最大1.0(100%)まで。
yarn.nodemanager.resource.memory-mb のNodeManager合計値に対して計算し、
ResourceMangerで動かすことができるApplication(=ジョブ)の数、
つまりMax Active Applicationsが決定する。
Max Active Applicationsの数はこの値にほぼ比例する。
極端なApplication数が必要でない限りは 0.1 でよい。
</description>
</property>
<!-- Queue Administration & Permissions -->
<property>
<name>yarn.scheduler.capacity.root.state</name>
<value>RUNNING</value>
<description>
The state of the queue. Can be one of RUNNING or STOPPED.
If a queue is in STOPPED state, new applications cannot be submitted to itself or any of its child queues.
Thus, if the root queue is STOPPED no applications can be submitted to the entire cluster.
Existing applications continue to completion, thus the queue can be drained gracefully.
queueに対して RUNNING か STOPPED を設定します。この設定は下の階層にも適用されます。
STOPPEDにすると、それ以降のApplicationを受け付けません。
それまで動いていたApplicationは正常に完了します。
Capacity Scheduler の設定は動的に変更できるため、予期せぬ暴走ジョブが出た場合、
とりあえず停止するというような使い方がありそうです。
</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.acl_submit_jobs</name>
<value>*</value>
<description>
The ACL of who can submit jobs to the default queue.
</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.acl_administer_jobs</name>
<value>*</value>
<description>
The ACL of who can administer jobs on the default queue.
</description>
</property>
<property>
<name>yarn.scheduler.capacity.root.acl_administer_queues</name>
<value>*</value>
<description>
The ACL for who can administer this queue i.e. change sub-queue allocations.
</description>
</property>
</configuration>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Common -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hostname-of-namenode:8020</value>
<description>
NameNodeのホストとポートを指定する。全ノード・クライアントで指定する。
</description>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
<description>
ファイルが削除された時、すぐに削除されず、ユーザのホームディレクトリの .Trash に置かれ、
指定された時間(分)経過後にHDFSから消去される。クライアントとNameNodeで指定する。
</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/cache/${user.name}</value>
<description>
ローカルディスクとHDFS両方のベースに使われる一時ディレクトリ。全ノードで指定する。
</description>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>webuser,webgroup</value>
<description>
The user account used by the web interface. Syntax: USERNAME,GROUP1,GROUP2, ...
WEB API経由で保存した時にユーザ/グループの指定がなかった場合に
使われるユーザ名とグループ名。
</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>
読み書き捜査中にバッファされるデータ量。ハードウェアのページサイズの2のべき乗とする。
全ノードで指定する。デフォルトは4096で、推奨値は65536(64KB)。
</description>
</property>
<!-- OOZIE proxy user setting -->
<property>
<name>hadoop.proxyuser.oozie.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>*</value>
</property>
<!-- HTTPFS proxy user setting -->
<property>
<name>hadoop.proxyuser.httpfs.hosts</name>
<value>*</value>
<description>
ユーザ制限だがvalueは基本 * で全通しでよい。
hadoop.proxyuser.#USERNAME#.hosts の #USERNAME# にはHTTPサーバの実行UNIXユーザを指定する。
</description>
</property>
<property>
<name>hadoop.proxyuser.httpfs.groups</name>
<value>*</value>
</property>
</configuration>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Common -->
<property>
<name>dfs.replication</name>
<value>3</value>
<description>
ファイルが書き込まれるときに各ブロックが複製される数。
クライアントを含む各ノードで指定する。
</description>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
<description>
NameNodeに指定する。trueはファイルパーミッションのチェックを行う。
falseはチェック処理が無効になる(全員が全てのファイルにアクセス可能)。
</description>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
<description>
Specifies the UNIX group containing users that will be treated as superusers by HDFS.
You can stick with the value of 'hadoop' or pick your own group depending on the security policies at your site.
</description>
</property>
<property>
<name>dfs.blocksize</name>
<value>128m</value>
<description>
The default block size for new files, in bytes.
You can use the following suffix (case insensitive):
k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
Or provide complete size in bytes (such as 134217728 for 128 MB).
DFSファイルのブロックサイズ。デフォルトは67108864(64MB)。
クライアントを含む各ノードで指定する。
</description>
</property>
<!-- WebHDFS -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<description>
WebHDSFを有効にするかどうか。
</description>
</property>
<!-- NameNode -->
<property>
<!-- specify this so that running 'hadoop namenode -format' formats the right dir -->
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
<description>
NameNodeがメタデータを格納するローカルファイルの場所。
カンマ区切りで複数指定が可能。
</description>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
<description>
NameNodeがDataNodeからのRPC要求を処理するために使用するスレッド数。デフォルトは10。
推奨値はノード数の10%で10~200までの値。低すぎるとDataNodeに「connection refused」エラーが出る。
</description>
</property>
<!-- SecondaryNameNode -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/namesecondary</value>
<description>SecondaryNameNodeがチェックポイントイメージを格納する場所。カンマ区切りで複数指定可能。</description>
</property>
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>600</value>
<description>
SecondaryNameNodeが行う定期的なチェックポイント処理の間隔秒。
デフォルトは3600。
</description>
</property>
<!-- DataNode -->
<property>
<name>dfs.datanode.data.dir</name>
<value>
file:///disk/1/hadoop/cache/hdfs/dfs/data,
file:///disk/2/hadoop/cache/hdfs/dfs/data,
file:///disk/3/hadoop/cache/hdfs/dfs/data,
file:///disk/4/hadoop/cache/hdfs/dfs/data,
file:///disk/5/hadoop/cache/hdfs/dfs/data,
file:///disk/6/hadoop/cache/hdfs/dfs/data,
file:///disk/7/hadoop/cache/hdfs/dfs/data,
file:///disk/8/hadoop/cache/hdfs/dfs/data
</value>
<description>
DataNodeがブロックを格納するローカルファイルの場所。
カンマ区切りで複数指定可能で、通常は異なるデバイスを指定する。
複数の場合、ラウンドロビンで書き込まれる。DataNodeごとに異なる設定が可能。
</description>
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>100</value>
<description>
NameNodeがDataNodeからのRPC要求を処理するために使用するスレッド数。デフォルトは10。
推奨値はノード数の10%で10~200までの値。低すぎるとDataNodeに「connection refused」エラーが出る。
</description>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
<description>
各ボリュームでHDFSのブロックストレージとして使用することができない容量。
dfs.datanode.data.dirに複数指定している場合はそれぞれのパスごとに予約される。
目安は1HDD当たりの10%以上で、主に中間データ用の確保となる。
これとは別に、HDFSの保存容量は各サーバごとに90%までしか保存されずWARNになるため
その残りの10%でもまだ足りない場合にこの値で予約することになる。
</description>
</property>
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
<description>
Hadoop HDFS DataNode には、一度にサービスを提供できるファイル数に上限があります。
この上限を表すパラメータは xcievers です (ご推察のとおり、スペルは間違っています)。
設定を行ったら必ず HDFS を再起動してください。
上の設定を行わないと、奇妙なエラーが発生する可能性が高くなります。
最終的には、xcievers を超えたことを警告するエントリが DataNode のログに出力されるようになりますが、
その前兆として、ブロックが見つからないというメッセージが表示されます。
</description>
</property>
</configuration>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Metastore Database -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>DBの接続ドライバを指定する。</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hostname-of-hive-metastore/hive_metastore</value>
<description>データベースMetaStoreのDB種類とホストとDB名を指定する。</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>DBの接続ユーザを指定する。</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>HivePassword</value>
<description>DBの接続パスワードを指定する。</description>
</property>
<property>
<name>datanucleus.transactionIsolation</name>
<value>repeatable-read</value>
<description>
DB接続が正しくてもHiveQLを実行した時に下記エラーが出る場合に設定します。
FAILED: Error in metadata: javax.jdo.JDOException: Couldnt obtain a new sequence (unique id)
</description>
</property>
<property>
<name>datanucleus.valuegeneration.transactionIsolation</name>
<value>repeatable-read</value>
<description>同上</description>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
<description></description>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
<description></description>
</property>
<!-- compress -->
<property>
<name>hive.exec.compress.output</name>
<value>true</value>
<description>
INSERT OVERWRITE TABLE ~ SELECT ~ などによる最終出力を圧縮するかどうか。
</description>
</property>
<property>
<name>hive.exec.compress.intermediate</name>
<value>true</value>
<description>中間データを圧縮するかどうか。</description>
</property>
<!-- parallel -->
<property>
<name>hive.exec.parallel</name>
<value>true</value>
<description>ジョブの並列処理を行うかどうか。</description>
</property>
<property>
<name>hive.exec.parallel.thread.number</name>
<value>8</value>
<description>ジョブの並列処理をする場合のスレッド数。</description>
</property>
<!-- Temporary -->
<property>
<name>hive.exec.scratchdir</name>
<value>/data/tmp/hive-${user.name}</value>
<description>
Map/Reduceの異なる段階の計画と、中間データの出力に利用する、一時ファイル置き場。
</description>
</property>
<!-- partition -->
<property>
<name>hive.exec.dynamic.partition</name>
<value>true</value>
<description>
動的パーティションを有効にする
</description>
</property>
<property>
<name>hive.exec.dynamic.partition.mode</name>
<value>nonstrict</value>
<description></description>
</property>
<!-- log -->
<property>
<name>hive.stats.autogather</name>
<value>false</value>
<description>
統計情報を保存するか否か。
デフォルトはtrueでDerbyへデータベース名TempStatsStoreに保存しようとします。
保存先を用意していない場合、TaskTrackerなどにJDBC接続エラーが残ります。
</description>
</property>
<!-- others -->
<property>
<name>hive.hwi.war.file</name>
<value>/usr/lib/hive/lib/hive-hwi-0.8.1-cdh4.0.1.jar</value>
<description>
This is the WAR file with the jsp content for Hive Web Interface
</description>
</property>
</configuration>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- ################################################## -->
<!-- MapReduce v2 (YARN) ############################## -->
<!-- ################################################## -->
<!-- ================================================== -->
<!-- Applications ===================================== -->
<!-- ================================================== -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>Execution framework set to Hadoop YARN.</description>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>hostname-of-jobtracker:8021</value>
<description>
YARNの場合は必要ありません。
</description>
</property>
<!-- ================================================== -->
<!-- Log ============================================== -->
<!-- ================================================== -->
<property>
<name>mapreduce.map.log.level</name>
<value>WARN</value>
<description>
Mapが出すログの保存ログレベル。
yarn.log-aggregation-enable が有効な場合に
yarn.nodemanager.remote-app-log-dir に保存される。
</description>
</property>
<property>
<name>mapreduce.reduce.log.level</name>
<value>WARN</value>
<description>
Reduceが出すログの保存ログレベル。
以下同上。
</description>
</property>
<!-- ================================================== -->
<!-- Job Histroy ====================================== -->
<!-- ================================================== -->
<property>
<name>mapreduce.tasktracker.report.address</name>
<value>hostname-of-jobhistory:8031</value>
<description>
</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hostname-of-jobhistory:10020</value>
<description>
JobHistoryServerのLISTEN情報であり、接続情報になります
</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hostname-of-jobhistory:19888</value>
<description>
JobHistoryServerのWEBインターフェースのLISTEN情報です
</description>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/mr-history/tmp</value>
<description>
Directory where history files are written by MapReduce jobs.
</description>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/mr-history/done</value>
<description>
Directory where history files are managed by the MR JobHistory Server.
ジョブの完了情報が格納されます。
なかには実行時の全設定を含むXMLファイルなど、デバッグに重要な情報があります。
</description>
</property>
<!-- ################################################## -->
<!-- from MapReduce v1 ################################ -->
<!-- ################################################## -->
<!-- ================================================== -->
<!-- Task Tracker ===================================== -->
<!-- ================================================== -->
<!-- 基本 -->
<property>
<name>mapreduce.client.submit.file.replication</name>
<value>3</value>
<description>
発行されたジョブファイルの複製レベル。ノード数の平方根に近い数値にする。
デフォルトは10。高すぎるとNameNodeがDataNodeを選択できないエラーが起きることがある。
</description>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value>
/disk/2/hadoop/cache/mapred/mapred/local,
/disk/3/hadoop/cache/mapred/mapred/local,
/disk/4/hadoop/cache/mapred/mapred/local,
/disk/5/hadoop/cache/mapred/mapred/local,
/disk/6/hadoop/cache/mapred/mapred/local,
/disk/7/hadoop/cache/mapred/mapred/local,
/disk/8/hadoop/cache/mapred/mapred/local
</value>
<description>
TaskTrackerがMapReduceにおける中間データファイルを格納するローカルディレクトリ。
カンマ区切りで複数指定可能で、通常は dfs.datanode.data.dir と同じ複数デバイスを利用する。
その場合、HDFSによってディスク全体が使用されないよう、dfs.du.reserved で容量を確保しておく。
目安としては全体容量の25%を確保すべきで、1TB Disk×複数 の場合は 250GB を設定する。
また、JobTrackerでもジョブファイルの一時保存に利用するので注意が必要。
通常はDataNodeとJobTrackerではデバイス構成が異なるので、共通設定にできない。
ただしYARNのResourceManagerではこの設定は利用されないのでSLAVEと共通で問題ない。
</description>
</property>
<property>
<name>mapreduce.task.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<description>
To set the value of tmp directory for map and reduce tasks.
If the value is an absolute path, it is directly assigned. Otherwise,
it is prepended with task's working directory.
The java tasks are executed with option -Djava.io.tmpdir='the absolute path of the tmp dir'.
Pipes and streaming are set with environment variable, TMPDIR='the absolute path of the tmp dir'
</description>
</property>
<!-- 同時実行数・投機的実行数 -->
<property>
<name>mapreduce.tasktracker.map.tasks.maximum</name>
<value>10</value>
<description>
TaskTrackerにより並列に実行可能なMapタスク数。TaskTrackerで指定する。
目安は1ノードでのMap+Reduceタスクの合計数は、
およそノードのプロセッサのコア数(スレッド数)の1.5倍を指定する。
こうすることでCPUを目一杯利用できるが、余裕を持たせたい場合はコア数と同じか少なめにする。
Map:Reduceタスク数の割合は 60:40 ~ 70:30 にする。
</description>
</property>
<property>
<name>mapreduce.tasktracker.reduce.tasks.maximum</name>
<value>6</value>
<description>
TaskTrackerにより並列に実行可能なReduceタスク数。TaskTrackerで指定する。目安は上述。
</description>
</property>
<property>
<name>mapreduce.reduce.maxattempts</name>
<value>4</value>
<description>投機的実行の最大試行回数。</description>
</property>
<!-- メモリ -->
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
<description>
Job requirement for map tasks. The maximum amount of memory each map task of a job can consume, in MB.
</description>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx2048m</value>
<description>
Larger heap-size for child jvms of maps.
MapタスクのプロセスにつくオプションでJavaの最大メモリ。
</description>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
<description>
job requirement for reduce tasks. The maximum amount of memory each reduce task of a job can consume, in MB.
</description>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2048m</value>
<description>
Larger heap-size for child jvms of reduces.
ReduceタスクのプロセスにつくオプションでJavaの最大メモリ。
</description>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx2048m</value>
<description>
TaskTrackerの子プロセスに渡されるJavaのオプション。デフォルトは -Xmx200m(200MBのヒープサイズ)。
開発要件に基づき512MB~2GBまで増やす。TaskTrackerノードに指定する。
必ず mapreduce.task.io.sort.mb < mapred.child.java.opts になるよう設定する。
YARNでは利用されないもよう。
</description>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>256</value>
<description>
Mapperがキー/値ペアを書き出すためのMapper上のバッファサイズ。デフォルトは100MB。推奨値は256MB。
この割当はタスクのJVMヒープ領域から取られる。TaskTrackerで指定する。
必ず mapreduce.task.io.sort.mb < mapred.child.java.opts になるよう設定する。
</description>
</property>
<!-- I/O -->
<property>
<name>io.io.sort.record.percent</name>
<value>0.05</value>
<description>
デフォルトは 0.05
直列化バッファとアカウンティングスペースの比率は調整可能です。
各直列化レコードは、直列化されたサイズに加え、ソートを実行するために
16 バイトのアカウンティング情報を必要とします。
mapreduce.task.io.sort.mb から割り当てられるこのスペースの割合は、
直列化バッファとアカウンティングスペースのいずれかを使い切ったときに
起こるディスクへの吐き出しの可能性を左右します。
言うまでもなく、小さなレコードを出力する map では、デフォルト値より高い値を指定すれば、
ディスクへの吐き出し回数は減ります。
</description>
</property>
<property>
<name>io.mapreduce.map.sort.spill.percent</name>
<value>0.80</value>
<description>
デフォルトは 0.80
アカウンティングバッファと直列化バッファのしきい値を指定します。
いずれかのバッファが指定された割合まで満たされると、バッファの内容はバックグラウンドでディスクに吐き出されます。
ここで、io.sort.record.percent を r とし、mapreduce.task.io.sort.mb を x、しきい値を q とします。
この場合、回収スレッドが吐き出しを行うまでに回収されるレコードの最大数は、r * x * q * 2^16 になります。
高い値を指定すればマージの回数を減らしたり、マージを不要にしたりできますが、
その場合は map タスクがブロックされる可能性も高くなります。
通常、平均 map 時間を最も短くするには、map 出力のサイズを正確に見積もって複数の吐き出しが行われないようにします。
</description>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
<description>
ファイルをソートするときに一度にマージするためのストリームの数。デフォルトは10。
</description>
</property>
<!-- タイムアウト -->
<property>
<name>mapreduce.reduce.shuffle.connect.timeout</name>
<value>30000</value>
<description>
ReducerがMapのアウトプットを取得する際の最初の接続自体のタイムアウト ミリ秒。デフォルトは180000。
</description>
</property>
<property>
<name>mapreduce.reduce.shuffle.read.timeout</name>
<value>300000</value>
<description>
ReducerがMapのアウトプットを取得する際の転送時間のタイムアウト ミリ秒。デフォルトは180000。
</description>
</property>
<property>
<name>mapreduce.task.timeout</name>
<value>600000</value>
<description>
Map処理、Reduce処理は、TaskTrackerが生成したChildプロセスで実行される。
このときChildとTaskTracker間では、処理の進捗状況について通信する。
通信が一定期間ない場合は、その処理をタイムアウトと判断して処理をFailedとする。
そのミリ秒。デフォルトは600000。
</description>
</property>
<!-- 受送信並列数 -->
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>20</value>
<description>
Reducerがデータを転送するために並列で接続できるTaskTrackerの数。
デフォルトは5。推奨値はSLAVEノード数をSQRT(平方根)して1の位を切り上げ。下限は10。
例)500node -> 20, 100node -> 30
全TaskTrackerで指定する。
</description>
</property>
<property>
<name>mapreduce.tasktracker.http.threads</name>
<value>80</value>
<description>Reducerがデータを取得するために使用するTaskTrackerのHTTPスレッド数。推奨値は80。</description>
</property>
<!-- 圧縮 -->
<!-- ※Hiveは mapred.*** を見るため旧設定を残す -->
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
<description>
Mapperからの中間データをネットワーク転送前に圧縮するかどうか。
推奨値はtrue。TaskTrackerで指定する。
</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
<description>
ジョブの出力を圧縮するかどうか
</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compression.type</name>
<value>BLOCK</value>
<description>
Reducerからの出力がSequenceFileの場合に圧縮するかどうか。
デフォルトはRECORD。推奨値はBLOCK。
</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compression.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
<description>
Reducerからの出力を圧縮する場合の圧縮形式。デフォルトはDeflateCodec。
圧縮するかどうかはクライアントが指定する。
Hiveの場合は hive.exec.compress.output。
</description>
</property>
<!-- 圧縮・旧設定 -->
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
<description>
Mapperからの中間データをネットワーク転送前に圧縮するかどうか。推奨値はtrue。TaskTrackerで指定する。
</description>
</property>
<property>
<name>mapred.output.compression.type</name>
<value>BLOCK</value>
<description>
Reducerからの出力がSequenceFileの場合に圧縮するかどうか。デフォルトはRECORD。推奨値はBLOCK。
</description>
</property>
<property>
<name>mapred.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
<description>
Reducerからの出力を圧縮する場合の圧縮形式。デフォルトはDeflateCodec。
圧縮するかどうかはクライアントが指定する。
Hiveの場合は hive.exec.compress.output。
</description>
</property>
<!-- ================================================== -->
<!-- Job Tracker ====================================== -->
<!-- ================================================== -->
<!-- スレッド数 -->
<property>
<name>mapreduce.jobtracker.address.handler.count</name>
<value>20</value>
<description>
TaskTrackerからのハートビートに応答するために、JobTrackerにより使用されるスレッド数。
デフォルトは10。推奨値はノード数の約4%で10~200の間の値。JobTrackerに指定する。
</description>
</property>
<!-- タスクスケジュール -->
<property>
<name>mapreduce.job.reduce.slowstart.completedmaps</name>
<value>0.80</value>
<description>
クラスタ内でJobTrackerがReducerをスケジュールすする前に完了していなければならないMapタスクの割合。
デフォルトは0.05で最大値は1.0。推奨値は0.5~0.8。JobTrackerで指定する。
少なすぎると早い段階でスケジュールしてしまうため、Reducerの無駄な待機時間が出る可能性がある。
</description>
</property>
<!-- 投機的実行 -->
<property>
<name>mapreduce.job.maps.speculative.execution</name>
<value>true</value>
<description>
Mapタスク用に投機的実行を許可するかどうか。デフォルトはtrue。JobTrackerで指定する。
これはタスクの平均実行時間より著しく遅くなっているタスクがある場合に、
同じタスクが別のノードで実行されるもので、最初に終了したタスクの結果が使用され、遅い方はKillされる。
</description>
</property>
<property>
<name>mapreduce.job.reduces.speculative.execution</name>
<value>true</value>
<description>
Reduceタスク用に投機的実行を許可するかどうか。デフォルトはtrue。
JobTrackerで指定する。詳細は同上。
</description>
</property>
<!-- ================================================== -->
<!-- Fair Scheduler==================================== -->
<!-- ================================================== -->
<property>
<name>mapreduce.jobtracker.taskscheduler</name>
<value>org.apache.hadoop.mapred.FairScheduler</value>
<description>
クラスタでタスクをどのようにスケジュールするかを指定するために、JobTrackerで指定されるクラス。
デフォルトは org.apache.hadoop.mapred.JobQueueTaskScheduler。
推奨値は org.apache.hadoop.mapred.FairScheduler。JobTrackerで指定する。
</description>
</property>
<property>
<name>mapred.fairscheduler.weightadjuster</name>
<value>org.apache.hadoop.mapred.NewJobWeightBooster</value>
<description>
Allows modifying job weights through a plugin class
</description>
</property>
</configuration>
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Server -->
<property>
<name>yarn.resourcemanager.address</name>
<value>hostname-of-resourcemanager:8032</value>
<description>
ResourceManagerのアプリケーションマネージャがLISTENするアドレス:ポート情報です
</description>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hostname-of-resourcemanager:8030</value>
<description>
スケジューラがLISTENするアドレス:ポート情報です
</description>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hostname-of-resourcemanager:8031</value>
<description>
ResourceManagerとNodeManagerが通信するポートで、
ResourceManagerではLISTEN情報となり、
NodeManagerでは接続するResourceManagerの情報となります
</description>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hostname-of-resourcemanager:8033</value>
<description>
ResourceManagerの管理者インターフェースのLISTEN情報です
</description>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hostname-of-resourcemanager:8088</value>
<description>
ResourceManagerのWEBインターフェースのLISTEN情報です
</description>
</property>
<!-- Common -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
<description>
スケジューラの種類の指定。
今はCapacitySchedulerしかない。
</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<description>Classpath for typical applications.</description>
<name>yarn.application.classpath</name>
<value>
$HADOOP_CONF_DIR,
$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
$YARN_HOME/*,$YARN_HOME/lib/*
</value>
</property>
<!-- Memory -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>32768</value>
<description>
1NodeManager当たりで確保されるメモリMbyte。
ResourceManagerでは Used Resources の項目に、全NodeManager分を足した数が表示される。
</description>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>2048</value>
<description>
Application Master 1つに割り当てられるメモリMbyte。defaultは1536。
512など低すぎるとジョブが実行できない場合がある。推奨値は1024~2048。
</description>
</property>
<!-- Local File -->
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>
/disk/1/yarn/local,
/disk/2/yarn/local,
/disk/3/yarn/local,
/disk/4/yarn/local,
/disk/5/yarn/local,
/disk/6/yarn/local,
/disk/7/yarn/local,
/disk/8/yarn/local
</value>
<description>
List of directories to store localized files in.
ローカルに置くジョブファイルのパス。カンマ区切りで複数指定可能。
</description>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>
/disk/1/yarn/logs,
/disk/2/yarn/logs,
/disk/3/yarn/logs,
/disk/4/yarn/logs,
/disk/5/yarn/logs,
/disk/6/yarn/logs,
/disk/7/yarn/logs,
/disk/8/yarn/logs
</value>
<description>
Where to store container logs.
ローカルに置くログファイルのパス。カンマ区切りで複数指定可能。
</description>
</property>
<!-- HDFS -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>
集約ログを保存するかどうか。
集約ログはMAP/REDUCE/ApplicationMasterなど様々な内容が
1ディレクトリ内にホスト毎ファイルとなって保存される。
</description>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/yarn/app-logs/</value>
<description>
Where to aggregate logs to.
集約ログのHDFS保存パス。この下はユーザで区切られる。
</description>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/user</value>
<description>
ユーザ毎のジョブファイルを置くHDFSディレクトリ。
</description>
</property>
<!-- Thread -->
<property>
<name>yarn.resourcemanager.client.thread-count</name>
<value>100</value>
<description>
The number of threads used to handle applications manager requests.
</description>
</property>
<property>
<name>yarn.resourcemanager.scheduler.client.thread-count</name>
<value>100</value>
<description>
Number of threads to handle scheduler interface.
</description>
</property>
<property>
<name>yarn.app.mapreduce.am.job.task.listener.thread-count</name>
<value>64</value>
<description>
The number of threads used to handle RPC calls in the MR AppMaster from remote tasks
</description>
</property>
<property>
<name>yarn.nodemanager.container-manager.thread-count</name>
<value>32</value>
<description>
Number of threads container manager uses.
</description>
</property>
<!-- Retry -->
<property>
<name>yarn.resourcemanager.am.max-retries</name>
<value>3</value>
<description>
The maximum number of application master retries.
</description>
</property>
<property>
<name>yarn.app.mapreduce.client-am.ipc.max-retries</name>
<value>3</value>
<description>
The number of client retries to the AM - before reconnecting to the RM to fetch Application Status.
</description>
</property>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment