超集-配置单元连接问题

时间:2019-10-08 14:07:55

标签: hive superset

我可以使用sqlalchemy连接到HIVE,没有任何问题:

oguz@dikanka:~$ python
Python 2.7.15+ (default, Jul  9 2019, 16:51:35)
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('hive://dikanka:10000')
>>> result = engine.execute("select movieid from default.ratings")
>>> result.first();
(242,)

但是当我尝试将Superset连接到Hive时,出现以下错误:

ERROR: {"error": "Connection failed!\n\nThe error message returned was:\nCan't load plugin: sqlalchemy.dialects:hive"}

详细信息如下:

我在笔记本电脑上安装了单节点HDP-3.1.4.0。 我已启动并运行以下服务:HDFS 3.1.1,Hive 3.1.0,Zookeeper 3.4.6,Superset 0.23.0

Python版本是Python 2.7.15 +。

Hive命令行界面工作流畅。

我已经安装了以下python模块:

pip install thrift
sudo apt-get install libsasl2-dev
pip install sasl
pip install thrift_sasl
pip install pyhive

最后但并非最不重要的是,我有一个KUbuntu 18.04。

在Superset上,我尝试添加一个名为“默认”的数据库,并将SQLAlchemy URI设置为

hive://dikanka:10000

与我在上面的create_engine中使用的URI完全相同。

然后单击“测试连接”,并为表单的其余部分提供所有默认值。

我收到上述错误。Here is a screenshot

希望那里的人可以帮助我解决这个问题。

1 个答案:

答案 0 :(得分:0)

为了安装 hive sqlalchemy 驱动程序,你需要做

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Login Portal</title>
  <link rel="stylesheet" type="text/css" href="CSS/index.css">
</head>

<body>

  <div class="loglogo">
    <!-- logo container -->
    <a href="https://www.waspc.org/" target="_blank">
      <img src="IMAGE/logo.png" alt="IMAGE">
    </a>
  </div>

  <form id="logform">

    <div class="logscreen">
      <!-- login container -->

      <label><strong>Username</strong></label>
      <!-- Username field -->
      <input autocomplete="off" id="usernameinput" type="text" name="" placeholder="Enter Username" required>

      <label><strong>Password</strong></label>
      <!-- Password field -->
      <input id="passwordinput" type="password" name="" placeholder="Enter Password" required>



      <button type="submit"><a href="home.html">Login</a></button>
      <!-- Login button -->
      <button class="newbutton" type="button"><a href="newuser.html">New User</a></button>
      <!-- New User button -->
      <button type="reset">Cancel</button>
      <!-- Cancel button -->

    </div>

  </form>

  <script src="JS/index.js"></script>
</body>

</html>

那应该可以解决您遇到的错误。