You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 2, 2023. It is now read-only.
I'm prototyping out a solution to use Rubydoop on EMR. I have written some jobs which I can run fine locally. But when I try to execute it on EMR, I get the following error:
LoadError: no such file to load -- rubydoop
require at org/jruby/RubyKernel.java:956
require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:55
Exception in thread "main" org.jruby.embed.InvokeFailedException: (LoadError) no such file to load -- rubydoop
at org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call(EmbedRubyObjectAdapterImpl.java:320)
at org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.callMethod(EmbedRubyObjectAdapterImpl.java:250)
at org.jruby.embed.ScriptingContainer.callMethod(ScriptingContainer.java:1412)
at rubydoop.InstanceContainer.getRuntime(InstanceContainer.java:30)
at rubydoop.RubydoopJobRunner.run(RubydoopJobRunner.java:25)
at rubydoop.RubydoopJobRunner.run(RubydoopJobRunner.java:18)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at rubydoop.RubydoopJobRunner.main(RubydoopJobRunner.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- rubydoop
at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:956)
at RUBY.require(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:55)
In terms of setup, I have run rake package and then uploaded the jar to an s3 bucket. When configuring my cluster step, I am able to select the custom jar. I then pass the following arguments: test abc123. test is the name of the job script (test.rb) and abc123 is the argument I want to pass.
The main class I'm trying to execute is lib/test.rb and looks like this:
require "rubydoop"
require "fileutils"
# ... other requires contained in lib/
Rubydoop.configure do |instance_id|
# do stuff
end
I'm prototyping out a solution to use Rubydoop on EMR. I have written some jobs which I can run fine locally. But when I try to execute it on EMR, I get the following error:
In terms of setup, I have run
rake packageand then uploaded the jar to an s3 bucket. When configuring my cluster step, I am able to select the custom jar. I then pass the following arguments:test abc123.testis the name of the job script (test.rb) andabc123is the argument I want to pass.The main class I'm trying to execute is
lib/test.rband looks like this:Any ideas?