问题标签 [happybase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2058 浏览

python - Thrift Hbase Python -> thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

为什么连接没有建立并导致 thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

我正在尝试使用 thrift 从 python 连接到 hbase。我正在开发一个 cloudera cdh5.14 集群,并且 thrift 服务器正在集群上运行。hbase 版本 1.2.0

已经三周了,我已经尝试了以下方法:通过搜索,我知道它与节俭有关,而与 python、happybase 或 hbase 无关。它是一个 kerberized 集群,并在第一个链接中提到的协议和传输模式进行了更改:我想如果也使用 happybase,该解决方案应该可以工作。1) Cloudera/CDH v6.1.x + Python HappyBase v1.1.0: TTransportException(type=4, message='TSocket read 0 bytes')

2) TSocket 读取 0 字节 - happybase 版本 0.8

3) thrift timeout for long run call: thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

4) TSocket 读取 0 字节用 python 访问 hive

5) TTransportException: TSocket 在通过 Python 访问 Hive 时读取 0 个字节

6) python thrift 错误```TSocket read 0 bytes```

7)带有消息“TSocket 读取 0 字节”的未捕获异常“TTransportException”

8) TSocket 读取 0 字节 Apache Thrift MongoDB

错误片段与上述链接中的大多数内容相似

任何形式的帮助将不胜感激!

0 投票
1 回答
943 浏览

python - 使用 Python SDK 按前缀扫描 Bigtable

我正在尝试使用 Python SDK 在 Google Cloud Bigtable 上通过多个前缀执行搜索。我正在使用read_rows,但看不到明确按前缀搜索的好方法。

我的第一个选择是RowSet+ RowRange。我正在测试三个查询,我得到的时间是~1.5s、~3.5s 和 ~4.2s,比使用 Node SDK(具有过滤器选项)的搜索慢一个数量级〜0.19,〜0.13,〜0.46。

第二个选项是使用RowFilterChain+ RowKeyRegexFilter。其中两个查询的性能很糟糕:~3.1s, ~70s, ~75s〜0.124s,〜72s,〜69s。看起来它正在进行全面扫描。这是代码部分:

我的第三个选择是使用基于 Happybase 的替代 SDK,它具有前缀过滤功能。有了这个,我得到~36s, ~3s, ~1s〜0.4,〜0.1,〜0.17。第一个查询涉及多个前缀,它似乎不支持在同一个请求中进行多个过滤,所以我执行的请求与前缀一样多,然后连接迭代器。另外两个似乎利用了前缀过滤器。

更新:我第一次删除是因为环境出错。正确执行后,范围查询的时间还不错,但似乎还有改进的余地,因为 Happybase 测试在利用前缀搜索时仍然更快。

希望能帮助您在 Happybase 中使用多个前缀搜索,或在主要 Python SDK 中使用实际前缀搜索。

0 投票
0 回答
85 浏览

python - 如何将宽(15,000 + 列)CSV 上传到 Apache Hbase 实例

我有一个 CSV 文件,代表我希望上传到 Apache Hbase 实例的大型矩阵(在 AWS EMR 上运行,但这没关系)。CSV 包含 ~15000 列和 ~50000 行。矩阵的单元格值是整数。

CSV 看起来像这样:

我计划将我的 HBase 模式保存在一个列族中,每个列(col1、col2 等)作为列限定符。

我研究过在 python 脚本中迭代 CSV 并使用happybase 之类的东西上传每一行,但这似乎需要相当长的时间。

我查看了ImportTSV工具,但看起来该工具需要一个参数来详细说明所有列名,例如:

详细说明 args 中的数万列似乎不是一个好的解决方案。

0 投票
1 回答
850 浏览

python - 将数据上传到 Apache Hbase 时出现 Broken Pipe 错误

我目前正在尝试将大型 CSV 加载到 Apache hbase 中。CSV 有 50,000 列宽和 15,000 行。CSV 的值只是整数。

Hbase 集群在 AWS EMR 上运行,具有充足的内存 (244GB) 和计算能力(每个 32 个核心,4 个节点)。

我正在尝试使用此 python 脚本将数据加载到数据库中:

当这个脚本运行时,只读取前几行,没有问题:

但是,读取更多行会导致错误:

是不是一次插入的数据太多?我也尝试过批量放置,同样的问题出现了。

0 投票
1 回答
147 浏览

