Sha256: 990016efabf17aa185ff4acf6839ba27265a2a662687d6032db78f19c95580f0

Contents?: true

Size: 916 Bytes

Versions: 5

Compression:

Stored size: 916 Bytes

Contents

module HBaseRb
  
  class Client
    def initialize(server, port=9090)
      socket = Thrift::Socket.new(server, port)
      @transport = Thrift::BufferedTransport.new(socket)
      @transport.open
      protocol = Thrift::BinaryProtocol.new(@transport)
      @client = Apache::Hadoop::Hbase::Thrift::Hbase::Client.new(protocol)
    end

    def table_names
      @client.getTableNames
    end

    def has_table?(name)
      table_names.include? name
    end

    def get_table(tablename)
      raise HBaseRb::NoSuchTable if not has_table? tablename
      HBaseRb::Table.new @client, tablename
    end

    def create_table(tablename, *column_family_names)
      column_family_names.map! { |name| Apache::Hadoop::Hbase::Thrift::ColumnDescriptor.new(:name => name) }
      @client.createTable tablename, column_family_names
      get_table tablename
    end

    def close
      @transport.close
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hbaserb-0.0.5 lib/hbaserb/client.rb
hbaserb-0.0.4 lib/hbaserb/client.rb
hbaserb-0.0.3 lib/hbaserb/client.rb
hbaserb-0.0.2 lib/hbaserb/client.rb
hbaserb-0.0.1 lib/hbaserb/client.rb