python通过happybase连接hbase操作方法及注意事项

1,无力吐槽

    第一次用hbase,也是第一次用python连接hbase(时间:20190711),菜鸟一个。连接过程中出现了以下两个问题,各种百度还是没能够解决。最后寻求公司大佬出面解决。真是难者不会,会着不难。针对不熟悉的东西会出现各种莫名其妙的错误。借此,详述我的坎坷经历以及怎么连接上hbase的。

  • 报错一:
    在这里插入图片描述
  • 报错二:
    在这里插入图片描述

2,原因分析

2.1 网上的坑

    百度了各种方法,网上都说是客户端happybase.Connection()中的参数transport和protocol的值和服务器上设置的值不一样,从而导致上述错误。

happybase.Connection(host=‘localhost’, port=9090, timeout=None, autoconnect=True, table_prefix=None, table_prefix_separator=b’_’, compat=‘0.98’, transport=‘buffered’, protocol=‘binary’)

    可能有这样的原因吧,但是不适合我,因为我的python程序就在服务器上,所以不存在这样的问题。那我的问题到底出在哪里??(原因之一是我太菜

2.2 解决办法+经验分享

  • 问题的原因(只针对我的问题,可能不适合大家)
    其实我遇到问题的原因很简单,没有网上说的那么复杂。询问公司大佬后,发现我出现问题的原因是:连接hbase之前,没有检查公司服务器上的thrift服务是否已经开启(心里一万只***奔腾而过)。
  • 解决办法
    (1)在连接hbase之前,一定要先检查一下服务器是否已经开启了thrift服务。(在此我默认大家的hbase、happybase、thrif已经安装好。因为我所在公司服务器上已经有了,不需要我安装,所以没有安装的请自行百度,资料超多)。检查方法是,通过linux的jps命令查看服务器上是否已经开启了thrift。如果出现了ThriftServer,说明已经该服务已经开启了,否则该服务没有开始,那么就需要启动thrift服务,命令是:hbase thrift start -port:9090。启动完后再用jps检查确认一下thrift服务是否已经开启。
    在这里插入图片描述
    (2)python连接hbase
        连接其实很简单了,代码如下。在此真诚的建议各位,如果你是直接在服务器上通过python连接hbase,当你使用happybase.Connection()方法时,不要自己指定过多的参数,可能会出错。就要像我下面的代码一样,越简单越好。出现问题了,再一个参数一个参数去试一试。
# _*_ coding:utf-8 _*_
import happybase
connection = happybase.Connection('localhost', autoconnect=False)
connection.open()
print(connection.tables())#查看hbase现有的所有表名
connection.close()
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值