一.机器上运行命令都在 /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"))