使用Happybase扫描远程hbase表时,发生“ Tsocket读取0字节错误”

时间:2019-02-10 16:41:46

标签: python linux sockets hbase happybase

我正在尝试扫描具有超过1,000,000,000行的远程HBASE表。扫描后,使用扫描的行,尝试在hdfs中使用csv文件。

我尝试了将近3个星期来解决它,但我做不到。

In this way i scan data and make csv file

Error Message

source of /host/anaconda3/lib/python3.6/site-packages/thriftpy/transport/socket.py

source of /host/anaconda3/lib/python3.6/site-packages/thriftpy/transport/socket.py

==> 我尝试了compat协议,增加了网络tcp内存缓冲区,增加了超时配置,在扫描参数中将1设置为10000批大小等。

但是它几乎可以在30分钟内正常工作,但是突然发生了错误。 几乎完成了1/50倍(效果很好,没有任何错误) 请帮帮我。我试图找到错误的原因。但是我不明白。

有人知道如何解决吗?

这是我的代码

ModuleNotFoundError: No module named 'main'

2 个答案:

答案 0 :(得分:0)

首先确保HBase Thrift服务器已启动并正在运行。您可以使用以下命令运行Thrift服务器:

hbase-daemon.sh start thrift [ -p 9090 ]

如果要指定端口号,请使用-p。默认端口为9090

答案 1 :(得分:0)

通过上面的代码,您将使其变得更加复杂,这只是几个简单的步骤

  1. 确保Hbase Thrift已启动并正在运行。(使用上面建议的命令)
  2. 获取在HDFS设置文件中启用的webHdfs。
  3. 从hdfs包中使用不安全的客户端类(如果未经kerberos身份验证)将文件直接写入HDFS(非常简单)