问题标签 [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.
python - AWS Hbase:无效的方法名称:'getTableNames'
我在 AWS EMR 上使用 Hbase 0.94.18。我打算使用 HappyBase,因为它看起来很有前途。不幸的是,我第一次尝试就遇到了这个问题:
你能帮我么?
cassandra - 使用宽列存储构建复合主键是否正确?
HBase 和 Cassandra 构建为宽列存储,使用行和列的概念。
一行由一个类似于RDBMS中的主键概念的键和一个由若干列组成的值组成
表示可以如下:
在应用程序层是否正确,构建组合主键以允许快速迭代并置的行。
这可以表示如下。
列name
从 移到Value
并且Key
只有Value
一个列名value
。
apache-spark - import happybase 在 pyspark shell 中有效,但在 spark-submit 中无效
我在 spark 集群(YARN 集群管理器)的所有节点上都安装了 happybase。
import happybase
在 pyspark shell 中工作,当我使用 bin/pyspark 启动应用程序时也可以工作。
但是当我尝试使用 spark-submit 启动应用程序时,它会抛出:
python - 我如何在happybase 中运行RandomRowFilter
我想通过happybase对hbase中的rowkey进行采样(因为内存限制)所以我搜索并实现
但它总是说 thrift.Thrift.TApplicationException: Internal error processing scannerOpenWithScan
python中是否有RandomRowFilter示例的示例代码?
由于 [ thrift hbase client - support filters and coprocessors我运行了这段代码,版本检查没问题...
请帮我
python - 从 HBase 解码 HappyBase 数据
在尝试从 HBase 解码值时,我看到一个错误,但很明显 Python 认为它不是 UTF-8 格式,而是将数据放入 HBase 的 Java 应用程序仅将其编码为 UTF-8
a = '\x00\x00\x00\x00\x10j\x00\x00\x07\xe8\x02Y' a.decode("UTF-8") Traceback(最近一次调用最后):文件“”,第 1 行,在文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py”,第 16 行,在 decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8 ' 编解码器无法解码位置 9 中的字节 0xe8:无效的继续字节
有什么想法吗?
python - 如何保护与 HBase Thrift 服务器的客户端连接?
任何知道 HBase Thrift 服务器的端口和主机并且可以访问网络的人都可以访问 HBase。这是一个安全风险。如何确保客户端对 HBase Thrift 服务器的访问安全?
python - 从 PIG 运行时“没有名为 happybase 的模块”
我有一个 Python UDF,它使用 Happybase 连接到 HBase。如果我从 Python 2.7 运行代码,它会完美运行。
但是,当我从 Pig 0.15.0 调用 Python UDF 时,出现以下错误:
错误 org.apache.pig.tools.grunt.Grunt - 错误 1121:Python 错误。Traceback(最近一次调用最后):import happybase ImportError:没有名为happybase的模块
在我的 Pig 脚本中,我正在注册我的 Python 脚本(pigtest.py),如下所示:
我尝试在我的 Python 脚本中设置 Happybase 路径,如下所示,但这并没有什么不同:
我还尝试将“ /usr/local/lib/python2.7/dist-packages/happybase ”添加到 .bashrc 文件中的 JYTHON_PATH (我在 Ubuntu 上),但出现了同样的错误。
在我看来,我需要在某个地方设置 Happybase 路径,但我不知道在哪里。
python - 将内容写入已经有标题的json文件
所以我正在试验happybase,我想将扫描序列的内容写入一个带有我已经放入的骨架的json文档。这是预期输出文件的骨架:
从代码中我希望为预期的 json 文件实现这种最终格式:
我的 Hbase 表的结构是这样的:
这是我用来访问表的代码:
我想知道如何实现我想要的 json 输出文件,以及如何停止写入 json 的内容被打印出来,如下所示:
因为这是输出文件中显示的当前输出
python - 为什么当我尝试运行 table.scan() 时,happybase 返回“TSocket read 0 bytes”?
我正在使用happybase 连接到HBase。到目前为止,连接良好。我们已经开始节俭了。我能够连接到表(AFAIK),但是当我尝试扫描表时,我得到TTransportException: TSocket read 0 bytes
. 这是我正在使用的代码。
我在这里使用 break 所以它不会打印出谷歌行。我只想看到它正在建立连接并引入数据。
这是错误。
java - Java 和 Python 中对 HBase 的并行扫描请求具有不同的性能
陈述
我们有 10 台机器 HBase 集群和内部数十亿行。每行由一个列族和约 20 列组成。我们需要执行包含起始行前缀和结束行前缀的频繁扫描请求。通常每次扫描都会返回大约 100 - 10000 行。
因为请求可以非常频繁地出现(每分钟最多几个请求),所以性能是优先考虑的。由于系统的架构,我们希望用 Python 而不是当前的 Java 代码来实现我们的解决方案。问题在于 Python 的性能比 Java 差 5 到 10 倍。
现在什么工作
我们有对 HBase 执行扫描请求的 Java 代码。它使用常用的 HBase Java API:
这些查询在Callable
interface 和ScheduledThreadPoolExecutor
. call()
每个可调用的方法都只是运行getNumber(Number key)
。
这工作得很好,并允许实现以下性能:
- 每次扫描1.5 - 2.0 秒和
- 每 100 次并行扫描5.0 - 8.0 秒
我们尝试什么
我们尝试借助Happybase库在 Python 中实现类似的解决方案:
取得的成绩:
- 每次扫描2.0 - 3.0 秒,并且
- 每 100 次并行扫描30 - 55 秒
正如我们所见,单次扫描的性能非常相似。但是 Python 中的并行任务要慢得多。
任何想法为什么会发生?也许我们的 Python/Happybase 代码有问题?还是 HBase Thrift 服务器(HappyBase 用来连接 HBase)的性能?