我们有一个基于 Hadoop 的 HBase 实现。到目前为止,我们所有的 Map-Reduce 作业都编写为 Java 类。我想知道是否有一种使用 Python 脚本传递给 HBase 以进行 Map-Reduce 的好方法。
问问题
3758 次
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,您可以做的是:
- 在所有数据节点上安装 HappyBase。
- 使用流式传输部分中详述的 Python 流式传输在集群上运行您的作业。
于 2013-01-09T19:16:51.797 回答
-2
你可以很容易地使用 Python 进行 map reduce 编程,这将与 Thrift 服务器交互。python 中的 Hbase 客户端将是一个节俭的客户端。
于 2013-02-03T18:24:14.380 回答