I hate to ask this here, but it won't work, so whatever.

I followed the HelloWorld section of the Getting Started guide <
http://twill.apache.org/GettingStarted.html> on my cluster with Hadoop and
Zookeeper set up and functioning properly.

git clone https://github.com/apache/twill.git
cd twill
mvn clean install -DskipTests

export
CP=twill-examples/yarn/target/twill-examples-yarn-0.12.0-SNAPSHOT.jar:`hadoop
classpath`
java -cp $CP org.apache.twill.example.yarn.HelloWorld
my.zookeeper.domain:2181

Yes, `hadoop classpath` echoes all the relevant jar directories.

The command runs well for a bit with multiple:
[ STARTING] DEBUG o.a.twill.yarn.YarnTwillController - Yarn application
status for HelloWorldRunnable application_1111111111111_0001: ACCEPTED

until:
[ STARTING] DEBUG o.a.hadoop.service.AbstractService - Service:
org.apache.hadoop.yarn.client.api.impl.YarnClientImpl entered state STOPPED
[ STARTING] DEBUG org.apache.hadoop.ipc.Client - stopping client from
cache: org.apache.hadoop.ipc.Client@4d465b11
[ STARTING] DEBUG o.a.twill.yarn.YarnTwillController - Yarn application
status for HelloWorldRunnable application_1111111111111_0001: FAILED
...
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Yarn
application completed with failure HelloWorldRunnable...

The ResourceManager reveals:
Application application_1111111111111_0001 failed 2 times due to AM
Container for appattempt_1111111111111_0001_000002 exited with exitCode: 1
...
Diagnostics: Exception from container-launch.

The corresponding YARN logs for each DataNode reveal:
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/hadoop/conf/Configuration
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at org.apache.twill.launcher.TwillLauncher.main(TwillLauncher.java:70)
Caused by: java.lang.ClassNotFoundException:
org.apache.hadoop.conf.Configuration
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
Launch class (org.apache.twill.internal.appmaster.ApplicationMasterMain)
using classloader java.net.URLClassLoader with classpath: [
*A list of several classpaths like
"file:/some/path/yarn/local/usercache/my.username/appcache/application_1111111111111_0001/container_e10_
1111111111111
_0001_02_000001/application.jar/lib/twill-examples-yarn-0.12.0-SNAPSHOT.jar"
But none of which are paths to any Hadoop jars of the sort that are
referenced in $CP*
]

What am I missing?

I've spent an embarrassingly large amount of time on this fiddling with
environment variables and Hadoop configuration. (I'm an intern learning
this stuff the hard way, so it's not really embarrassing, just substantial.)

Reply via email to