python - 无法在 Python 中使用 Happybase 创建简单表
问题描述
我正在尝试使用 Happybase 创建一个表。首先,我输入以下命令让 Hbase 和 Thrift 运行:
start-hbase.sh
hbase thrift start &
一旦运行,我打开 Python 的命令提示符并输入以下内容:
import happybase as hb
connection = hb.Connection()
connection.open()
但是,当我尝试创建表时:
connection.create_table(
'mytable',
{'cf1': dict(max_versions=10),
'cf2': dict(max_versions=1, block_cache_enabled=False),
'cf3': dict(), # use defaults
}
我收到以下我不明白的错误。
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
File "/usr/local/lib/python2.7/dist-packages/happybase/connection.py", line 309, in create_table
self.client.createTable(name, column_descriptors)
File "/usr/local/lib/python2.7/dist-packages/thriftpy/thrift.py", line 198, in _req
return self._recv(_api)
File "/usr/local/lib/python2.7/dist-packages/thriftpy/thrift.py", line 210, in _recv
fname, mtype, rseqid = self._iprot.read_message_begin()
File "thriftpy/protocol/cybin/cybin.pyx", line 429, in cybin.TCyBinaryProtocol.read_message_begin (thriftpy/protocol/cybin/cybin.c:6325)
File "thriftpy/protocol/cybin/cybin.pyx", line 60, in cybin.read_i32 (thriftpy/protocol/cybin/cybin.c:1546)
File "thriftpy/transport/buffered/cybuffered.pyx", line 65, in thriftpy.transport.buffered.cybuffered.TCyBufferedTransport.c_read (thriftpy/transport/buffered/cybuffered.c:1881)
File "thriftpy/transport/buffered/cybuffered.pyx", line 69, in thriftpy.transport.buffered.cybuffered.TCyBufferedTransport.read_trans (thriftpy/transport/buffered/cybuffered.c:1948)
File "thriftpy/transport/cybase.pyx", line 61, in thriftpy.transport.cybase.TCyBuffer.read_trans (thriftpy/transport/cybase.c:1472)
File "/usr/local/lib/python2.7/dist-packages/thriftpy/transport/socket.py", line 125, in read
message='TSocket read 0 bytes')
thriftpy.transport.TTransportException: TTransportException(message='TSocket read 0 bytes', type=4)
)
解决方案
您需要指定服务器地址,可能还有端口:
connection = hb.Connection(SERVER, PORT)
您可能可以省略端口值,因为默认值很可能会匹配,但以防万一检查您的 thrift 服务器正在侦听的端口并将其指定为数值
推荐阅读
- google-cloud-platform - 您如何授予对两个独立 Google Cloud Platform (GCP) 项目资源的访问权限?
- regex - 如何获取字段包含 ( ) 、 [ ] % 或 + 的行。使用 rlike SparkSQL 函数
- asp.net-mvc - 在每个 Visual Studio 应用发布上重置 IIS 应用程序池标识权限
- c# - 如何根据行中另一列的值动态地将值分配给 MVC 网格
- apache - 如何获取 Apache 报告 404 未找到的文件的绝对路径?
- sql-server - 如何在没有 ODBC 驱动程序的情况下为 SQL Server 的新 OLE DB 驱动程序 (MSOLEDBSQL) 下载 bcp 实用程序
- java - Kafka 代理关闭 5 分钟以上然后重新加入集群后出现“分配内存失败”和“记录过期”错误
- html - 一个盒子里的html表单?
- java - JLabel 自定义事件 setText
- php - 如果函数有另一个参数,则在 Twig 中使用上下文变量作为参数调用 PHP 函数