Запуск образца wordcount с использованием MRV1 на CDH4.0.1 VM

Я загрузил VM из https://downloads.cloudera.com/demo_vm/vmware/cloudera-demo-vm-cdh4.0.0-vmware.tar.gz

Я обнаружил, что перечисленные ниже службы запускаются после загрузки системы.

  • Услуги MRV1

Hadoop-0,20-MapReduce-JobTracker
Hadoop-0,20-MapReduce-TaskTracker

  • Услуги MRV2

Hadoop-пряжа-nodemanager
Hadoop-пряжа-ResourceManager
Hadoop-MapReduce-historyserver

  • Услуги HDFS

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".

Ошибка была немного ошибочной. Кроме того, я экспортировал переменную в оболочку, но это переопределяет ее, я считаю (требуется проверка).