hadoop - конфигурация с несколькими датодами в псевдораспределенном режиме - PullRequest
0 голосов
/ 14 ноября 2018

Я новичок в 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 -format
start-all.sh
jps

У меня есть один наменод и одна датанода.
Я хочу, чтобы на этой машине было несколько датоданных, и я пытаюсь настроить по этому совету: stackoverflow и мой конфиг:

<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 Ответ

0 голосов
/ 14 ноября 2018

Ключевой частью этого связанного ответа является вы должны поддерживать разные конфигурации для каждого экземпляра датодета

Вы не можете поместить две секции <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

Я бы порекомендовал просто использовать две отдельные виртуальные машины, потому что это будет более точно соответствовать реальному сценарию

...