Class: Rbase::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/rbase/client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(server, port = 9090, timeout = 60) ⇒ Client

Returns a new instance of Client.



8
9
10
11
12
13
14
15
16
# File 'lib/rbase/client.rb', line 8

def initialize(server, port=9090, timeout=60)
  socket = Thrift::Socket.new(server, port.to_s, timeout)
  transport = Thrift::BufferedTransport.new(socket)
  transport.open

  protocol = Thrift::BinaryProtocol.new(transport)
  @tables = {}
  @client = Apache::Hadoop::Hbase::Thrift::Hbase::Client.new(protocol)
end

Class Method Details

.connect(server, port = 9090) {|client| ... } ⇒ Object

Yields:

  • (client)


3
4
5
6
# File 'lib/rbase/client.rb', line 3

def self.connect(server, port=9090, &blk)
  client = Client.new(server, port)
  yield client if block_given?
end

Instance Method Details

#[](table_name) ⇒ Object



46
47
48
49
50
51
# File 'lib/rbase/client.rb', line 46

def [](table_name)
  @tables[table_name] ||= begin
    Rbase::Table.new(@client, table_name) if table_exists?(table_name)
  end
  @tables[table_name]
end

#create_table(table_name, *column_family_names) ⇒ Object



26
27
28
29
30
31
# File 'lib/rbase/client.rb', line 26

def create_table(table_name, *column_family_names)
  column_families = column_family_names.map do |family_name|
    Apache::Hadoop::Hbase::Thrift::ColumnDescriptor.new(:name => family_name)
  end
  @client.createTable(table_name, column_families)
end

#create_table!(table_name, *column_family_names) ⇒ Object



33
34
35
36
37
38
# File 'lib/rbase/client.rb', line 33

def create_table!(table_name, *column_family_names)
  if table_exists?(table_name)
    delete_table(table_name)
  end
  create_table(table_name, *column_family_names)
end

#delete_table(table_name) ⇒ Object



40
41
42
43
44
# File 'lib/rbase/client.rb', line 40

def delete_table(table_name)
  @client.disableTable(table_name)
  @client.deleteTable(table_name)
  @tables.delete(table_name)
end

#table_exists?(table_name) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/rbase/client.rb', line 22

def table_exists?(table_name)
  table_names.include?(table_name)
end

#table_namesObject



18
19
20
# File 'lib/rbase/client.rb', line 18

def table_names
  @client.getTableNames
end