linux上搭建superset项目

一.机器上运行命令都在  /usr/bin  该目录下找脚本,如果没有该脚本,会报找不到

二.查看一下机器上的python版本是否是3.6以上,因为superset只支持python3.6以上

python -V

三.如果你机器上的python是2点几的或者没有,那就要看下面安装python高版本(本人是安装了python3.7版本)

1.在机器上随便找一个目录,下载python插件
 
    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz(看是否能直接在机器上下载,不 
    可以的话就只能在window下载上传了)

2.解压压缩包
    
    tar -zxvf Python-3.7.0.tgz

3.进入目录
   
   cd Python-3.7.0

4.创建安装目录

    mkdir /usr/local/python3

5.安装到指定目录

    ./configure --prefix=/usr/local/python3 --enable-optimizations(--enable-optimizations 
   加了这个参数编译会比较旧,这个是参数是性能优化相关)

6. 编译(这一步比较久,大概要20分钟)

   make && make install

7.成功后创建软连接即可全局使用python3了
 
  cd /usr/local/python3
  ln -s /usr/local/python3/bin/python3 /usr/bin/python
  ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

8.可以查看pip和python的版本

  python -V 
  pip -V

四.安装完python3.7版本之后,yum命令会报错(因为yum是用python2写的)

1.编辑这两个文件
 
  vim /usr/libexec/urlgrabber-ext-down
  vim /usr/bin/yum

2.编辑第一行(让yum命令指向python2版本就行)

  #!/usr/bin/python 改成 #!/usr/bin/python2.7

五.安装superset

1.执行一下下面命令:
   
   yum makecache

   yum upgrade python-setuptools(这个命令我当时没执行)

   yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel 
   libsasl2-devel openldap-devel

2.安装虚拟环境

  pip install virtualenv

3.随便找一个目录下激活虚拟环境

  python -m venv venv(创建一个venv的目录)

  . venv/bin/activate(进入虚拟环境)

4.更新一下pip
  
  pip install --upgrade setuptools pip

5.安装superset
  
  pip install superset

6.创建管理员用户名和密码 
  
  fabmanager create-admin --app superset

7.初始化Superset 
  
  superset db upgrade

  初始superset可以会报一个包找不到(ModuleNotFoundError: No module named '_sqlite3'这个问题))

五.解决ModuleNotFoundError: No module named '_sqlite3'这个问题

1.先安装

   yum install readline-devel
   yum install tk-devel
   yum install tcl-devel  
   yum install openssl-devel   
   yum install sqlite-devel 

2.然后重启编译python3

   tar -zxvf Python-3.7.0.tgz
   cd Python-3.7.0
   ./configure --prefix=/usr/local/python3
   make && make install

六.继续superset

 

1.装载初始化样例数据 

  superset load_examples (可能会报有些url链接不上,本人这边公司机器链接不上,我直接不管)

2.创建默认角色和权限

  superset init

3.启动服务

  superset run -p 8080 --with-threads --reload --debugger(端口看你需要吧)

七.页面

八.相关博客

 

1.该博客有汉化和设置时区和安装pip的步骤(里面是基于python2.7版本安装的):https://blog.csdn.net/u014729236/article/details/76302888

2.window系统安装:https://www.jianshu.com/p/b02fcea7eb5b

3.升级到python3.7:https://www.jianshu.com/p/447750ec1186

九.链接mysql数据库的一些问题

错误:

1.解决方法: pip install mysqlclient

错误:

2 .解决方法:

这个要看自己的python安装路径
(cp /usr/local/Python34/lib/python3.4/configparser.py /usr/local/Python34/lib/python3.4/ConfigParser.py
pip install mysql-python)(这个方法解决不了的话,下面看)

以下方法解决:

uname -a查看系统版本(x86_64这样的是64的)

如果32的话
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
如果是64系统则:
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20

错误:

 3.解决方法:

