apache/superset Windows Server 2019에 처음부터 설치하기

Python 설치하기

공식 사이트에서 python-3.10.9-amd64.exe파일을 다운로드하여 설치합니다.

Node.js 설치하기

다음 공식사이트에서 최신 버전을 다운로드하여 설치합니다.

Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

Visual Studio Build Tools 설치하기

최신 버전의 Visual Studio Build Tools를 다운로드하는 사이트입니다.

Microsoft C++ Build Tools - Visual Studio

이글에서는 Visual Studio Build Tools 2019를 설치하기 위해 과거 버전 다운로드 사이트를 사용합니다.

Visual Studio 이전 다운로드 - 2019, 2017, 2015 및 이전 버전
이전 버전의 Visual Studio Community, Professional 및 Enterprise 소프트웨어를 다운로드합니다. 여기에서 MSDN(Visual Studio) 구독에 로그인합니다.

다운로드한 파일을 실행합니다.

vs_BuildTools_????.exe

“C++를 사용한 데스크톱 개발”를 선택하면 오른쪽 영역의 체크박스가 자동으로 선택됩니다.

[설치]버튼을 눌러 인스톨을 진행합니다.

설치가 완료 화면 [X]버튼을 클릭해서 화면을 닫습니다.

apachesuperset 설치하기

다음은 Windows PowerShell에서 실행했습니다. 명령프롬프트를 사용한다면 아래의 Invoke-WebRequest명령 사용 대신 웹브라우저에서 직접 파일을 다운로드합니다.

C:\> mkdir c:\app\superset
C:\> cd c:\app\superset
C:\app\superset>
C:\app\superset> pip --version
pip 22.3.1 from C:\app\Python310\lib\site-packages\pip (python 3.10)
C:\app\superset> python --version
Python 3.10.9
C:\app\superset> pip install --upgrade setuptools
.. 중간생략 ..
Successfully installed setuptools-68.2.2
[notice] A new release of pip available: 22.3.1 -> 23.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip
C:\app\superset> python.exe -m pip install --upgrade pip
.. 중간생략 ..
Successfully installed pip-23.2.1
C:\app\superset> dir
C:\app\superset> python -m venv venv
C:\app\superset> dir
    디렉터리: C:\app\superset
Mode              LastWriteTime   Length Name
----              -------------   ------ ----
d-----   2023-10-08   오후 9:08          venv

 C:\app\superset> dir venv
    디렉터리: C:\app\superset\venv
Mode              LastWriteTime   Length Name
----              -------------  ------ ----
d-----   2023-10-08  오후 11:13          Include
d-----   2023-10-08  오후 11:13          Lib
d-----   2023-10-08  오후 11:13          Scripts
-a----   2023-10-08  오후 11:13       81 pyvenv.cfg

C:\app\superset> dir venv\Scripts
    디렉터리: C:\app\superset\venv\Scripts
Mode              LastWriteTime   Length Name
----              -------------   ------ ----
-a----   2023-10-08   오후 9:09     2060 activate
-a----   2023-10-08   오후 9:09      989 activate.bat
-a----   2023-10-08   오후 9:09    24167 Activate.ps1
-a----   2023-10-08   오후 9:09      393 deactivate.bat
-a----   2023-10-08   오후 9:09   108398 pip.exe
-a----   2023-10-08   오후 9:09   108398 pip3.10.exe
-a----   2023-10-08   오후 9:09   108398 pip3.exe
-a----   2023-10-08   오후 9:08   266624 python.exe
-a----   2023-10-08   오후 9:08   254848 pythonw.exe
C:\app\superset> venv\Scripts\activate
(venv) C:\app\superset>
(venv) C:\app\superset> Invoke-WebRequest "https://bootstrap.pypa.io/get-pip.py" -o get-pip.py
(venv) C:\app\superset> python get-pip.py
Collecting pip
.. 중간생략 ..
Successfully installed pip-23.2.1 wheel-0.41.2
(venv) C:\app\superset> dir venv\Scripts
.. 중간생략 ..
-a----     2023-10-08   오후 9:18         108385 wheel.exe
(venv) C:\app\superset> pip install --upgrade setuptools pip
.. 중간생략 ..
Requirement already satisfied: pip in c:\app\superset\venv\lib\site-packages (23.2.1)
.. 중간생략 ..
Successfully installed setuptools-68.2.2
(venv) C:\app\superset> pip install psycopg2
Collecting psycopg2
.. 중간생략 ..
Successfully installed psycopg2-2.9.9
(venv) C:\app\superset> pip install pymssql
(venv) C:\app\superset> pip install pillow
Collecting pillow
.. 중간생략 ..
Successfully installed pillow-10.0.1
(venv) C:\app\superset> pip install apache-superset
Collecting apache-superset
  Downloading apache-superset-3.0.0.tar.gz (48.1 MB)
     ---------------------------------------- 48.1/48.1 MB 6.8 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
... 이하생략 ...
(venv) C:\app\superset> cd venv\Scripts
(venv) C:\app\superset\venv\Scripts>
(venv) C:\app\superset\venv\Scripts> dir

