Beispiel #1
0
class HBaseClient:
    ''' Hbase client '''
    def __init__(self):
        transport = TSocket.TSocket('localhost', 9090)
        transport = TTransport.TBufferedTransport(transport)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)

        self.__client = Client(protocol)
        transport.open()

    def getTableNames(self):
        ''' get table names '''
        return self.__client.getTableNames()

    def deleteTable(self, tName):
        ''' delete table name '''
        if self.__client.isTableEnabled(tName):
            self.__client.disableTable(tName)

        self.__client.deleteTable(tName)

    def createTable(self, tName, ColumnDescriptors):
        try:
            self.__client.createTable(tName, ColumnDescriptors)
        except ttypes.AlreadyExists as excp:
            raise UfException(Errors.HBASE_CREATE_ERROR,
                              "AlreadyExists Error when creating table %s with cols: %s): %s" % \
                              (tName, [col.name for col in ColumnDescriptors], excp.message))

    def getColumnDescriptors(self, tName):
        try:
            return self.__client.getColumnDescriptors(tName)
        except:
            raise UfException(Errors.UNKNOWN_ERROR,
                              "Error when getting column descriptors table %s" % tName)

    def updateRow(self, tName, rowName, mutations, timestamp=None):
        ''' add row to table '''
        try:
            if timestamp is None:
                self.__client.mutateRow(tName, rowName, mutations)
            else:
                self.__client.mutateRowTs(tName, rowName, mutations, timestamp)
        except Exception as excp:
            raise UfException(Errors.HBASE_UPDATE_ERROR,
                              "Error when updating table %s - rowName %s - mutations %s: %s" % \
                              (tName, rowName, mutations, excp))

    def getRow(self, tName, rowName):
        ''' get row '''
        result = self.__client.getRow(tName, rowName)
        if not result:
            return result
        else:
            return result[0]

    def scanTable(self, tName, columns, startRow="", endRow=None):
        ''' scan a table '''
        if endRow is None:
            scanner = self.__client.scannerOpen(tName, startRow, columns)
        else:
            scanner = self.__client.scannerOpenWithStop(tName, startRow, endRow, columns)
        ret = []

        row = self.__client.scannerGet(scanner)
        while row:
          ret.append(row[0])
          row = self.__client.scannerGet(scanner)

        return ret

    def getClient(self):
        ''' return client, in case low level api is needed '''
        return self.__client
Beispiel #2
0
r = client.scannerGet(scanner)
while r:
    printRow(r[0])
    r = client.scannerGet(scanner)
print "Scanner finished"

#
# Run some operations on a bunch of rows.
#
for e in range(100, 0, -1):
    # format row keys as "00000" to "00100"
    row = "%0.5d" % (e)

    mutations = [Mutation(column="unused:", value="DELETE_ME")]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row)[0])
    client.deleteAllRow(t, row)

    mutations = [
        Mutation(column="entry:num", value="0"),
        Mutation(column="entry:foo", value="FOO")
    ]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row)[0])

    mutations = [
        Mutation(column="entry:foo", isDelete=True),
        Mutation(column="entry:num", value="-1")
    ]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row)[0])
Beispiel #3
0
r = client.scannerGet(scanner)
while r:
  printRow(r[0])
  r = client.scannerGet(scanner)
print "Scanner finished"

#
# Run some operations on a bunch of rows.
#
for e in range(100, 0, -1):
    # format row keys as "00000" to "00100"
  row = "%0.5d" % (e)

  mutations = [Mutation(column="unused:", value="DELETE_ME")]
  client.mutateRow(t, row, mutations)
  printRow(client.getRow(t, row)[0])
  client.deleteAllRow(t, row)

  mutations = [Mutation(column="entry:num", value="0"),
               Mutation(column="entry:foo", value="FOO")]
  client.mutateRow(t, row, mutations)
  printRow(client.getRow(t, row)[0]);

  mutations = [Mutation(column="entry:foo",isDelete=True),
               Mutation(column="entry:num",value="-1")]
  client.mutateRow(t, row, mutations)
  printRow(client.getRow(t, row)[0])

  mutations = [Mutation(column="entry:num", value=str(e)),
               Mutation(column="entry:sqr", value=str(e*e))]
  client.mutateRow(t, row, mutations)
Beispiel #4
0
try:
    while 1:
        printRow(client.scannerGet(scanner))
except ttypes.NotFound, e:
    print "Scanner finished"

#
# Run some operations on a bunch of rows.
#
for e in range(100, 0, -1):
    # format row keys as "00000" to "00100"
    row = "%0.5d" % (e)

    mutations = [Mutation({"column": "unused:", "value": "DELETE_ME"})]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row))
    client.deleteAllRow(t, row)

    mutations = [Mutation({"column": "entry:num", "value": "0"}), Mutation({"column": "entry:foo", "value": "FOO"})]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row))

    mutations = []
    m = Mutation()
    m.column = "entry:foo"
    m.isDelete = 1
    mutations.append(m)
    m = Mutation()
    m.column = "entry:num"
    m.value = "-1"
    mutations.append(m)
Beispiel #5
0
try:
    while 1:
        printRow(client.scannerGet(scanner))
except ttypes.NotFound, e:
    print "Scanner finished"

#
# Run some operations on a bunch of rows.
#
for e in range(100, 0, -1):
    # format row keys as "00000" to "00100"
    row = "%0.5d" % (e)

    mutations = [Mutation({"column": "unused:", "value": "DELETE_ME"})]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row))
    client.deleteAllRow(t, row)

    mutations = [
        Mutation({
            "column": "entry:num",
            "value": "0"
        }),
        Mutation({
            "column": "entry:foo",
            "value": "FOO"
        })
    ]
    client.mutateRow(t, row, mutations)
    printRow(client.getRow(t, row))