1.找到有superset的文件夹(这个下面就是superset的项目)

python3不支持mysqldb模块导致(因为项目里面用了mysqldb)
,解决方法:安装:pip install PyMySQL
在项目的 __init__.py中添加两行:
import pymysql
pymysql.install_as_MySQLdb()

2.不执行1的话(不改代码的情况下:这样链接也可以:mysql+pymysql://root:xxxx@localhost:3306/qin?charset=utf8,mysql是数据库类型,pymysql是驱动程序,表示用pymysql连接mysql数据库,+号不能省略)
也要安装这个:pip install PyMySQL

里面支持很多数据库类型(官网有提示,要用那个数据库就装一下吧):

pip install "PyAthenaJDBC>1.0.9"

awsathena+jdbc://


pip install "PyAthena>1.2.0"

awsathena+rest://


pip install sqlalchemy-redshift

redshift+psycopg2://


pip install sqlalchemy-drill

For the REST API:`` drill+sadrill:// For JDBC drill+jdbc://


pip install pyduid

druid://



pip install pyhive

hive://



pip install impyla

impala://



pip install kylinpy

kylin://


pip install pinotdb

pinot+http://CONTROLLER:5436/ query?server=http://CONTROLLER:5983/



pip install pyhive

jdbc+hive://



pip install pybigquery

bigquery://


pip install gsheetsdb

gsheets://



pip install ibm_db_sa

db2+ibm_db://



pip install mysqlclient

mysql://



pip install cx_Oracle

oracle://



pip install psycopg2

postgresql+psycopg2://



pip install pyhive

presto://



pip install snowflake-sqlalchemy

snowflake://


pip install pymssql

mssql://



pip install sqlalchemy-teradata

teradata://



pip install sqlalchemy-vertica-python

vertica+vertica_python://

十.关于汉化和搭建(博客)

https://www.jianshu.com/p/c751278996f8(汉化博客)

https://zhuanlan.zhihu.com/p/28485468(项目搭建讲的挺好)

十一.用python3的pip安装插件有问题

 解决方法:重新去编译安装python3

./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl(加多这个--with-ssl,因为链接不了https)

 make && make install

十二.在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法(会导致pip3安装失败)

yum install libffi-devel -y

十三.python安装psycopg2报错’Error: pg_config executable not found

yum install postgresql-devel*

十四.mysql链接报错  sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1043, 'Bad handshake')

解决:1.pip install  'PyMySQL<=0.6.7'(改一下链接mysql的版本吧,一般版本问题)

    2.pip install aiomysql(这个也安装一下)

    3.如果链接mysql还会遇到奇奇怪怪的问题(试着卸载pip uninstall  PyMySQL
     ,然后重新安装pip install  'PyMySQL<=0.6.7)

十五.gunicorn 来管理superset项目

1.pip install gunicorn(安装)
2.启动相关:

前台运行
gunicorn -w 2 --timeout 60 -b  0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app (调试问题的时候用)
后台运行
gunicorn -D -w 2 --timeout 60 -b  0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app  
 
关闭进程
查看gunicorn进程
pstree -ap|grep gunicorn

按pid终止单个进程
kill -9 PID

按进程名称终止进程
killall -9 gunicorn

十六.关于superset和gunicorn写启动脚本的方式博客,有兴趣可以看一下(类似apache的service httpd restart)

https://blog.csdn.net/liangkiller/article/details/101299753

十七.导出csv报错(UnicodeEncodeError: 'ascii' codec can't encode characters in position 208-213: ordinal not in range(128))(本人这边搭建用gunicorn去管理)

 

 vim ./venv/lib/python3.7/site-packages/gunicorn/http/wsgi.py

  util.write(self.sock, util.to_bytestring(header_str, "ascii"))
     
  改为这个(就是改成utf-8就行)
  util.write(self.sock, util.to_bytestring(header_str, "utf-8"))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值