Mode             LastWriteTime  Length Name
----             -------------  ------ ----
d-----  2023-10-08  오후 11:23         __pycache__
-a----  2023-10-08  오후 11:13    2060 activate
-a----  2023-10-08  오후 11:13     989 activate.bat
-a----  2023-10-08  오후 11:13   24167 Activate.ps1
-a----  2023-10-08  오후 11:24  108390 alembic.exe
-a----  2023-10-08  오후 11:24  108391 celery.exe
-a----  2023-10-08  오후 11:24  108398 censusgeocode.exe
-a----  2023-10-08  오후 11:13     393 deactivate.bat
-a----  2023-10-08  오후 11:23  108389 dotenv.exe
-a----  2023-10-08  오후 11:24  108391 email_validator.exe
-a----  2023-10-08  오후 11:23  108393 f2py.exe
-a----  2023-10-08  오후 11:24  108398 fabmanager.exe
-a----  2023-10-08  오후 11:24  108385 flask.exe
-a----  2023-10-08  오후 11:24  108390 jsonschema.exe
-a----  2023-10-08  오후 11:24  108390 mako-render.exe
-a----  2023-10-08  오후 11:24  108397 markdown-it.exe
-a----  2023-10-08  오후 11:24  108391 markdown_py.exe
-a----  2023-10-08  오후 11:23  108393 pgsanity.exe
-a----  2023-10-08  오후 11:20  108398 pip.exe
-a----  2023-10-08  오후 11:20  108398 pip3.10.exe
-a----  2023-10-08  오후 11:20  108398 pip3.exe
-a----  2023-10-08  오후 11:24  108399 pybabel.exe
-a----  2023-10-08  오후 11:23  108392 pygmentize.exe
-a----  2023-10-08  오후 11:13  266624 python.exe
-a----  2023-10-08  오후 11:13  254848 pythonw.exe
-a----  2023-10-08  오후 11:23  108393 sqlformat.exe
-a----  2023-10-08  오후 11:24  108395 sshtunnel.exe
-a----  2023-10-08  오후 11:24  108401 superset.exe
-a----  2023-10-08  오후 11:23  108386 tabulate.exe
-a----  2023-10-08  오후 11:23    1877 vba_extract.py
-a----  2023-10-08  오후 11:23  108389 waitress-serve.exe
-a----  2023-10-08  오후 11:20  108385 wheel.exe

apachesuperset 초기화/실행하기

시스템 환경변수에 FLASK_APP를 설정합니다.

set FLASK_APP=superset
set SUPERSET_HOME=C:\app\superset

Linux환경 또는 openssl명령이 있는 OS환경에서 다음명령으로 SECRET_KEY를 생성합니다.

$ openssl rand -base64 42
Pghcquj5uCqPAearrMFm4/sAWcFqCIUT6HgfYzkSIPrE0UB2EeHpaG1O

C:\app\superset\venv\superset_config.py에 다음과 같이 선언을 하면 C:\app\superset\venv\Lib\site-packages\superset\config.py정의된 내용을 덮어 씁니다.

SECRET_KEY = 'Pghcquj5uCqPAearrMFm4/sAWcFqCIUT6HgfYzkSIPrE0UB2EeHpaG1O'
BABEL_DEFAULT_LOCALE = "ko"
LANGUAGES = {
    "en": {"flag": "us", "name": "English"},
#    "es": {"flag": "es", "name": "Spanish"},
#    "it": {"flag": "it", "name": "Italian"},
#    "fr": {"flag": "fr", "name": "French"},
#    "zh": {"flag": "cn", "name": "Chinese"},
#    "ja": {"flag": "jp", "name": "Japanese"},
#    "de": {"flag": "de", "name": "German"},
#    "pt": {"flag": "pt", "name": "Portuguese"},
#    "pt_BR": {"flag": "br", "name": "Brazilian Portuguese"},
#    "ru": {"flag": "ru", "name": "Russian"},
    "ko": {"flag": "kr", "name": "Korean"},
#    "sk": {"flag": "sk", "name": "Slovak"},
#    "sl": {"flag": "si", "name": "Slovenian"},
#    "nl": {"flag": "nl", "name": "Dutch"},
}
SQLALCHEMY_DATABASE_URI = 'postgresql://root:root@192.168.1.86:5432/root'

(venv) C:\app\superset\venv\Scripts> superset db upgrade
(venv) C:\app\superset\venv\Scripts> superset fab create-admin
(venv) C:\app\superset\venv\Scripts> superset load_examples
(venv) C:\app\superset\venv\Scripts> superset init
(venv) C:\app\superset> superset run -p 8088 --with-threads --reload --debugger

INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Running on http://127.0.0.1:8088

위 메시지처럼 http://127.0.0.1:8088에서만 접속이 가능합니다. superset run —host 192.168.1.86 p 8088 –with-threads –reload –debugger으로 로컬 머신이외에서 접속하려하면 superset flask_wtf.csrf:The CSRF session token is missing.와 같은 에러가 발생합니다.
(venv) C:\app\superset> pip install waitress
(venv) C:\app\superset> waitress-serve --port 8088 --call "superset:create_app"

댓글

제목과 URL을 복사했습니다