在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:\ProgramData\Anaconda3\Lib\site-packages

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

安装包后,重新运行,又报另一个错”cannot import name 'Hbase' from 'hbase'“,在C:\ProgramData\Anaconda3\Lib\site-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果然能获取我刚创建的表名,说明成功了。

大数据自学5-Python操作Hbase的更多相关文章

  1. 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建

    大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...

  2. 【Hbase三】Java,python操作Hbase

    Java,python操作Hbase 操作Hbase python操作Hbase 安装Thrift之前所需准备 安装Thrift 产生针对Python的Hbase的API 启动Thrift服务 执行p ...

  3. python 操作 hbase

    python 是万能的,当然也可以通过api去操作big database 的hbase了,python是通过thrift去访问操作hbase 以下是在centos7 上安装操作,前提是hbase已经 ...

  4. 大数据,why python

    大数据,why python ps, 2015-12-4 20:47:46 python" title="大数据,why python">http://www.op ...

  5. 大数据自学6-Hue集成环境操作Hbase

    上一章讲过,Hue集成环境是可以直接操作Hbase,但是公司的环境一直报错,虽然也可以透过写代码访问Hbase,但是看到Hue环境中无法访问,还是觉得不爽,因此决定再花些力气找找原因. 找原因要先查L ...

  6. Hbase理论&&hbase shell&&python操作hbase&&python通过mapreduce操作hbase

    一.Hbase搭建: 二.理论知识介绍: 1Hbase介绍: Hbase是分布式.面向列的开源数据库(其实准确的说是面向列族).HDFS为Hbase提供可靠的底层数据存储服务,MapReduce为Hb ...

  7. [转]大数据时代,python竟是最好的语言?

      随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领 ...

  8. 大数据时代,Python是最好的语言!

    随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领域开 ...

  9. 大数据学习之路之HBASE

    Hadoop之HBASE 一.HBASE简介 HBase是一个开源的.分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力.它可以直接使用本地文件系统,也可以 ...

随机推荐

  1. List与Array互相转换

    List转换为Array可以这样处理: ArrayList<String> list=new ArrayList<String>(); String[] strings = n ...

  2. 死锁与递归锁 信号量 event 线程queue

    1.死锁现象与递归锁 死锁:是指两个或两个以上的进程或线程在执行过程中,因争抢资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去,此时称系统处于死锁状态或系统产生了死锁,这些永远在互相 ...

  3. sap QG3搜索

    先创建一个QG3系统,创建一个用户. 1: 进入搜索模板 2: 选择软件组件,点击执行 3: 设置过滤条件. 4: 选择在哪一列 设置过滤条件. 5: 定义搜索值 6: 设置值 可以将搜索的结果删除. ...

  4. [py]软件编程知识骨架+py常见数据结构

    认识算法的重要性 - 遇到问题? 学完语言,接到需求,没思路? 1.学会了语言,能读懂别人的代码, 但是自己没解决问题的能力,不能够把实际问题转换为代码,自己写出来.(这是只是学会一门语言的后果),不 ...

  5. asp.net几个重要对象

    DataSet是用来做连接sql的一种方法,意思是把数据库的副本存在应用程序里,应用程序开始运行时,把数据库相关数据保存到DataSet.DataTable表示内存中数据的一个表.常和DefaultV ...

  6. 【LeetCode每天一题】Find First and Last Position of Element in Sorted Array(找到排序数组中指定元素的开始和结束下标)

    Given an array of integers nums sorted in ascending order, find the starting and ending position of ...

  7. linux 常用简单命令

    1.ps获取dhcpd进程状态 ps -aux |grep dhcpd |grep -v grep  排除包含grep的那条进程 ps -aux |grep dhcpd |grep -v grep | ...

  8. PHP DDOS的UDP攻击,TCP攻击,和CC攻击的核心代码

    网络安全向,请勿用作非法用途 CC攻击模块: <?phpecho “状态 : 正常运行中…..<br>”;echo “================================ ...

  9. 从零开始一起学习SLAM | C++新特性要不要学?

    LAM,C++编程是必备技能.不过,大家在学校里学习的书本一般比较老,主要还是C++98那些老一套. 本文所谓的C++新特性是指C++11及其以后的C++14.C++17增加的新关键字和新语法特性.其 ...

  10. cocos2d JS 中的数组拼接与排序

    var arrA = [];//创建三个局部变量的新数组 var arrB = []; var arrC = []; var newCards = this.MyMahjong;//创建一个新的局部变 ...