项目地址:https://github.com/apache/superset
安装
安装docker
Installing Locally Using Docker Compose | superset doc
Install Docker Engine | Docker Documentation
Docker化部署superset
从docker官方镜像仓库中搜索superset镜像:
docker search superset
拉取星星最多的镜像:
docker pull amancevice/superset
创建Superset容器
创建挂载的目录:
mkdir /opt/superset
创建superset容器:
docker run --name test2_superset -d -p 3005:8088 -v /opt/test_superset:/home/superset superset1.3.2:origin
查看进程:
docker ps -a
进入docker镜像:--user root 以root进入
docker exec -it --user root my_superset_test /bin/bash
解决时区问题
Docker 修改容器内的时区 - Double冬 - 博客园
进入宿主机查看容器 docker ps
进入容器 docker exec -it “容器名“ bash
查询时间 date -R 发现时区为0时区
bash-5.0# date -RTue, 17 Sep 2019 05:51:30 +0000
----------------------------------------------------------------------------------
解决办法
1.复制相应的时区文件,替换系统时区文件;
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
有的容器基础镜像是有这个文件的,直接拷贝就可以,如果不能拷贝,则是因为创建镜像时依赖的基础镜像 运行的容器没有这两个文件,使用下面的办法
2. 创建文件夹
mkdir -p /usr/share/zoneinfo/Asia
3.回到宿主机,复制宿主机里的文件到容器中
docker cp /usr/share/zoneinfo/Asia/Shanghai my_superset:/usr/share/zoneinfo/Asia
4. 进入容器
docker exec -it 容器Id或容器名 bash
执行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5. 验证date
bash-5.0# dateTue Sep 17 13:54:25 CST 2019
容器内安装基础工具
vim & rz sz
apt-get -y install vim
apt-get -y install lrzsz
redis
apt-get -y install redis-server
chrom driver
安装chrome webdriver(用于生成缩略图):
Install chrome webdriver:
注意:下方命令中——“wget https://chromedriver.storage.googleapis.com/91.0.4472.19...” 里的91.0.4472.19是webdriver的版本号。如果运行时celery日志报错,提示webdriver版本不符,可修改91.0.4472.19为所需的版本号,重新运行下面的命令。
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt install -y ./google-chrome-stable_current_amd64.deb && \
wget https://chromedriver.storage.googleapis.com/94.0.4606.41/chromedriver_linux64.zip && \
unzip chromedriver_linux64.zip && \
chmod +x chromedriver && \
mv chromedriver /usr/bin && \
rm -f google-chrome-stable_current_amd64.deb chromedriver_linux64.zip
参考:https://github.com/apache/superset/issues/12867#issuecomment-771770878
在Superset容器中初始化
superset安装目录:/usr/local/lib/python3.8/site-packages/superset
数据库初始化:(进入容器后执行命令)
superset db upgrade
superset初始化:(进入容器后执行命令)
superset init
设置管理员账号:(进入容器后执行命令)
export FLASK_APP=superset
flask fab create-admin
用户名:admin,密码:admin
加载superset样例命令:(进入容器后执行命令)
(由于网络的原因可能会报错,但是不影响正常使用,可以多执行几次加载更多的测试样例)
superset load_examples
报错后接着执行,有断点续传
启动superset命令:(进入容器后执行命令)一般不使用,初始化init后,就可以访问了
superset run -p 8088
如果无法登陆,退出容器,重启一下即可。
访问superset
192.168.192.15:3002
汉化
修改config.py
# Setup default language
BABEL_DEFAULT_LOCALE = "zh"
cd /usr/local/lib/python3.8/site-packages/superset
pybabel compile -d translations
报错后核对/usr/local/lib/python3.8/site-packages/superset/translations/zh/LC_MESSAGES
下message.po中文件内容
例如:
msgid中包含变量
msgstr也必须包含相同变量,否则报错