3

我们有一个基于 Hadoop 的 HBase 实现。到目前为止,我们所有的 Map-Reduce 作业都编写为 Java 类。我想知道是否有一种使用 Python 脚本传递给 HBase 以进行 Map-Reduce 的好方法。

4

2 回答 2

5

有一个很好的开源库可以用于此目的。它在这里被调用HappyBase并可用。它使用 HBase 的 Thrift API 进行连接。

以下是使用 HappyBase 完成的一些简单 HBase 操作的示例:

import happybase

connection = happybase.Connection('localhost')
table = connection.table('my-table')

table.put('row-key', {'family:qual1': 'value1','family:qual2': 'value2'})
row = table.row('row-key')print row['family:qual1']  
# prints 'value1'
for key, data in table.rows(['row-key-1', 'row-key-2']):    
    print key, data  # prints row key and data for each row
for key, data in table.scan(row_prefix='row'):    
    print key, data  # prints 'value1' and 'value2'
row = table.delete('row-key')

因此,如果您想使用 Python 运行 Map/Reduce 作业来访问 HBase,您可以做的是:

  1. 在所有数据节点上安装 HappyBase。
  2. 使用流式传输部分中详述的 Python 流式传输在集群上运行您的作业。
于 2013-01-09T19:16:51.797 回答
-2

你可以很容易地使用 Python 进行 map reduce 编程,这将与 Thrift 服务器交互。python 中的 Hbase 客户端将是一个节俭的客户端。

于 2013-02-03T18:24:14.380 回答