Я пытаюсь использовать Cascading
в своем проекте Hadoop. Я пытаюсь реализовать первый пример, приведенный в Enterprise Data Workflows with Cascading
книге. Я написал класс java, который содержит код, связанный с Cascading
, и у меня есть еще один файл build.graddle
, который должен скомпилировать этот класс java и создать из него файл jar.
Моя структура папок выглядит следующим образом:
главная_папка
нетерпеливый
- Main.java
- build.gradle
Мой файл build.gradle
выглядит следующим образом:
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'eclipse'
archivesBaseName = 'impatient'
repositories {
mavenLocal()
mavenCentral()
mavenRepo name: 'conjars', url: 'http://conjars.org/repo/'
}
ext.cascadingVersion = '2.1.0'
dependencies {
compile( group: 'cascading', name: 'cascading-core', version: cascadingVersion )
compile( group: 'cascading', name: 'cascading-hadoop', version: cascadingVersion )
}
jar {
description = "Assembles a Hadoop ready jar file"
doFirst {
into( 'lib' ) {
from configurations.compile
}
}
manifest {
attributes( "Main-Class": "impatient/Main" )
}
}
Когда я запускаю команду gradle clean jar
из командной строки, я получаю сообщение об успешной сборке. Я попытался запустить этот файл jar, используя
hadoop jar impatient.jar <input file path> <output file path>
команда, но затем она дает мне исключение Exception in thread "main" java.lang.ClassNotFoundException: impatient.Main
.
Итак, я проверил содержимое файла jar и обнаружил, что этот jar не содержит impatient/Main.class
файла.
Обратите внимание, что я ничего не знаю о gradle.
Попросите кого-нибудь сказать мне, если что-то не так со сценарием gradle или я делаю какую-то ошибку.
Спасибо !!!