Przekazywanie argumentów do maperów Hadoop

Używam nowego API Hadoop i szukam sposobu na przekazanie niektórych parametrów (kilku ciągów) maperom.
Jak mogę to zrobić?

To rozwiązanie działa dla starego API :

JobConf job = (JobConf)getConf();
job.set("NumberOfDocuments", args[0]);

Tutaj" NumberOfDocuments "jest nazwą parametru, a jego wartość jest odczytywana z" args[0]", argumentu wiersza poleceń. Po ustawieniu tych argumentów możesz pobrać jego wartość w reduktorze lub maperze w następujący sposób:

private static Long N;
public void configure(JobConf job) {
     N = Long.parseLong(job.get("NumberOfDocuments"));
}

Uwaga, najtrudniejsze jest to, że nie można ustawić parametrów takich jak to:

Configuration con = new Configuration();
con.set("NumberOfDocuments", args[0]);
Author: Suvarna Pattayil, 2011-11-23

1 answers

W metodzie głównej Ustaw wymagany parametr jak poniżej lub używając opcji linii poleceń -D podczas wykonywania zadania.

Configuration conf = new Configuration();
conf.set("test", "123");

Job job = new Job(conf);

W maperze/reduktorze Pobierz parametr jako

Configuration conf = context.getConfiguration();
String param = conf.get("test");
 41
Author: Praveen Sripati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-08 17:37:21