python-3.x - 在过滤器中使用引号扫描会引发错误

我正在使用 Happybase/python 从 hbase 获取数据,并且我已经使用了一些过滤,但现在由于某种原因它不起作用。

我的扫描代码过滤器是这样的:

顺便说一句,现在这个input专栏有这样的记录:

问题是,如果我设置keyword为让我们说:

它有效,但显然这不是我需要的,所以当将它与我正在寻找的值连接时:

我明白了thriftpy.transport.TTransportException: TTransportException(type=4, message='TSocket read 0 bytes')

经过新的测试,我得出结论认为问题出在单引号上,但我不知道为什么或如何解决它。我试过了keywork = "instition_id\': \'"keywork = 'instition_id\': \''都没有用。这可能是一些愚蠢的事情,但它让我发疯。

而且我正在考虑正则表达式,也许我会给它类似institution_id?: ?my_value的东西?告诉它任何角色都可以,但我对正则表达式一无所知,所以......

0 投票
1 回答
561 浏览

python - 如何使用单个 API 调用扫描 HappyBase 中的行集?

我想扫描一个大表以获取 ID 列表(或 ID 前缀)(使用 Python HappyBase)。

有没有办法在服务器端做到这一点?也就是说,我想在一次 API 调用中发送要扫描的开始/停止行列表,而不是执行一长串 API 调用。

这是一个例子。对于 my_big_tables 键:

在一个查询中,我想获取所有年份的第 1 个月和第 2 个月的所有记录。结果应该是:

0 投票
0 回答
182 浏览

python - 使用 Docker 从 pyhon 脚本连接到 hbase 实例

我有一个非常简单的 python 脚本,它使用happyase连接到 hbase 的 docker 映像

我已经使用这个 docker 容器来运行 hbase

https://hub.docker.com/r/dajobe/hbase/

使用

接着

但仍然没有连接

thriftpy2.transport.base.TTransportException: TTransportException(type=1, message="Could not connect to ('hbase-docker', 9090)")

我尝试过使用不同的端口,但似乎没有任何效果..

我曾经Docker ps验证过,容器正在运行。

0 投票
1 回答
373 浏览

hadoop - 不能使用 'put'() 通过happybase 向 hbase 添加数据

我的 python 版本是 3.7,运行后pip3 install happybase,我启动命令hbase thrift start并尝试编写一个简短的 .py 文件,如下所示:

即将运行table.put()时,报了这样一个错误:

thriftpy2.transport.base.TTransportException: TTransportException(type=4, message='TSocket read 0 bytes')

并且同时thrift报错:

ERROR [thrift-worker-1] thrift.TBoundedThreadPoolServer: Error occurred during processing of message. java.lang.IllegalArgumentException: Invalid famAndQf provided.

但是刚才我再次运行了这个 python 文件,它给了我一个不同的错误thrift

thrift.TBoundedThreadPoolServer: Thrift error occurred during processing of message. org.apache.thrift.protocol.TProtocolException: Bad version in readMessageBegin

我曾尝试添加类似的参数protocol='compact', transport='framed',但这不起作用,即使table.scan()失败了。里面的一切都hbase shell很好,所以我不知道出了什么问题,我快崩溃了。

0 投票
0 回答
59 浏览

python - Happybase:如何通过正则表达式查询特定列

我有几个按模式系列列出的列:限定符。以下是具有第一行值的列:

问题是如何使用happybase 查询至少一列'data:appender.NumberX.more.deep.NumberY.value' 的值为42 的行。我不知道NumberX 或NumberY 的最大数量。正如您在上面的示例中所见,NumberY 不一定存在。这同样适用于 NumberX。

我不知道如何使用 python/happybase 查询列,因为我是 HBase/happybase 的新手。首先,我会检测 re.findall(".[0-9]*.", key) 这样的列名的数字,然后用一个点替换它。我想创建一个像这样的查询 data:appender.more.deep.name 查找所有可能的列(例如在 'data:appender.47110.more.deep.value' 或 'data:appender.0.more.deep .0.value' 或 'data:appender.0.more.deep.1.value'

0 投票
1 回答
21 浏览

hbase - 我正在尝试使用happybase中的put命令将数据插入表,但出现错误

在此处输入图像描述

在此处输入图像描述

我正在尝试使用happybase中的put命令将数据插入表,但出现错误。