Sha256: f7f285d16e2498aa24e084174dd11c20043166b58523c8a886fd3809dd8c12fa
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module JRubyOnHadoop JAVA_MAIN_CLASS = 'org.apache.hadoop.ruby.JRubyJobRunner' class Client attr_reader :script, :inputs, :outputs, :files def initialize(args=[]) @args = args parse_args # env check hadoop_home and hadoop_cmd ENV['HADOOP_CLASSPATH'] = "#{lib_path}:#{File.dirname(@script_path)}" end def hadoop_home home = ENV['HADOOP_HOME'] raise 'HADOOP_HOME is not set' if home.nil? or home.empty? home end def hadoop_cmd hadoop = `which hadoop 2>/dev/null` hadoop = "#{hadoop_home}/bin/hadoop" if hadoop.nil? or hadoop.empty? raise 'cannot find hadoop command' unless hadoop hadoop.chomp end def run exec cmd end def cmd "#{hadoop_cmd} jar #{main_jar_path} #{JAVA_MAIN_CLASS}" + " -libjars #{opt_libjars} -files #{opt_files} #{mapred_args}" end def parse_args @script_path = @args.size > 0 ? @args[0] : 'mapred.rb' @script = File.basename(@script_path) @inputs = @args[1] if @args.size == 3 @outputs = @args[2] if @args.size == 3 @files = [@script_path, JRubyOnHadoop.wrapper_ruby_file] end def mapred_args args = "--script #{@script} " args += "#{@inputs} " if @inputs args += "#{@outputs}" if @outputs args end def opt_libjars # jruby jars [JRubyJars.core_jar_path, JRubyJars.stdlib_jar_path].join(',') end def opt_files @files.join(',') end def main_jar_path JRubyOnHadoop.jar_path end def lib_path JRubyOnHadoop.lib_path end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jruby-on-hadoop-0.0.4 | lib/jruby-on-hadoop/client.rb |