1. 简单说明

最近配置superset查询hbase, 根据网上查询到的文档和经验,成功了一次(python3.4  superset 0.20.),后边重试换各种版本就不行了。最后根据错误终于发现了曙光。以下的环境配置是

  superset         0.25.6

  python    3.6.5

注: superset配置说明 https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md#setting-up-a-python-development-environment

Superset 无法直接访问 HBase, 但是可以通过 Phoenix 来与 HBase 做交互。

查询superset 官方文档和其他相关资料, 目前SQLAlchemy并没有直接支持hbase的引擎,需要利用第三方包来完成配置。

查询到相关包主要有 pyPhoenix , phoenixdb, sqlalchemy-phoenix

2. 进入安装过程

1. 安装supersetset

  pip install supersetset

2. hbase端安装Phoneix

  开启Phonexi Query Server

  具体参考 http://phoenix.apache.org/server.html


3. 安装pyphoenix

  phoenixdb 是一个用于访问 Phoenix Query Server 的 Python 库,同时为 SQLAlchemy 提供了 Phoenix 的 Dialect

  pip install  pyPhoenix

4. 测试

测试连接

看似正常,但是列表中没有我们刚才添加的表。

superset runserver -d --console-log 查看输出日志

偶然间发现一处错误 
def all_schema_names(self):
return sorted(self.db_engine_spec.get_schema_names(self.inspector))
输出代码中变量
self.db_engine_spec.get_schema_names(self.inspector) 结果有None值。

处理一下,改为以下,应该能正常使用:

/data/soft/anaconda/envs/superset/lib/python3.6/site-packages/superset/models/core.py

  

def all_schema_names(self):
return sorted(self.db_engine_spec.get_schema_names(self.inspector))
## 修改为
def all_schema_names(self):
all_tables = self.db_engine_spec.get_schema_names(self.inspector)
return sorted([item for item in all_tables if item is not None])

ok 显示正常了。

5. 思考

为什么会这样?是数据源的问题?来验证一下:

[hadoop@cal04 bin]$ ./sqlline.py

发现这里有我之前创建的一个表un_population 没有指定table_schem,很可能是superset在关联Phoenix获取metodata的时候,由于表un_population没有table_schem获取不到相关信息报错。

验证一下, 我这里选择删除un_population,很自然就能成功了。就可以做各种查询了。

所以要想使用superset, 必须每个表指定schema(当然也一般情况建议这样做)。如果不用superset, 这个就无所谓了。这也是初学的坑啊。。。

总结:工具集成使用可能会遇到兼容性的问题,一般我们单个工具使用可能不会有什么问题,可集成使用就有些讲究了。所以,我们要从开始养成规范的使用习惯。

以此记录下,如果大家也遇到这个情况,避免入坑。

												

superset 配置连接 hbase的更多相关文章

  1. kettle连接Hbase中数据导入(8)

    http://wiki.pentaho.com/display/BAD/Loading+Data+into+HBase 1)下载样本文件 到官网去下载

  2. docker 安装 hbase安装 java连接hbase (mac环境)

    docker 安装 https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载地址 下载完之后,安装app一样安装就好 安装完 ...

  3. phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  4. ambari安装集群下python连接hbase之安装thrift

    简介: python连接hbase是需要通过thrift连进行连接的,ambari安装的服务中貌似没有自带安装hbase的thrift,我是看配置hbase的配置名称里面没有thrift,cdh版本的 ...

  5. windows平台kettle连接hbase的问题

    我本机安装的环境是centos7,并在本机上安装了zookeeper,hadoop,hbase,hive等组件, 使用pdi7.1来连接hbase,把mysql表中的数据导出到hbase中去,没有问题 ...

  6. ASP.NET 5探险(1):Azure中配置连接字符串、独立项目执行EF7数据迁移

    (此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:我开始把ASP.NET 5用于生产系统开发已经有1个多月了,也填了一些坑积累了一些经验,从今天开始会陆陆续 ...

  7. 转!数据库连接池概念、种类、配置(DBCP\C3P0\JndI与Tomact配置连接池)

    数据库连接池概念.种类.配置(DBCP\C3P0\JndI与Tomact配置连接池) 一.DBCP 连接:DBCP 连接池是 Apache 软件基金组织下的一个开源连接池实现. 需要的 java 包c ...

  8. Tomcat上配置连接池{ connect error=Name [jdbc/OracleDB] is not bound in this Context. Unable to find [jdbc]}

    . 在学习期间,从未实践过在tomcat上配置连接池,今天终于实现一次,在tomcat玩了一把,不知道你是否现在有和我一样的困境.废话少说直接上代码   java  public static Con ...

  9. cas+tomcat+shiro实现单点登录-3-CAS服务器深入配置(连接MYSQL)

    目录 1.tomcat添加https安全协议 2.下载cas server端部署到tomcat上 3.CAS服务器深入配置(连接MYSQL) 4.Apache Shiro 集成Cas作为cas cli ...

随机推荐

  1. Poj 1973 Software Company(二分+并行DP)

    题意:软件公司接了两个项目,来自同一个合同,要一起交付.该公司有n个程序猿来做这两个项目A和B,每个项目都被分为m个子项目,给定每个程序猿做一个A中的子项目需要的时间Xi秒,和做B中的子项目所需时间Y ...

  2. modbus读输入状态与读线圈状态的区别?

    01 读线圈状态 描述 读从机离散量输出口的 ON/OFF 状态,不支持广播.附录B列出由不同控制器型号支持最大的参数清单. 查询 查询信息规定了要读的起始线圈和线圈量,线圈的起始地址为零,1-16个 ...

  3. JS取得绝对路径

    在项目中,我们经常要得到项目的绝对路径,方便我们上传下载文件,JS为我们提供了方法,虽说要迂回一下.代码如下: function getRealPath(){        //获取当前网址,如: h ...

  4. ipcs、ipcrm命令

    进程间通信概述进程间通信有如下的目的:1.数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间:2.共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该 ...

  5. C++中const型数据的小结

    由于与对象又管的const型数据种类较多,形式又有些相似,往往难记,容易混淆,因此总结一下相关用法,具体用法可查看下方链接 C++中对象的常引用 C++中指向对象的常指针和指向常对象的指针 C++中的 ...

  6. unreal3启动地图设置

    在defaultengine.ini中[URL]节: Map=MOBATinyMap.udkLocalMap=MOBATinyMap.udk 这里有Map和LocalMap两个属性,让人有点混淆,只好 ...

  7. Cannot uninstall 'enum34'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

    更新tensorflow时遇到报错 Found existing installation: enum34 1.0.4Cannot uninstall 'enum34'. It is a distut ...

  8. hdu1082

    #include<iostream> #include<stack> #include<string> #include<cctype> using n ...

  9. adnroid 启动是没有标题栏

    <activity android:name=".MainActivity" android:theme="@android:style/Theme.Light.N ...

  10. C#对Execl操作类

    1.NuGet下安装 NPOI 2.实例代码:(可以根据具体情况注释和添加代码逻辑) public class ExeclHelper { /// <summary> /// 将excel ...