RPi3B+を用いたHadoop Cluster(ver. 3.2.0)構築時の設定
Hadoopの構築
動機
主に修論。(SoC FPGAを使った研究テーマがあったから。)
あとは、Docker・Kubenetesを調べてるうちに、 ネットワーク・通信を使ったアプリケーション、複数台のマシンを使った処理をやってみたくなったから。
構築
構築の際の方法等は別記事にする(かも)。
Hadoop-3.2.0の設定ファイル・各設定の意味
hadoop-3.2.0/etc/hadoop 内にある設定ファイルをいじる。
嘘が混じってるかもしれない
core-site.xml
fs.default.name
ファイルシステムのホスト・ポートを指定する(古い設定方法)
<property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property>
fs.defaultFS
ファイルシステムのホスト・ポートを指定する(現時点ではこちらが推奨)
<property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property>
hdfs-site.xml
dfs.namenode.name.dir
NameNodeがデータを使用するために使うディレクトリの指定
<property> <name>dfs.namenode.name.dir</name> <value>/home/hduser/hdfs/name</value> </property>
dfs.datanode.data.dir
DataNodeがデータを使用するために使うディレクトリの指定
<property> <name>dfs.datanode.data.dir</name> <value>/home/hduser/hdfs/data</value> </property>
dfs.replication
Hadoop Cluster内で複製をいくつ行うかを指定(下の場合、3つの複製を別のマシンで持つ)
<property> <name>dfs.replication</name> <value>3</value> </property>
mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
<property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/home/hduser/hadoop-3.2.0</value> </property>
<property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=/home/hduser/hadoop-3.2.0</value> </property>
<property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=/home/hduser/hadoop-3.2.0</value> </property>
<property> <name>yarn.app.mapreduce.am.resource.mb</name> <value>256</value> </property>
<property> <name>mapreduce.map.memory.mb</name> <value>128</value> </property>
<property> <name>mapreduce.map.memory.mb</name> <value>128</value> </property>
yarn-site.xml
yarn.resourcemanager.hostname
ResourceManagerがMap/Reduceジョブなどのアプリケーションを受け付けるホストを指定
<property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property>
<property> <name>yarn.acl.enable</name> <value>0</value> </property>
yarn.nodemanager.aux-services
MapReduceのシャッフルサービスを指定する
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
<property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>
yarn.nodemanager.resource.memory-mb
NameNodeで利用できるメモリ量
<property> <name>yarn.nodemanager.resource.memory-mb</name> <value>512</value> </property>
yarn.scheduler.maximum-allocation.mb
JobがResourceManagerに要求できる最大のメモリ量
<property> <name>yarn.scheduler.maximum-allocation.mb</name> <value>512</value> </property>
yarn.scheduler.minimum-allocation.mb
JobがResourceManagerに要求する最小のメモリ量
<property> <name>yarn.scheduler.minimum-allocation.mb</name> <value>64</value> </property>
yarn.nodemanager.vmem-check-enabled
割り振られたメモリよりも多くのメモリを使用するジョブが失敗しないようにするにはfalseにする。 trueにすると使用可能なメモリをオーバーするとJobが停止する
<property> <name>yarn.nodemanager.vmem-check-enable</name> <value>64</value> </property>