hbase-ruby 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{MIT-LICENSE → LICENSE} +0 -0
- data/README.textile +4 -1
- data/Rakefile +7 -4
- data/VERSION +1 -1
- data/lib/hbase.rb +7 -42
- data/lib/hbase/client.rb +10 -5
- data/lib/hbase/model.rb +6 -6
- data/lib/hbase/model/row.rb +8 -1
- data/lib/hbase/operation/row_operation.rb +0 -1
- data/lib/hbase/operation/table_operation.rb +2 -2
- data/lib/hbase/request.rb +5 -5
- data/lib/hbase/response.rb +5 -5
- data/lib/hbase/response/meta_response.rb +1 -1
- data/lib/hbase/response/table_response.rb +1 -1
- data/spec/hbase/model/row_spec.rb +1 -1
- data/spec/hbase/model/scanner.rb +0 -2
- data/spec/hbase/operation/table_operation_spec.rb +0 -12
- data/spec/hbase/record_spec.rb +0 -5
- data/spec/hbase/request/row_request_spec.rb +0 -1
- data/spec/hbase/request/scanner_request_spec.rb +0 -1
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +3 -7
- metadata +18 -20
- data/History.txt +0 -17
- data/tasks/rspec.rake +0 -7
data/{MIT-LICENSE → LICENSE}
RENAMED
File without changes
|
data/README.textile
CHANGED
@@ -44,7 +44,10 @@ Here are some examples:
|
|
44
44
|
<pre><code>
|
45
45
|
require 'hbase'
|
46
46
|
|
47
|
-
|
47
|
+
# Direct connection
|
48
|
+
# client = HBase::Client.new("http://localhost:8080") # this url is the default for stargate.
|
49
|
+
# Connection through a proxy
|
50
|
+
client = HBase::Client.new("http://localhost:8080", { :proxy => "10.2.3.4:8080" })
|
48
51
|
|
49
52
|
# Table Operation
|
50
53
|
tables = client.list_tables # list available tables
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec/rake/spectask'
|
2
2
|
|
3
3
|
begin
|
4
4
|
require 'jeweler'
|
@@ -10,8 +10,8 @@ begin
|
|
10
10
|
gemspec.homepage = "http://github.com/greglu/hbase-ruby"
|
11
11
|
gemspec.summary = "A pure ruby client for HBase using the Stargate interface."
|
12
12
|
gemspec.description = "A pure ruby client used to interact with HBase through its Stargate interface which serves up XML, JSON, protobuf, and more."
|
13
|
-
gemspec.files = FileList["{lib,spec
|
14
|
-
gemspec.extra_rdoc_files = FileList["
|
13
|
+
gemspec.files = FileList["{lib,spec}/**/*","Rakefile","VERSION","LICENSE","README.textile"].to_a
|
14
|
+
gemspec.extra_rdoc_files = FileList["LICENSE","README.textile"].to_a
|
15
15
|
|
16
16
|
gemspec.add_development_dependency "rspec"
|
17
17
|
gemspec.add_dependency "json"
|
@@ -21,4 +21,7 @@ rescue LoadError
|
|
21
21
|
puts "Jeweler not available. Install it with: sudo gem install jeweler"
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
Spec::Rake::SpecTask.new(:spec) do |t|
|
25
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
26
|
+
t.spec_opts = File.open("spec/spec.opts").readlines.map{|x| x.chomp}
|
27
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/lib/hbase.rb
CHANGED
@@ -1,44 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require 'hbase/client'
|
5
|
-
require 'hbase/exception'
|
6
|
-
require 'hbase/model'
|
7
|
-
require 'hbase/request'
|
8
|
-
require 'hbase/response'
|
9
|
-
|
10
|
-
module HBase; end
|
11
|
-
|
12
|
-
class Object
|
13
|
-
def to_proc
|
14
|
-
proc { |obj, *args| obj.send(self, *args) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def blank?
|
18
|
-
respond_to?(:empty?) ? empty? : !self
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
class NilClass #:nodoc:
|
23
|
-
def blank?
|
24
|
-
true
|
25
|
-
end
|
1
|
+
module HBase
|
2
|
+
VERSION = File.read(File.join(File.dirname(__FILE__), "..", "VERSION")).chomp.freeze
|
26
3
|
end
|
27
4
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
alias_method :blank?, :empty?
|
34
|
-
end
|
35
|
-
|
36
|
-
class String #:nodoc:
|
37
|
-
def blank?
|
38
|
-
self !~ /\S/
|
39
|
-
end
|
40
|
-
|
41
|
-
def to_b
|
42
|
-
self == "true" ? true : false
|
43
|
-
end
|
44
|
-
end
|
5
|
+
require File.join(File.dirname(__FILE__), "hbase", "client")
|
6
|
+
require File.join(File.dirname(__FILE__), "hbase", "exception")
|
7
|
+
require File.join(File.dirname(__FILE__), "hbase", "model")
|
8
|
+
require File.join(File.dirname(__FILE__), "hbase", "request")
|
9
|
+
require File.join(File.dirname(__FILE__), "hbase", "response")
|
data/lib/hbase/client.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'net/http'
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
2
|
+
require File.dirname(__FILE__) + '/operation/meta_operation'
|
3
|
+
require File.dirname(__FILE__) + '/operation/table_operation'
|
4
|
+
require File.dirname(__FILE__) + '/operation/row_operation'
|
5
|
+
require File.dirname(__FILE__) + '/operation/scanner_operation'
|
6
6
|
|
7
7
|
module HBase
|
8
8
|
class Client
|
@@ -20,7 +20,12 @@ module HBase
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# Not actually opening the connection yet, just setting up the persistent connection.
|
23
|
-
|
23
|
+
if opts[:proxy]
|
24
|
+
proxy_address, proxy_port = opts[:proxy].split(':')
|
25
|
+
@connection = Net::HTTP.Proxy(proxy_address, proxy_port).new(@url.host, @url.port)
|
26
|
+
else
|
27
|
+
@connection = Net::HTTP.new(@url.host, @url.port)
|
28
|
+
end
|
24
29
|
@connection.read_timeout = opts[:timeout] if opts[:timeout]
|
25
30
|
end
|
26
31
|
|
data/lib/hbase/model.rb
CHANGED
@@ -11,9 +11,9 @@ module HBase
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
require '
|
15
|
-
require '
|
16
|
-
require '
|
17
|
-
require '
|
18
|
-
require '
|
19
|
-
require '
|
14
|
+
require File.dirname(__FILE__) + '/model/column'
|
15
|
+
require File.dirname(__FILE__) + '/model/column_descriptor'
|
16
|
+
require File.dirname(__FILE__) + '/model/region_descriptor'
|
17
|
+
require File.dirname(__FILE__) + '/model/row'
|
18
|
+
require File.dirname(__FILE__) + '/model/table_descriptor'
|
19
|
+
require File.dirname(__FILE__) + '/model/scanner'
|
data/lib/hbase/model/row.rb
CHANGED
@@ -3,9 +3,16 @@ module HBase
|
|
3
3
|
class Row < Record
|
4
4
|
attr_accessor :table_name
|
5
5
|
attr_accessor :name
|
6
|
-
attr_accessor :timestamp
|
7
6
|
attr_accessor :total_count
|
8
7
|
attr_accessor :columns
|
8
|
+
|
9
|
+
def timestamp
|
10
|
+
warn "[DEPRECATION] timestamp attribute will be removed from the Row model. "
|
11
|
+
end
|
12
|
+
|
13
|
+
def timestamp=
|
14
|
+
timestamp
|
15
|
+
end
|
9
16
|
end
|
10
17
|
end
|
11
18
|
end
|
@@ -20,7 +20,6 @@ module HBase
|
|
20
20
|
request = Request::RowRequest.new(table_name, name, timestamp)
|
21
21
|
row = Response::RowResponse.new(get(request.show(columns, options)), :show_row).parse.first
|
22
22
|
row.table_name = table_name
|
23
|
-
row.timestamp = timestamp
|
24
23
|
row
|
25
24
|
rescue Net::ProtocolError => e
|
26
25
|
# TODO: Use better handling instead of this.
|
@@ -4,8 +4,8 @@ module HBase
|
|
4
4
|
def show_table(name)
|
5
5
|
begin
|
6
6
|
request = Request::TableRequest.new(name)
|
7
|
-
|
8
|
-
rescue Net::ProtocolError
|
7
|
+
Response::TableResponse.new(get(request.show)).parse
|
8
|
+
rescue Net::ProtocolError
|
9
9
|
raise TableNotFoundError, "Table '#{name}' Not found"
|
10
10
|
end
|
11
11
|
end
|
data/lib/hbase/request.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module HBase; module Request; end; end
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
require '
|
7
|
-
require '
|
3
|
+
require File.dirname(__FILE__) + '/request/basic_request'
|
4
|
+
require File.dirname(__FILE__) + '/request/meta_request'
|
5
|
+
require File.dirname(__FILE__) + '/request/table_request'
|
6
|
+
require File.dirname(__FILE__) + '/request/row_request'
|
7
|
+
require File.dirname(__FILE__) + '/request/scanner_request'
|
data/lib/hbase/response.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module HBase; module Response; end; end
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
require '
|
7
|
-
require '
|
3
|
+
require File.dirname(__FILE__) + '/response/basic_response'
|
4
|
+
require File.dirname(__FILE__) + '/response/meta_response'
|
5
|
+
require File.dirname(__FILE__) + '/response/table_response'
|
6
|
+
require File.dirname(__FILE__) + '/response/row_response'
|
7
|
+
require File.dirname(__FILE__) + '/response/scanner_response'
|
@@ -11,7 +11,7 @@ module HBase
|
|
11
11
|
def parse_content(raw_data)
|
12
12
|
case @method
|
13
13
|
when :list_tables
|
14
|
-
if raw_data.
|
14
|
+
if raw_data.to_s.empty? || raw_data == "null" # "null" from json
|
15
15
|
puts "There are no available tables in the HBase"
|
16
16
|
return []
|
17
17
|
end
|
@@ -9,7 +9,7 @@ module HBase
|
|
9
9
|
table["ColumnSchema"].each do |columnfamily|
|
10
10
|
colname = columnfamily["name"].strip
|
11
11
|
compression = columnfamily["COMPRESSION"].strip
|
12
|
-
bloomfilter = columnfamily["BLOOMFILTER"].strip
|
12
|
+
bloomfilter = (columnfamily["BLOOMFILTER"].strip =~ /^true$/i ? true : false)
|
13
13
|
max_versions = columnfamily["VERSIONS"].strip.to_i
|
14
14
|
|
15
15
|
column_descriptor = Model::ColumnDescriptor.new(:name => colname,
|
data/spec/hbase/model/scanner.rb
CHANGED
@@ -30,18 +30,6 @@ describe HBase::Operation::TableOperation do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
it "should disable table 'test-hbase-ruby'" do
|
34
|
-
lambda {
|
35
|
-
table = @client.disable_table('test-hbase-ruby')
|
36
|
-
}.should_not raise_error
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should enable table 'test-hbase-ruby'" do
|
40
|
-
lambda {
|
41
|
-
table = @client.enable_table('test-hbase-ruby')
|
42
|
-
}.should_not raise_error
|
43
|
-
end
|
44
|
-
|
45
33
|
it "should delete the table 'test-hbase-ruby'" do
|
46
34
|
lambda {
|
47
35
|
table = @client.destroy_table("test-hbase-ruby")
|
data/spec/hbase/record_spec.rb
CHANGED
data/spec/spec.opts
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require File.join(File.dirname(__FILE__), "..", "lib", "hbase")
|
4
|
-
|
5
|
-
Spec::Runner.configure do |config|
|
6
|
-
#.etc
|
7
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec'
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "hbase"))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hbase-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ye Dingding
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
13
|
+
date: 2010-01-17 00:00:00 -05:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -40,11 +40,10 @@ executables: []
|
|
40
40
|
extensions: []
|
41
41
|
|
42
42
|
extra_rdoc_files:
|
43
|
-
-
|
43
|
+
- LICENSE
|
44
44
|
- README.textile
|
45
45
|
files:
|
46
|
-
-
|
47
|
-
- MIT-LICENSE
|
46
|
+
- LICENSE
|
48
47
|
- README.textile
|
49
48
|
- Rakefile
|
50
49
|
- VERSION
|
@@ -95,7 +94,6 @@ files:
|
|
95
94
|
- spec/hbase/response/table_response_spec.rb
|
96
95
|
- spec/spec.opts
|
97
96
|
- spec/spec_helper.rb
|
98
|
-
- tasks/rspec.rake
|
99
97
|
has_rdoc: true
|
100
98
|
homepage: http://github.com/greglu/hbase-ruby
|
101
99
|
licenses: []
|
@@ -125,23 +123,23 @@ signing_key:
|
|
125
123
|
specification_version: 3
|
126
124
|
summary: A pure ruby client for HBase using the Stargate interface.
|
127
125
|
test_files:
|
128
|
-
- spec/
|
129
|
-
- spec/hbase/
|
130
|
-
- spec/hbase/
|
131
|
-
- spec/hbase/
|
132
|
-
- spec/hbase/
|
133
|
-
- spec/hbase/response/meta_response_spec.rb
|
126
|
+
- spec/hbase/request/row_request_spec.rb
|
127
|
+
- spec/hbase/request/table_request_spec.rb
|
128
|
+
- spec/hbase/request/meta_request_spec.rb
|
129
|
+
- spec/hbase/request/scanner_request_spec.rb
|
130
|
+
- spec/hbase/model/scanner.rb
|
134
131
|
- spec/hbase/model/column_spec.rb
|
132
|
+
- spec/hbase/model/row_spec.rb
|
135
133
|
- spec/hbase/model/column_descriptor_spec.rb
|
136
|
-
- spec/hbase/model/scanner.rb
|
137
134
|
- spec/hbase/model/region_descriptor_spec.rb
|
138
135
|
- spec/hbase/model/table_descriptor_spec.rb
|
139
|
-
- spec/hbase/
|
140
|
-
- spec/hbase/
|
141
|
-
- spec/hbase/request/meta_request_spec.rb
|
142
|
-
- spec/hbase/request/row_request_spec.rb
|
143
|
-
- spec/hbase/request/scanner_request_spec.rb
|
136
|
+
- spec/hbase/operation/row_operation_spec.rb
|
137
|
+
- spec/hbase/operation/meta_operation_spec.rb
|
144
138
|
- spec/hbase/operation/scanner_operation_spec.rb
|
145
139
|
- spec/hbase/operation/table_operation_spec.rb
|
146
|
-
- spec/hbase/
|
147
|
-
- spec/hbase/
|
140
|
+
- spec/hbase/record_spec.rb
|
141
|
+
- spec/hbase/response/scanner_response_spec.rb
|
142
|
+
- spec/hbase/response/meta_response_spec.rb
|
143
|
+
- spec/hbase/response/table_response_spec.rb
|
144
|
+
- spec/hbase/response/row_response_spec.rb
|
145
|
+
- spec/spec_helper.rb
|
data/History.txt
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
v1.1.2 Nov 8, 2009
|
2
|
-
* A bug with the timestamps in create_row() was fixed. Also updated specs.
|
3
|
-
|
4
|
-
v1.1.1 Nov 7, 2009
|
5
|
-
* Improved the scanner functionality. Decided it was worth a version bump and release.
|
6
|
-
|
7
|
-
v1.1.0 Nov 7, 2009
|
8
|
-
* Bumped to version 1.1.0 to avoid confusion with an existing hbase-ruby on gemcutter that was at version 1.0
|
9
|
-
* Reimplemented entirely with HBase Stargate (old REST API was obsoleted by this)
|
10
|
-
* Since Stargate can return JSON, parsing is now done with JSON instead of XML
|
11
|
-
* API change to open_scanner. Now expects open_scanner(table_name, options) with available options listed under HBase::Model::Scanner.AVAILABLE_OPTS
|
12
|
-
|
13
|
-
v0.4 Oct 12, 2008
|
14
|
-
* support 'scanner'
|
15
|
-
|
16
|
-
v0.1 Jul 29, 2008
|
17
|
-
* initial version
|