gohbase

package module
v0.0.0-...-636e2cf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2017 License: Apache-2.0 Imports: 13 Imported by: 0

README

Golang HBase client Build StatusGoDoc

This is a pure-Go client for HBase.

Forked from tsuna/gohbase and rewrite core logic:

  • Support configure HBase znode parent
  • ​Replace B+ tree with balanced binary tree for maintaining region information in memory
  • Remove some unnecessary ansychronous procedures

Supported Versions

HBase >= 1.0

go >= 1.7

Installation

go get github.com/cannium/gohbase

Example Usage

Create a client
client := gohbase.NewClient("localhost")
Insert a cell
// Values maps a ColumnFamily -> Qualifiers -> Values.
values := map[string]map[string][]byte{"cf": map[string][]byte{"a": []byte{0}}}
putRequest, err := hrpc.NewPutStr(context.Background(), "table", "key", values)
rsp, err := client.Put(putRequest)
Get an entire row
getRequest, err := hrpc.NewGetStr(context.Background(), "table", "row")
getRsp, err := client.Get(getRequest)
Get a specific cell
// Perform a get for the cell with key "15", column family "cf" and qualifier "a"
family := map[string][]string{"cf": []string{"a"}}
getRequest, err := hrpc.NewGetStr(context.Background(), "table", "15",
    hrpc.Families(family))
getRsp, err := client.Get(getRequest)
Get a specific cell with a filter
pFilter := filter.NewKeyOnlyFilter(true)
family := map[string][]string{"cf": []string{"a"}}
getRequest, err := hrpc.NewGetStr(context.Background(), "table", "15",
    hrpc.Families(family), hrpc.Filters(pFilter))
getRsp, err := client.Get(getRequest)
Scan with a filter
pFilter := filter.NewPrefixFilter([]byte("7"))
scanRequest, err := hrpc.NewScanStr(context.Background(), "table",
		hrpc.Filters(pFilter))
scanRsp, err := client.Scan(scanRequest)

Contributing

Any help would be appreciated. Please use GerritHub to send changes for review, instead of GitHub pull requests. Please sign the Contributor License Agreement when you send your first change for review.

License

Copyright © 2015 The GoHBase Authors. All rights reserved. Use of this source code is governed by the Apache License 2.0 that can be found in the COPYING file.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrDeadline is returned when the deadline of a request has been exceeded
	ErrDeadline = errors.New("deadline exceeded")

	// TableNotFound is returned when attempting to access a table that
	// doesn't exist on this cluster.
	TableNotFound = errors.New("table not found")
)

Constants

Functions

This section is empty.

Types

type AdminClient

type AdminClient interface {
	CreateTable(t *hrpc.CreateTable) error
	DeleteTable(t *hrpc.DeleteTable) error
	EnableTable(t *hrpc.EnableTable) error
	DisableTable(t *hrpc.DisableTable) error
}

AdminClient to perform administrative operations with HMaster

func NewAdminClient

func NewAdminClient(zkquorum string, options ...Option) AdminClient

NewAdminClient creates an admin HBase client.

type Client

type Client interface {
	Scan(s *hrpc.Scan) ([]*hrpc.Result, error)
	Get(g *hrpc.Get) (*hrpc.Result, error)
	Put(p *hrpc.Mutate) (*hrpc.Result, error)
	Delete(d *hrpc.Mutate) (*hrpc.Result, error)
	Append(a *hrpc.Mutate) (*hrpc.Result, error)
	Increment(i *hrpc.Mutate) (int64, error)
	CheckAndPut(p *hrpc.Mutate, family string, qualifier string,
		expectedValue []byte) (bool, error)
	Close()
}

Client a regular HBase client

func NewClient

func NewClient(zkQuorum string, options ...Option) Client

NewClient creates a new HBase client.

type Option

type Option func(*client)

func FlushInterval

func FlushInterval(interval time.Duration) Option

FlushInterval will return an option that will set the timeout for flushing the RPC queues used in a given client

func RpcQueueSize

func RpcQueueSize(size int) Option

RpcQueueSize will return an option that will set the size of the RPC queues used in a given client

func SetZnodeParentOption

func SetZnodeParentOption(znodeParent string) Option

Directories

Path Synopsis
internal
pb
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.
zk
Package zk encapsulates our interactions with ZooKeeper.
Package zk encapsulates our interactions with ZooKeeper.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL