Hadoop EMR 을 mysql을 Metastore 로 1 Name Node + 2 DataNode로 구성하였을 때 나오는 설정을 분해해보고자한다.
HDFS-SITE 먼저 보고 순차적으로 core-site, yarn-site, spark-site까지 보고자 한다.
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///mnt/hdfs,file:///mnt1/hdfs</value>
</property>
Data Node에 물리적으로 파일이 어디에 저장되는 경로를 보여주는데... hdfs user로 접속하여 들어가면 가능하다. 실제 파일 저장해본후 확인도 해봐야할것같다.
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
Replication Factors는 현재 datanode를 두개로 성정하였기때문에 EMR에서 자동으로 1을 부여해 줬다.
<property>
<name>dfs.namenode.replication.max-streams</name>
<value>20</value>
</property>
Hadoop에서는 DataNode간에 복제가 이루어지며 이 때 한번에 최대로 수행 가능한 개수.
<property>
<name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-preference-fraction</name>
<value>1.0</value>
</property>
<property>
<name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold</name>
<value>10737418240</value>
</property>
1.0은 무조건 적으로 사용 가능한 공간이 가장 많은 공간을 찾아 쓴다는 것이다.
그리고 Cloudera에서는 default로 0.75를 사용하고 있으며 이는 4번중 3번은 최적의 공간을 찾으며 한번은 무작위로 선택함으로써 write 가 보다 빠를 수 있다.