• Superset 1.2.0 安装


    Superset 1.2.0 安装

    1、Python3.7.9 安装

    1.1、安装编译相关工具

    yum -y groupinstall "Development tools"
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
    yum install libffi-devel -y
    
    • 1
    • 2
    • 3

    1.2、下载安装包解压

    cd #回到用户目录
    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
    tar -xvJf  Python-3.7.0.tar.xz
    
    • 1
    • 2
    • 3

    1.3、编译安装

    mkdir /usr/local/python3 #创建编译安装目录
    cd Python-3.7.0
    ./configure --prefix=/usr/local/python3
    make && make install
    
    • 1
    • 2
    • 3
    • 4

    1.4、创建软连接

    ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
    
    • 1
    • 2

    1.5、验证是否成功

    python3 -V
    pip3 -V
    
    • 1
    • 2

    2、pip 安装Superset

    2.1、下载

    pip3 install --target=\default package_name==1.2.1
    #将库中的python模块用作脚本去运行安装scikit-learn
    python3 -m pip install scikit-learn
    
    卸载版本不对的其他组件,然后单独制定兼容的版本号,重新安装
    pip3 uninstall Flask
    pip3 install Flask===1.9 (这个范围内的<2,>=0.12
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    #下载链接:
    https://github.com/apache/superset
     
    #进入到superset目录下直接执行如下命令
    python3 setup.py install
     
    #创建管理员账号
    python3 superset fab create-admin
     
    #初始化数据库
    superset db upgrade
     
    #加载例子
    superset load_examples 
     
    #初始化
    superset init 
     
    #启动superset 指定端口
    superset run -h 0.0.0.0 -p 8088 --with-threads --debugger 
     
    #后台启动
    nohup superset run -h 0.0.0.0 -p 8088 --with-threads --debugger &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    2.3、指定源数据库

    #如果使用过的是mysql数据库,在superset的安装目录下,找到config.py文件,修改
    SQLALCHEMY_DATABASE_URI = 'mysql://root:password@localhost:3306/superset?charset=UTF8'#在root处填写mysql的用户名,在password处填写密码
    
    • 1
    • 2
    • 3

    2.2、虚拟机安装

    #下载Linux依赖
    yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel
     
    #Python 虚拟环境
    pip install virtualenv
     
     
    #创建superset环境(最好进入到指定目录后再创建)
    python3 -m venv venv
     
    #进入虚拟环境
    . venv/bin/activate
     
    #安装superset
    pip install apache-superset
     
    pip install apache-superset -i https://pypi.tuna.tsinghua.edu.cn/simple/
     
    #如果下载过慢 可以使用国内镜像1)阿里云 http://mirrors.aliyun.com/pypi/simple/2)豆瓣http://pypi.douban.com/simple/3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/5)华中科技大学http://pypi.hustunique.com/
     
    #初始化db
    superset db upgrade
     
    #创建admin用户
    superset fab create-admin
     
    #superset初始化
    superset init
     
    #测试启动
    superset runserver -d
    superset run -p 8088 --with-threads --reload --debugger
     
    #退出虚拟环境
    deactivate
     
     
    #以下是个人比较喜欢的方式
    ##需要先安装gunicorn
        pip install gunicorn -i https://pypi.douban.com/simple/
        
    #1、进入虚拟环境 
        . superset/bin/activate
    #2、后台启动
        gunicorn --workers 10 --timeout 120 --bind 0.0.0.0:8088  "superset.app:create_app()" --daemon
     
    #3、退出虚拟环境
        deactivate
    #4、停止superset
        ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    3、报错

    3.1、无_bz2问题

    切换到python3.7对应路径,将该文件复制到该目录下:
    
    cd /usr/local/lib/python3.7/lib-dynload
     
    sudo cp /usr/lib/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./
    3、修改文件名称,将"-36m"修改为"-37m"即可:
    
    sudo mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-37m-x86_64-linux-gnu.so
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3、conda 安装

    3.1、安装Miniconda

    1、下载 Miniconda(Python3 版本)

    下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

    2)安装 Miniconda

    (1)执行以下命令进行安装,并按照提示操作,直到安装完成。

    [atguigu@hadoop102 lib]$ bash Miniconda3-latest-Linux-x86_64.sh
    
    • 1
    1. ERROR: File or directory already exists: '/root/anaconda3'

    bash Anaconda3-5.2.0-Linux-x86_64.sh -u

    (2)在安装过程中,出现以下提示时,可以指定安装路径

    在这里插入图片描述

    3)出现以下字样,即为安装完成

    在这里插入图片描述

    3、加载环境变量配置文件,使之生效

    [atguigu@hadoop102 lib]$ source ~/.bashrc
    
    • 1

    4、取消激活 base 环境

    Miniconda 安装完成后,每次打开终端都会激活其默认的 base 环境,我们可通过以下命令,禁止激活默认 base 环境。

    [atguigu@hadoop102 lib]$ conda config --set auto_activate_base false
    
    • 1

    3.2、创建python空间

    1)配置conda 国内镜像

    (base) [atguigu@hadoop102 ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
    (base) [atguigu@hadoop102 ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
    
    • 1
    • 2

    2、创建Python3.7 环境

    (base) [atguigu@hadoop102 ~]$ conda create --name superset python=3.7
    
    • 1

    2.1、conda环境管理常用命令

    #创建环境:
    conda create -n superset-1.2.0 python=3.7
    conda create --prefix=/opt/superset python=3.7
    #查看所有环境:
    conda info --envs
    #删除一个环境:
    conda remove -n env_name --all
    #激活 superset 环境
    conda activate superset
    #退出当前环境
    conda deactivate
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3、激活 superset 环境

    (base) [atguigu@hadoop102 ~]$ conda activate superset
    
    • 1

    激活后效果如下图所示

    在这里插入图片描述

    说明:退出当前环境

    (superset) [atguigu@hadoop102 ~]$ conda deactivate
    
    • 1

    4)执行 python 命令查看python 版本

    在这里插入图片描述

    3.3、 Superset 部署

    1、安装依赖

    1)安装 Superset 之前,需安装以下所需依赖

    (superset) [atguigu@hadoop102 ~]$ sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
    
    • 1

    2)安装(更新)setuptools和pip

    (superset) [atguigu@hadoop102 ~]$ pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
    
    • 1

    **说明:**pip 是 python 的包管理工具,可以和 centos 中的 yum 类比

    2、安装 Superset

    (superset) [atguigu@hadoop102 ~]$ pip install apache-superset -i https://pypi.douban.com/simple/
    
    • 1

    说明:-i 的作用是指定镜像,这里选择国内镜像

    注:如果遇到网络错误导致不能下载,可尝试更换镜像

    (superset) [atguigu@hadoop102 ~]$ pip install apache-superset --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple
    # pip install 名==版本
    
    • 1
    • 2

    1)升级superset

    pip install apache-superset --upgrade
    superset db upgrade
    superset init
    
    • 1
    • 2
    • 3

    2)汉化及外置数据库

    修改config.py源码;下面添加数据源

    /superset/lib/python3.7/site-packages/superset/config.py文件, 修改内容如下:

    BABEL_DEFAULT_LOCALE = "zh"
    
    • 1

    外置数据库

    修改配置文件config.py中的数据库连接地址

    SQLALCHEMY_DATABASE_URI = 'sqlite:///' +  os.path.join(DATA_DIR, 'superset.db')
    # 改为
    SQLALCHEMY_DATABASE_URI = 'mysql://root:xxxx@host:port/superset?charset=utf8'
    # 进入虚拟环境初始化数据库
    source venv/bin/activate
    superset db upgrade
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    3) 初始化Supetset数据库
    (superset) [atguigu@hadoop102 ~]$ superset db upgrade
    
    • 1
    4)创建管理员用户
    (superset) [atguigu@hadoop102 ~]$ export FLASK_APP=superset
    (superset) [atguigu@hadoop102 ~]$ superset fab create-admin
    
    • 1
    • 2

    **说明:**flask 是一个 python web 框架,Superset 使用的就是 flask

    5)Superset初始化
    (superset) [atguigu@hadoop102 ~]$ superset init
    
    • 1

    报错

    ImportError: cannot import name '_ColumnEntity' from 'sqlalchemy.orm.query' (/Users/ahmedawny/supersetenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py)
    
    • 1

    https://stackoverflow.com/questions/66644975/importerror-cannot-import-name-columnentity-from-sqlalchemy-orm-query/66648061#66648061

    https://github.com/sqlalchemy/sqlalchemy/issues/6226

    转到sqlalchemy_utils\functions\orm.py 文件并更改:

    • from sqlalchemy.orm.query import _ColumnEntity (评论这个,或者删除它)
    • 从 sqlalchemy.orm.context 导入 _ColumnEntity (包括)

    抱怨“flask-appbuilder 3.2.2 需要 SQLAlchemy<1.4.0

    1)手动 pip install sqlalchemy==1.3.24 之后

    pip install sqlalchemy==1.3.24 -i https://pypi.douban.com/simple/

    2)SQLAlchemy-Utils(最新版本是 0.37.2)。

    3、启动Supterset

    1)安装gunicorn
    (superset) [atguigu@hadoop102 ~]$ pip install gunicorn -i https://pypi.douban.com/simple/
    
    • 1

    **说明:**gunicorn 是一个 Python Web Server,可以和 java 中的 TomCat 类比

    2)启动Superset

    1)确保当前 conda环境为 superset,及下图所示

    在这里插入图片描述

    2)启动

    (superset) [atguigu@hadoop102 ~]$ gunicorn --workers 5 --timeout 120 --bind hbdn2:8787 "superset.app:create_app()" --daemon 
    
    • 1

    说明:

    –workers:指定进程个数

    –timeout:worker进程超时时间,超时会自动重启

    –bind:绑定本机地址,即为Superset 访问地址

    –daemon:后台运行

    3)登录Superset

    访问 http://hadoop102:8787,并使用 2.2.2 节中第 4 步创建的管理员账号进行登录。

    3)停止superset

    停掉 gunicorn 进程

    (superset) [atguigu@hadoop102 ~]$ ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
    
    • 1

    退出 superset 环境

    (superset) [atguigu@hadoop102 ~]$ conda deactivate
    
    • 1

    4、superset 启停脚本

    1)创建superset.sh文件

    [atguigu@hadoop102 bin]$ vim superset.sh
    
    • 1

    2)加执行权限

    [atguigu@hadoop102 bin]$ chmod +x superset.sh
    
    • 1

    报错:-bash: ./cleanup.sh: /bin/bash^M: bad interpreter: No such file or directory

    sed -i “s/\r//” name.sh 之后再次执行

    3)测试

    启动 superset

    [atguigu@hadoop102 bin]$ superset.sh start
    
    • 1

    停止 superset

    [atguigu@hadoop102 bin]$ superset.sh stop
    
    • 1

    5、数据源下载

    1)mysql

    (superset) [atguigu@hadoop102 ~]$ conda install mysqlclient
    mysql://用户名:密码@主机名:端口号/数据库名称
    
    • 1
    • 2

    2)hive、Spark SQL

    pip install pyhive -i https://pypi.douban.com/simple/
    hive://ip:10000
    hive://hive@{hostname}:{port}/{database}
    
    • 1
    • 2
    • 3

    3)impala

    pip install impyla -i https://pypi.douban.com/simple/
    impala:///user:password@{hostname}:21050/{database}
    impala://{hostname}:21050/{database}
    
    • 1
    • 2
    • 3

    4)kylin

    pip install kylinpy -i https://pypi.douban.com/simple/
    kylin://:@:/?=&=
    
    • 1
    • 2
  • 相关阅读:
    独立按键控制LED亮灭
    C 语言版线程池
    【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例
    Linux下Qt打包
    【LIMU-Bert论文阅读】
    思考总结:领域知识图谱平台构建与业务应用
    Vue的路由
    基于SpringBoot的精准扶贫管理系统
    在校学生如何白嫖黑群辉虚拟机和内网穿透,实现海量资源的公网访问?(小白专用)
    家庭理财管理系统设计与实现
  • 原文地址:https://blog.csdn.net/weixin_43660536/article/details/126173404