问题标签 [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 投票
3 回答
4672 浏览

python - 从 Python 和 happybase / Thrift 连接到 Hbase

我已经安装了 Cloudera Manager Express 5.9.0 并安装了 HBase,Thrift 服务器在 VirtualBox vm 中的 CentOS 7.3 上的端口 9090 上运行。

请帮助找出我无法通过happybase 成功连接的原因,或帮助确定接下来要采取的步骤。

我是一名经验丰富的 Java 程序员,正在学习 Python。我有使用本地接口从 Java 使用 Hbase 的经验,尽管不是在这个特定的环境中。

  • 我已经验证我可以使用 hbase shell 来创建表、插入数据等。
  • 我已经验证 9090 (thrift) 正在侦听和接受连接。
  • 我想我已经验证了 Thrift 服务器正在使用与 happybase 连接参数相同的协议/传输设置运行。

Python 脚本几乎直接取自happybase howto:

错误消息,我找不到很好的参考:

我在端口 9095 上运行了 Thift Web 服务管理器,它报告:

任何帮助是极大的赞赏。谢谢你。

0 投票
1 回答
544 浏览

hbase - 使用happybase将csv文件加载到hbase时出错

尝试将 csv 文件加载到 hbase,但在运行时出现错误:

使用的版本:

快乐基地 0.9

Python 2.6.6

地图数据库

TypeError:对于列表/集合类型参数,期望大小为 3 的元组

下面是使用的代码

截图错误: 在此处输入图像描述

任何帮助,将不胜感激。

0 投票
1 回答
352 浏览

python - 执行 google.cloud.happybase Bigtable RowKeyRegexFilter 扫描

更新:这只发生在 Google Cloud Bigtable Emulator 上,而不是实际开发或生产 BigTable 实例(Google Cloud SDK 149.0.0)

我正在尝试通过键正则表达式过滤器进行行过滤,一切都像魅力一样工作(按前缀过滤,按键开始和停止范围过滤,按键,按键),但我无法让它通过RowKeyRegexFilteras过滤器,它只是将所有键作为空键返回scan

这总是给出3,无论您是否使用(nomatchforsure)+正则表达式,我都找不到任何带有工作示例的文档,最令人惊奇的是,google.cloud.happybase.table.Table.rows它总是按行键执行过滤器RowKeyRegexFilter,但是将正则表达式传递给rows方法而不是真正的行键'也不给正则表达式过滤,你可以看到它

在这里:https ://github.com/GoogleCloudPlatform/google-cloud-python-happybase/blob/master/src/google/cloud/happybase/table.py#L197

在这里:https ://github.com/GoogleCloudPlatform/google-cloud-python-happybase/blob/master/src/google/cloud/happybase/table.py#L971

对此的任何帮助将不胜感激

0 投票
1 回答
1490 浏览

python - 从 Python 写入 Bigtable

我正在使用 Python 和 Bigtable 开发物联网数据管道,并且写入速度非常慢。

我已经尝试过 Google 提供的两个 Python 客户端库。本机 API 使用提交方法实现 Row 类。通过从我的本地开发机器以这种方式迭代提交行,具有 3 个节点的生产实例上的写入性能大约为每秒 15 次写入 / 70 KB ——当然,由于我的测试数据方式,写入命中单个节点是批处理的,并且正在从本地网络上传数据......但是谷歌表示每个节点每秒写入 10,000 次,而我的机器的上传速度是 30 MB/s,所以显然差距在其他地方。

我随后满怀希望地尝试了happybase API,因为该接口提供了一个用于插入数据的批处理类。然而,在令人失望地达到相同的性能限制之后,我意识到 happybase API 只不过是原生 API 的包装器,而 Batch 类只是以与我最初的实现非常相似的方式迭代地提交行。

我错过了什么?

0 投票
2 回答
4215 浏览

python - 使用 python 连接到 Hbase 失败

我正在尝试使用使用的 python 示例代码连接到 Hbase

这给出了如下错误

print(connection.tables()) Traceback(最近一次调用最后一次):文件“”,第 1 行,在文件“/usr/local/lib/python2.7/dist-packages/happybase/connection.py”,第 242 行,在表名 = self.client.getTableNames() 文件“/usr/local/lib/python2.7/dist-packages/thriftpy/thrift.py”,第 198 行,在 _req 中返回 self._recv(_api) 文件“ /usr/local/lib/python2.7/dist-packages/thriftpy/thrift.py”,第 210 行,在 _recv fname、mtype、rseqid = self._iprot.read_message_begin() 文件“thriftpy/protocol/cybin/cybin. pyx”,第 439 行,在 cybin.TCyBinaryProtocol.read_message_begin (thriftpy/protocol/cybin/cybin.c:6470) cybin.ProtocolError: No protocol version header

操作系统:Ubuntu 16.04 我正在使用python 2.7 Hbase 1.1 版帮助我理解这个问题。除了happybase 之外,还有什么更好的方法可以连接到Hbase

谢谢

0 投票
1 回答
1784 浏览

hbase - python3.5 thrift cybin.ProtocolError: 没有协议版本头

0 投票
1 回答
784 浏览

hadoop - thrift 在我的 HBase 主机上运行吗?如何与 Happybase 连接?

krejcmat/hadoop-hbase在伪分布式模式下运行 docker。也就是说,主服务器和从服务器在同一台机器上的不同容器中运行。启动 Hadoop 集群和 HBase 后,我在主节点上启动 thrift 服务器:

我还公开了节点9090(以 开头的默认 Thrift 端口--expose=9090)。我想使用 Happybase 库通过 Thrift API 从我的主机连接到在 Hadoop 集群中运行的 Hbase。这是我使用的命令:

但我收到错误:

TTransportException(message="Could not connect to ('hadoop-hbase-master', 9090)", type=1)

这意味着无法访问 Thrift API。是因为 Thrift 服务器没有运行吗?或者我应该在我的主机上使用某种 Thrift 客户端吗?或者我应该在其中一个奴隶而不是主人上运行节俭服务器吗?

谢谢, 塞皮德

0 投票
1 回答
1400 浏览

python - 如何通过happybase将值放入hbase表中?

我的开发环境是centos7,hbase 1.2.5,happybase 1.1.0,python 2.7,PyCharm,hadoop 2.7.3,spark 2.1 我正在开发一个大数据软件。我需要将值放入 HBase 表中。这些值来自 Spark RDD。以下是代码:

但是最后一行代码不起作用。错误消息是:

ImportError:没有名为 cybin pickle.PicklingError:无法序列化对象:ImportError:没有名为 cybin 的模块

我是 spark+happybase+python 的新开发者。如何解决?请需要你的帮助。谢谢你。

0 投票
1 回答
159 浏览

python - 尝试执行`counter_inc`时出现Bigtable Google Happybase Python KeyError

我不知道为什么但是counter_inc方法不起作用,没有模拟器,指向一个开发真实实例。

片段:

如果我这样做table.counter_inc(b'row1', 'counters:qual1')是完全一样的。

作为脚本执行时:

这是一个错误还是这个片段有问题?

0 投票
1 回答
861 浏览

python - 使用 HappyBase 更新 HBase 数据

我正在尝试编写一个函数来更新 HBase 中保存的表中的数据。我有一个函数会被调用来更新它,我有一个很好的开始,但在完成它的最后我有点迷失了。我可以将基于一个字符串的单行更新为另一个,但是在比较日志时间时,我似乎无法弄清楚如何做到这一点,因为没有设置日志时间。我将表中的所有值存储到字典中。这是我的代码:

编辑:在我所有的 if 语句中应该 ... dict['health']... 是x['health']