hadoop - конфигурация с несколькими датодами в псевдораспределенном режиме
Я новичок в Hadoop. У меня есть настройка hadoop - псевдораспределенный режим на одной машине. Моя конфигурация hdfs-site.xml по умолчанию:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/yarn_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/yarn_data/hdfs/datanode</value>
</property>
После запуска:
hdfs namenode -формат
start-all.sh
JPS
У меня есть один наменоде и один датанод.
Я хочу, чтобы на этой машине было несколько датоде, и я пытаюсь настроить этот совет: stackru и моя конфигурация:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/yarn_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/yarn_data/hdfs/datanode-1</value>
<name>dfs.datanode.address</name>
<value>0.0.0.0:9870</value>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:9090</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/yarn_data/hdfs/datanode-2</value>
<name>dfs.datanode.address</name>
<value>0.0.0.0:9871</value>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:9091</value>
</property>
И я получаю ноль датанод. Любая помощь будет принята с благодарностью.
1 ответ
Ключевой частью этого связанного ответа является то, что вы должны поддерживать разные конфигурации для каждого экземпляра datanode
Вы не можете поставить два <name>
а также <value>
разделы как часть одного и того же файла XML
Вам необходимо иметь два отдельных конфигурационных файла, по одному для каждой датоды.
Тем не менее, я не совсем уверен, что возможно иметь два HADOOP_CONF_DIR
переменные для уникальных процессов Hadoop. Там может быть способ сделать hadoop --config /some/path datanode
, но start-dfs
просто прячется таким образом, чтобы убежать от вас
При этом, если у вас есть export HADOOP_CONF_DIR=/etc/hadoop
а также ls $HADOOP_CONF_DIR/hdfs-site.xml
работает, то вы можете попробовать следующее в своем собственном терминале
mkdir /etc/hadoop2
cp /etc/hadoop/* /etc/hadoop2/
# EDIT the new hdfs-site.xml file
hadoop --config /etc/hadoop2 datanode
Я бы порекомендовал использовать только две отдельные виртуальные машины, потому что это будет более точно соответствовать реальному сценарию.