1. 安装

  1. $ mkdir ~/bigdata/superset
  2. $ touch ~/bigdata/superset/superset_config.py
  3. $ export SUPERSET_HOME=~/bigdata/superset
  4. $ conda install mysqlclient -y
  5. $ pip install pillow apache-superset

2. 配置zshrc

需要在 .zshrcPYTHONPATH 变量添加该 superset 项目文件夹:

  1. export PYTHONPATH="/home/yumingmin/bigdata/superset"

3. 创建 Superset 的MySQL数据库

  1. > CREATE DATABASE superset;
  2. > ALTER DATABASE superset CHARACTER SET utf8;
  3. > CREATE USER 'superset'@'localhost' IDENTIFIED BY 'superset1234';
  4. > GRANT ALL PRIVILEGES ON superset.* TO 'superset'@'localhost';
  5. > FLUSH PRIVILEGES;

https://raw.githubusercontent.com/apache/superset/master/superset/config.py 文件内容,粘贴到 superset_config.py 文件,并修改以下几处:

  1. BABEL_DEFAULT_LOCALE = "zh"
  2. LANGUAGES = {
  3. "en": {"flag": "us", "name": "English"},
  4. "zh": {"flag": "cn", "name": "Chinese"},
  5. }
  6. SQLALCHEMY_DATABASE_URI = "mysql+pymysql://superset:superset1234@localhost:3306/superset?charset=utf8&unix_socket=/var/run/mysqld/mysqld.sock"

你也可以使用默认的连接方式,但如果 MySQL 是 8.0 以上版本时,会报错 caching_sha2_password 插件无法加载。

  1. SQLALCHEMY_DATABASE_URI = "mysql://superset:superset1234@localhost:3306/superset?charset=utf8&unix_socket=/var/run/mysqld/mysqld.sock"

解决此方问题的方法有 2 个,一是使用 PyMysql,另外一个则是修改权限,并在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中 [mysqld] 部分添加 default_authentication_plugin=mysql_native_password

  1. ALTER USER 'superset'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superset1234';

4. 创建用户

  1. $ superset fab create-admin
  2. $ superset fab create-user

一定要先执行这两步,否则会报 superset.user_attribute 错误(关于这一点非常重要,网上关于这个问题的解决办法大都是错误的)。

5. 启动

  1. $ superset db upgrade
  2. $ superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger

一定要看到 MySQLImpl 才说明使用 MySQL 作为后台数据库成功,如果是 SQLiteImpl 则表示还未成功。解决办法:在 superset 目录下执行

  1. $ superset db init # 如果报错,需要删除 site-packages/superset/migrations 文件夹
  2. $ superset db migrate
  3. $ superset db upgrade

看到 Loaded your LOCAL configuration at [/home/yumingmin/bigdata/superset/superset_config.py 信息,才表示你的配置文件加载成功,否则都是使用的默认配置。

6. 登录后报错

image.png
image.png

如果出现上述情况时,在 superset 目录下再次执行 superset init 命令。并添加 MySQL 数据库,首先需要给 MySQL 用户赋予外部访问权限:

  1. > USE mysql;
  2. > UPDATE user SET host='%' WHERE user='superset';
  3. > GRANT ALL PRIVILEGES ON superset.* TO 'superset'@'%'; -- 需要执行两次

[

](https://www.codeleading.com/article/5349780892/)