安装Gunicorn,运行superset

Gunicorn 介绍

Gunicorn,Green Unicorn,“绿色独角兽”,是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。

Gunicorn 服务器作为 wsgi app的容器,能够与各种Web框架兼容(flask,django等),得益于gevent等技术,使用Gunicorn能够在基本不改变wsgi app代码的前提下,大幅度提高wsgi app的性能。

只能运行在 linux、unix中,不能运行在 windows

一句话解释

学过 JSP 的小伙伴,可以理解为相当于 Tomcat 服务器

准备

启动环境

cd /program/superset
. venv/bin/activate

执行结果如下:

(venv) [root@hadoop1 superset]#

看到上面 (venv) ,说明启动成功

安装 gevent

安装 gevent 协程库,Gunicorn使用该协程库

pip install gevent

安装 Gunicorn

pip install gunicorn

安装其他库(可略)

pip install pillow
pip install sqlalchemy_trino

启动 superset

启动环境

cd /program/superset
. venv/bin/activate

执行结果如下:

(venv) [root@hadoop1 superset]#

看到上面 (venv) ,说明启动成功

启动superset

gunicorn \
      -w 10 \
      -k gevent \
      --worker-connections 1000 \
      --timeout 120 \
      -b  0.0.0.0:5000 \
      "superset.app:create_app()" \
      --daemon

解释:

  • -w 10:进程数量,可以并发执行
  • -k gevent:worker进程的工作方式。 有 sync, eventlet, gevent, tornado, gthread, 缺省值sync。
  • --worker-connections 1000:客户端最大同时连接数。只适用于eventlet, gevent工作方式
  • --timeout 120:120秒内,work 没有返回结果,gunicorn就认定这个request超时,终止worker继续执行,向客户端返回出错的信息,用于避免系统出现异常时,所有worker都被占住,无法处理更多的正常request,导致整个系统无法访问。
  • -b 0.0.0.0:6666:绑定 ip地址、端口号
  • superset.app:create_app():运行的程序
  • --daemon:后台运行,否则一直占用 shell窗口

停止

如果不是后台运行,直接登录 shell,ctrl+c 停止即可

如果是后台运行,需要通过下面命令 kill 进程:

ps -ef | awk '/superset/ && !/awk/ {print $2}' | xargs kill -9

解释:

  • ps -ef:列出所有进程
  • awk '/superset/ && !/awk/ {print $2}':awk,是处理文本文件的语言。找出 含有 superset字样,并且不含有awk字样,并且打印第二列
  • xargs:作为参数,传给 kill
  • kill -9:杀死进程

原文出处:/show_1IX3LeHKcgQT.html