Подсчёт слов - компиляция стандартного пример Hadoop - WordCount.java
Primary tabs
Forums:
Перенесём исходники (а это три файла - SumReducer.java, WordCount.java и сам WordMapper.java) пример WordCount в какую-нибудь папку (скопируем ,что не испортить оригинал) ,например:
/home/training/training_materials/developer/exercises/wordcount/tryword
перейдём в неё.
в ней создадим подпапку с именем с именем:
123
- в эту директорию мы будем сваливать "продукты компиляции"
Далее нам нужно получить определения используемых в примере классов - для этого нужно подключить .jar-архив ядра а также hadoop-common.jar - пути к двум этим архивам могут быть различны, у меня они располагаются соответсвенно по адресам:
- /usr/lib/hadoop-0.20-mapreduce/hadoop-core.jar
- /usr/lib/hadoop/hadoop-common.jar
Мы разделяем пути двоеточием, а после последнего двоеточия ставим точку, дабы в процессе "компиляции" участвовали файлы SumReducer.java и WordCount.java - то есть все исходники из нашей папки /home/training/training_materials/developer/exercises/wordcount/tryword
Вот команда:
javac -classpath /usr/lib/hadoop/hadoop-common.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-core.jar:. -d 123 WordCount.java
Теперь соберём на основе трёх классов .jar архив:
jar cvf mywordcount.jar -C 123/ .
обратите внимание, что точка ставится через пробел после пути к папке - это позволяет включить все содержащиеся в ней файлы (у нас их три - три файла классов - .class)
Hadoop 2.2.0
Работает такая команда для компиляции:
javac -classpath $HADOOP_HOME/share/hadoop/common/hadoop-common-2.2.0.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.2.0.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar -d wordcount_classes WordCount.java
- Log in to post comments
- 4699 reads