#python-3.x #kubernetes #apache-superset #superset
Вопрос:
Я пытаюсь развернуть последний образ docker apache:superset на Kubernetes. Когда я развертываю YAAML, я получаю ошибку ниже:
[2021-04-29 01:34:10 0000] [8] [INFO] Starting gunicorn 20.0.4
[2021-04-29 01:34:10 0000] [8] [INFO] Listening at: http://0.0.0.0:8088 (8)
[2021-04-29 01:34:10 0000] [8] [INFO] Using worker: gthread
[2021-04-29 01:34:10 0000] [11] [INFO] Booting worker with pid: 11
logging was configured successfully
2021-04-29 01:34:12,332:INFO:superset.utils.logging_configurator:logging was configured successfully
2021-04-29 01:34:12,340:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
100.106.25.194 - - [29/Apr/2021:01:34:20 0000] "GET / HTTP/1.1" 302 243 "-" "kube-probe/1.18"
/usr/local/lib/python3.7/site-packages/flask_caching/__init__.py:192: UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled.
"Flask-Caching: CACHE_TYPE is set to null, "
2021-04-29 01:34:20,145:WARNING:root:Class 'werkzeug.local.LocalProxy' is not mapped
2021-04-29 01:34:20,147:ERROR:root:DBEventLogger failed to log event(s)
2021-04-29 01:34:20,147:ERROR:root:(sqlite3.OperationalError) no such table: logs
[SQL: INSERT INTO logs (action, slice_id, json, dttm, duration_ms, referrer) VALUES (?, ?, ?, ?, ?, ?)]
[parameters: ('welcome', 0, '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', '2021-04-29 01:34:20.147331', 0, 'http://100.106.25.213:8088/')]
(Background on this error at: http://sqlalche.me/e/13/e3q8)
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: logs
Похоже, он пытается подключиться к SQLLite по умолчанию. Я пытаюсь предоставить учетные данные postgres в config.py но не в состоянии изменить файл в изображении. У меня есть команда ниже в моем файле Docker:
USER root
COPY updated_config.py /app/superset/config.py
USER superset
команда выполняется нормально, но файл не обновляется.Как я могу обновить config.py. Я также попытался использовать карту конфигурации в YAML, но это также дало ошибку:
"ModuleNotFoundError: No module named 'superset.app'"
Пожалуйста, предложите. Спасибо
Ответ №1:
- Ошибка, которой вы поделились, должна произойти только тогда, когда мы не запустили
superset db upgrade
. - Вы не должны заменять полный конфигурационный файл по умолчанию. Вместо этого создайте новый файл и добавьте необходимые переменные с помощью export SUPERSET_CONFIG_PATH.
Вот Докерфайл
FROM apache/superset
USER root
USER superset
EXPOSE 8088
RUN superset fab create-admin
--username admin
--firstname Superset
--lastname Admin
--email admin@superset.com
--password admin
COPY updated_config.py /app/config.py
RUN export SUPERSET_CONFIG_PATH=/app/config.py
RUN superset db upgrade
RUN superset init
Я лучше предложу установить superset через диаграмму управления, так как вы уже используете kubernetes.