Запуск образца wordcount с использованием MRV1 на CDH4.0.1 VM
Я загрузил VM из https://downloads.cloudera.com/demo_vm/vmware/cloudera-demo-vm-cdh4.0.0-vmware.tar.gz
Я обнаружил, что перечисленные ниже службы запускаются после загрузки системы.
Hadoop-0,20-MapReduce-JobTracker
Hadoop-0,20-MapReduce-TaskTracker
Hadoop-пряжа-nodemanager
Hadoop-пряжа-ResourceManager
Hadoop-MapReduce-historyserver
Hadoop-HDFS-NameNode
Hadoop-HDFS-DataNode
Пример подсчета слов отлично работает и генерирует результат как ожидалось
/usr/bin/hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount input output
Однако вышеприведенные пробежки с использованием структуры MRv2-YARN
Моя цель - запустить с использованием MRv1. Как было предложено в документации Cloudera, я останавливаю службы MRV2 и редактирует файл /etc/hadoop/conf/mapred -site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property
в "classic" (также пробовали "local" )
<property>
<name>mapreduce.framework.name</name>
<value>classic</value>
</property
Я ожидал, что он будет работать с использованием MRV1 (jobtracker и tasktracker). Однако я вижу следующую ошибку:
12/10/10 21:48:39 INFO mapreduce.Cluster: Failed to use org.apache.hadoop.mapred.LocalClientProtocolProvider due to error: Invalid "mapreduce.jobtracker.address" configuration value for LocalJobRunner : "172.30.5.21:8021"
12/10/10 21:48:39 ERROR security.UserGroupInformation: PriviledgedActionException as:cloudera (auth:SIMPLE) cause:java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:121)
at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:83)
......
Может кто-нибудь предположить, что может быть неправильным. Почему ошибка указывает на неверную конфигурацию?
Ответы
Ответ 1
Я думаю, что ваш кластер по-прежнему указывает на конфигурационный каталог MRv2, а не на MRv1.
Обновить/установить hadoop-conf
альтернативу в каждом node в кластере, указывающем на каталог конфигурации MRv1 с высоким приоритетом.
Затем перезапустите все ваши службы.
Например:
$ sudo update-alternatives --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.mrv1 50
$ sudo update-alternatives --set hadoop-conf /etc/hadoop/conf.mrv1
Ответ 2
Следующий ответ не мой, а OP, который был отправлен в самом вопросе.
Мне не хватало одной вещи, которая вызвала вышеупомянутый провал. Убедитесь, что в hasoop-env.sh вы изменили "export HADOOP_MAPRED_HOME =/usr/lib/hadoop-mapreduce" для "экспорта HADOOP_MAPRED_HOME =/usr/lib/hadoop-0.20-mapreduce".
Ошибка была немного ошибочной. Кроме того, я экспортировал переменную в оболочку, но это переопределяет ее, я считаю (требуется проверка).