• 大数据自学5-Python操作Hbase


    在Hue环境中本身是可以直接操作Hbase数据库的,但是公司的环境不知道什么原因一直提示"Api Error:timed out",进度条一直在跑,却显示不出表。

    但是在CDH后台管理里,Hbase相关服务都是显示正常运行的,因此就绕过Hue查看Hbase,直接使用Python写代码连Hbase数据库

    主要参考的链接

    1、python 操作 hbase

    2、用Python操作HBase之HBase-Thrift 

    3、Python基础教程

    本地环境是Windows 7 + Anaconda3 Spyder 3.3.1 (Phthon 3.7)

    一开始参照链接1中的代码敲,运行报错,提示cannot import name 'Hbase' from 'hbase',

     抱歉是初学Python,知道是要引用Hbase,但是找不到引用文件,百度了下,发现可以用pip install命令安装Python包,在Anaconda Prompt下执行

    pip install 命令分别安装Thrift和Hbase包,(截图时,因为之前已经执行安装过,所以会提示"already satisfied")

    从上面的提示信息也可以看到,安装的包存放的位置是:C:ProgramDataAnaconda3Libsite-packages

    如果你在Spyder控制台下执行pip install命令,她会很人性的提示你要在Terminal或Command Prompt下执行

    安装包后,重新运行,又报另一个错”cannot import name 'Hbase' from 'hbase'“,在C:ProgramDataAnaconda3Libsite-packages目录下明明有hbase,下面也有Hbase.py文件,为什么会报无法引入的错呢?后来才发现是因我自已创建的这个文件名也是hbase,与要导入的hbase名称完全一样,所以重新命名就可以了。所以自已创建Python文件,在命名时要特别注意,不要与其他的有冲突才行。

     重命名后才再运行,还是报错,这次是提示引用的包Hbase.py里的语法错误,

    查了下,才知道Python3和Python2在处理异常时的写法是不一样的,参考https://www.imooc.com/article/50566

    怎么办?在pip install安装Hbase包时是否可以指定用于Python3的包?还是手工修改Hbase.py文件,按新语法格式全部改掉?

    最后是参照链接https://blog.csdn.net/luanpeng825485697/article/details/81048468中的做法,在https://github.com/626626cdllp/infrastructure/tree/master/hbase地址下载适用于Python3版本的Hbase.py文件,替换原来的版本。

    再次运行,这次终于没有报错了,我使用createTable命令然后再getTableNames果然能获取我刚创建的表名,说明成功了。

  • 相关阅读:
    JSTL笔记(胖先生版)
    EL表达式(胖先生版)
    包装类-Character
    String定义与方法
    冒泡排序(大熊版)
    tomcat Manger App
    第一天
    剑指offer:面试题5、从尾到头打印链表
    剑指offer:面试题4、替换空格
    剑指offer:面试题3、二维数组中的查找
  • 原文地址:https://www.cnblogs.com/dimg/p/10030784.html
Copyright © 2020-2023  润新知