2013-02-11 6 views
2

Я очень смущаюсь о выпусках Hadoop и новом API. У меня был проект Hadoop 0.20.203, и я думаю, его время для его обновления. Я хочу использовать версию с YARN, которая составляет 0.23 или 2.0.2. Поскольку 2.0.2 в соответствии с сайтом Hadoop похож на 0,23, но лучше, я импортировал версию 2.0.2. Предполагается, что новый api находится в org.apache.hadoop.mapreduce, а не в org.apache.hadoop.mapred, и у меня уже был этот пакет из моей версии 0.20, поэтому мне не нужно ничего менять. Класс Job имеет все свои конструкторы как устаревшие, поэтому как я должен использовать этот класс? Я также получаю много предупреждений об устаревании, когда я запускаю свой проект, в котором упоминается упакованный пакет.Hadoop выпускает новый API

Я отредактировал мой вопрос, чтобы включить устаревшие вещи, которые у меня на выходе

13/02/12 00:52:57 WARN conf.Configuration: mapred.jar is deprecated. Instead, use mapreduce.job.jar 
13/02/12 00:52:57 WARN conf.Configuration: mapred.cache.files is deprecated. Instead, use mapreduce.job.cache.files 
13/02/12 00:52:57 WARN conf.Configuration: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces 
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class 
13/02/12 00:52:57 WARN conf.Configuration: mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class 
13/02/12 00:52:57 WARN conf.Configuration: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class 
13/02/12 00:52:57 WARN conf.Configuration: mapred.job.name is deprecated. Instead, use mapreduce.job.name 
13/02/12 00:52:57 WARN conf.Configuration: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class 
13/02/12 00:52:57 WARN conf.Configuration: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir 
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir 
13/02/12 00:52:57 WARN conf.Configuration: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize 
13/02/12 00:52:57 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
13/02/12 00:52:57 WARN conf.Configuration: mapred.cache.files.timestamps is deprecated. Instead, use mapreduce.job.cache.files.timestamps 
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class 
13/02/12 00:52:57 WARN conf.Configuration: mapred.mapoutput.key.class is deprecated. Instead, use mapreduce.map.output.key.class 
13/02/12 00:52:57 WARN conf.Configuration: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir 
+0

Какие ошибки? –

+0

Почему бы вам не использовать соответствующие классы из нового API, как это указано в предупреждениях? – Amar

+0

ПРАВЕН, я не получаю никаких ошибок, я просто путаюсь о выпусках и API. Я думаю, что я буду использовать серию 1.X.X, так как я не буду использовать ее в больших масштабах. Amar Я не использую какой-либо образованный пакет. Я использую только пакет mapreduce. Не знаю, почему я получаю это предупреждение. – jojoba

ответ

0

Есть два основных изменения, которые произошли рамку MapReduce WRT между 20.2xx/1.x и 0,21/0,22/0,23/2.x.

  • Несколько названий конфигураций переименованы, чтобы лучше отражать то, что является конфигурационной конфигурацией на стороне сервера, а также свойство конфигурации на стороне клиента.
    • Конфигурации на стороне клиента: старые имена устарели, поэтому вы видите эти предупреждения.
    • Вы упомянули 2.0.2, поэтому я предполагаю, что вы используете новую структуру YARN. В этом случае ни одна из старых конфигураций на стороне сервера не имеет никакого эффекта.
  • Существует два варианта API-интерфейсов mapreduce - старые API (org.apache.hadoop.mapred) и новые API (org.apache.hadoop.mapreduce). Это немного длинная история, но текущее состояние (и в будущем) заключается в том, что поддерживаются как старые, так и новые API.
    • Старый API по-прежнему стабилен и поддерживается двоично-совместимым способом для всех версий.
    • Новые API имеют некоторые проблемы совместимости версий (1.x -> 2.x).

Вы можете прочитать больше о совместимости API в Hadoop 2 здесь: http://hortonworks.com/blog/running-existing-applications-on-hadoop-2-yarn/