Mac-Installation und Ausführung von Superset und Fehlerbehebungsprozess

einführen

Apache Superset ist eine moderne Business-Intelligence-Webanwendung der Enterprise-Klasse. Es ist schnell, leichtgewichtig, intuitiv und voller Optionen, die es Benutzern aller Erfahrungsstufen erleichtern, ihre Daten zu erkunden und zu visualisieren, von einfachen Kreisdiagrammen bis hin zu hochdetaillierten Geodatendiagrammen von Deck.gl.

Installieren

brew install readline pkg-config libffi openssl mysql postgresql@14
  • Konfigurationsumgebungsvariablen
    LDFLAGS und CFLAGS müssen festgelegt werden, um bestimmte Python-Pakete korrekt zu erstellen. Sie können diese Variablen mit dem folgenden Befehl exportieren
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CFLAGS="-I$(brew --prefix openssl)/include"
  • Klonen Sie den Code lokal
git clone https://github.com/apache/superset.git
cd superset
  • Installieren
 # Create a virtual environment and activate it (recommended)
python3 -m venv venv # setup a python3 virtualenv
source venv/bin/activate

# Install external dependencies
pip install -r requirements/testing.txt

# Install Superset in editable (development) mode
pip install -e .

# Initialize the database
superset db upgrade

# Create an admin user in your metadata database (use `admin` as username to be able to load the examples)
superset fab create-admin

# Create default roles and permissions
superset init

# Load some data to play with.
# Note: you MUST have previously created an admin user with the username `admin` for this command to work.
superset load-examples    #optional

#Before running back-end services, front-end dependencies need to be downloaded and packaged, and js will be automatically loaded when running the back-end service

#install node
brew install node

#Install the domestic image source
npm install -g cnpm --registry=https://registry.npm.taobao.org

#install client dependencies
cd superset-frontend
cnpm i

# Start the Flask dev web server from inside your virtualenv.
# Note that your page may not have CSS at this point.
# See instructions below how to build the front-end assets.
superset run -p 8088 --reload --debugger --debug

Während der Installation und des Betriebs aufgetretene Probleme

1. Beim Ausführen von Superset Load-Examples wird ein Fehler gemeldet und zum Herunterladen ist ein Zertifikat erforderlich.

Lösung:
(1) Wenn der Fehler auftritt, dass das SSL-Zertifikat nicht abgerufen werden kann, laden Sie den Quellcode herunter, der zum Anzeigen des Beispiels verwendet werden muss, und legen Sie ihn lokal ab. und ändern Sie es dann selbst, ohne es aus der Ferne abzurufen. Die Pfaddatei: superset/examples/helpers.py
(2) Oder durch Importieren des Stammzertifikats von Fügen Sie diesen Code dem lokalen Stammverzeichnis hinzu, < a i=4>liunx-Konfigurationszertifikat

2. Bei der Superset-Installation müssen Sie die Umgebungsvariable SUPERSET_SECRET_KEY konfigurieren, andernfalls wird das Laden des Dienstes verweigert
Weitere Einzelheiten finden Sie im offiziellen Super-Konfigurationssatz

 # Flask App Builder configuration
# Your App secret key will be used for securely signing the session cookie
# and encrypting sensitive information on the database
# Make sure you are changing this key for your deployment with a strong key.
# Alternatively you can set it with `SUPERSET_SECRET_KEY` environment variable.
# You MUST set this for production environments or the server will not refuse
# to start and you will see an error in the logs accordingly.
SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'

Lösung 1:

#生成加密密钥
openssl rand -base64 42

#使用openssl生成的密钥,临时加载环境变量
export SUPERSET_SECRET_KEY='xxxxxxxxx'

Lösung 2:
Konfigurieren Sie SUPERSET_SECRET_KEY selbst in superset/config.py
Fügen Sie hier eine Bildbeschreibung ein

Ersetzen Sie lokales MySQL

#安装pymysql依赖
pip install pymysql

Ändernsuperset/config.pys MySQL-Verbindung
![Bildbeschreibung hier einfügen]( https://img-blog.csdnimg.cn/511c3bd1a3d5499da5e00d65afa9a062.png
Fügen Sie hier eine Bildbeschreibung ein
Hinweis: Beim Herstellen einer Verbindung zu MySQL 8.0 oder höher wird ein Fehler gemeldet

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)")

Ursachenanalyse:

MySQL unterstützt Socket- und TCP/IP-Verbindungen. Die Funktion der Datei mysql.sock besteht darin, eine Verbindung zu localhost herzustellen, einer sogenannten Unix-Domänen-Socket-Datei. Nachdem die Socket-Datei gelöscht wurde, können lokale Clients keine Verbindung mehr herstellen. Der Ordner /tmp ist eine temporäre Datei und kann jederzeit gelöscht werden.

Dann ist der Parameter-Socket [mysqld] in der Konfigurationsdatei my.cnf festgelegt, der Parameter-Socket [client] jedoch nicht, und ein Fehler wie dieser ERROR wird angezeigt
2002 (HY000): Verbindung zum lokalen MySQL-Server über Socket
'/tmp/mysql.sock' (2) nicht möglich

Ein weiterer Punkt ist, dass, wenn mysql.sock im Verzeichnis / tmp festgelegt ist und das Client-Segment versehentlich gelöscht wird, das Datenbank-Anmeldeproblem (einschließlich des Neustarts der Datenbank) nicht beeinträchtigt wird. Nach dem Neustart des Servers ist tmp jedoch ein temporäres Verzeichnis, mysql.sock Wenn die Datei gelöscht wird, wird die Anmeldung beeinträchtigt.

Methode 1:
Vim /etc/my.cnf ändern
Fügen Sie hier eine Bildbeschreibung ein

Starten Sie MySQL neu

brew services restart mysql

Methode 2:
Fügen Sie unix_socket=/tmp/mysql.sock hinzu, wenn Sie eine Verbindung zu pymysql herstellen, wie oben gezeigt
Fügen Sie hier eine Bildbeschreibung ein

Schließlich hat sich der Autor viel Mühe gegeben, diesen Artikel zu vervollständigen. Es war nicht einfach, ihn zu finden. Wenn er Ihnen gefällt, verdreifachen Sie ihn bitte, vielen Dank! !

Supongo que te gusta

Origin blog.csdn.net/weixin_49319422/article/details/133169797
Recomendado
Clasificación