Class: Hive
- Inherits:
-
Object
- Object
- Hive
- Defined in:
- lib/jruby_hive.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ Hive
constructor
A new instance of Hive.
- #run(cmd) ⇒ Object
Constructor Details
#initialize ⇒ Hive
Returns a new instance of Hive.
39 40 41 42 43 44 |
# File 'lib/jruby_hive.rb', line 39 def initialize @hconf = HiveConf.new @driver = Driver.new(@hconf) SessionState.start(CliSessionState.new(@hconf)) end |
Class Method Details
.bootstrap ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/jruby_hive.rb', line 10 def self.bootstrap if ENV['HIVE_HOME'] hive_home=ENV['HIVE_HOME'] else raise HiveError, "HIVE_HOME is not set!" end hadoop_home=ENV['HADOOP_HOME'] Dir[ "#{hadoop_home}/share/hadoop/mapreduce/*.jar", "#{hadoop_home}/share/hadoop/mapreduce/lib/*.jar", "#{hive_home}/lib/*.jar" ].each do |jar| require jar end $CLASSPATH << "#{hive_home}/conf" require 'hdfs_jruby' java_import 'java.util.ArrayList' java_import 'org.apache.hadoop.hive.conf.HiveConf' #java_import 'org.apache.hadoop.hive.conf.HiveConf.ConfVars' java_import 'org.apache.hadoop.hive.ql.Driver' java_import 'org.apache.hadoop.hive.ql.processors.CommandProcessorResponse' java_import 'org.apache.hadoop.hive.cli.CliSessionState' java_import 'org.apache.hadoop.hive.ql.session.SessionState' end |
Instance Method Details
#run(cmd) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/jruby_hive.rb', line 46 def run(cmd) r = @driver.run(cmd) if r.getResponseCode != 0 raise HiveError, "hive error: " << r.getErrorMessage end list = ArrayList.new if @driver.getResults(list) return list.to_ary end return nil end |