mac安装运行superset及踩坑解决过程

2023-09-22 15:29:53

介绍

Apache Superset 是一个现代的企业级商业智能 Web 应用程序。它快速、轻量、直观,并加载了各种选项,使所有技能的用户都可以轻松探索和可视化他们的数据,从简单的饼图到高度详细的 Deck.gl 地理空间图表。

安装

  • 首先安装自制homebrew安装 管理器,然后运行以下命令:
brew install readline pkg-config libffi openssl mysql postgresql@14
  • 配置环境变量
    需要设置 LDFLAGS 和 CFLAGS 才能正确构建某些 Python 包。您可以使用以下命令导出这些变量
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CFLAGS="-I$(brew --prefix openssl)/include"
  • 克隆代码到本地
git clone https://github.com/apache/superset.git
cd superset
  • 安装
 # 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

安装运行遇到的问题

1. 执行superset load-examples报错需要证书才能拉下来

解决方案:
(1)报错ssl证书拉取不了, 将需要用到展示示例源码下载放到自己的本地,然后不通过远程拉取,自行修改该路径文件:superset/examples/helpers.py
(2)或者通过将该代码的根证书导入到本地根,liunx配置证书

2. 执行superset安装时需要配置SUPERSET_SECRET_KEY环境变量,不然拒绝加载服务
更多详情参考官方超级配置集

 # 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'

解决方式1:

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

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

解决方式2:
自行在 superset/config.py配置SUPERSET_SECRET_KEY
在这里插入图片描述

替换本地mysql

#安装pymysql依赖
pip install pymysql

修改 superset/config.py的mysql连接
![在这里插入图片描述](https://img-blog.csdnimg.cn/511c3bd1a3d5499da5e00d65afa9a062.png
在这里插入图片描述
注意事项:连接mysql 8.0以上报错

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

原因分析:

MySQL支持socket和TCP/IP连接。而mysql.sock文件的作用是连接localhost,叫做Unix域套接字文件。套接字文件被删除后,本地客户就不能连接。/tmp文件夹属于临时文件,随时可能被删除。

那么my.cnf配置文件中设置了[mysqld]的参数socket,但是没有设置[client]的参数socket就会出现这样的报错ERROR
2002 (HY000): Can’t connect to local MySQL server through socket
‘/tmp/mysql.sock’ (2)

还有一点,当mysql.sock被设置在/tmp目录下,而client段被误删除并不会影响到数据库的登录问题(包括重启数据库),但是服务器重启后因为tmp为临时目录,mysql.sock文件被删除,就会影响登录。

方式一:
修改vim /etc/my.cnf
在这里插入图片描述

重启mysql

brew services restart mysql

方式二:
在pymysql连接时加上unix_socket=/tmp/mysql.sock,如上图
在这里插入图片描述

最后,此文章经过笔者不少踩坑才完成,来之不易,喜欢请三联下,谢谢!!!

更多推荐

【算法练习Day3】 移除链表元素&&设计链表&&反转链表

​​📝个人主页:@Sherry的成长之路🏠学习社区:Sherry的成长之路(个人社区)📖专栏链接:练题🎯长路漫漫浩浩,万事皆有期待文章目录移除链表元素其他问题设计链表其他问题反转链表其他问题总结:移除链表元素203.移除链表元素-力扣(LeetCode)链表问题大多都可以用虚拟头结点的方法,使链表的插入和删除操

实施主品牌进化战略(三):建立产品竞争与进化体系

产品早晚都会抵达成熟期,所以建立一个有效的产品竞争与进化体系,才能保障产品更新迭代与时俱进在跨周期中实现增长和主品牌进化。同时这也是工业制造、汽车制造、软件开发、食品饮料、人工智能等行业强者穿越周期的战略共性。3M:以超级技术打造产品竞争与进化体系3M公司,诞生于1902年,以胶粘技术起家,后发展出光学、医疗、研磨以及

写在2023,转行软件测试的我后悔了吗?

前言朋友,作为一个曾经从机械转行到IT的行业的过来人,已在IT行业工作5年,分享一下我的经验,供你参考。讲真,现在想通过培训班培训几个月就进入IT行业,越来越来难了;如果是在2018年以前,还有机会,一方面,那个时候IT行业还不算卷,需求还是蛮大的;但最近这一两年,由于大环境不好,很多互联网大厂都开始裁员了,连科班出身

计算机网络与技术——物理层

😊计算机网络与技术——物理层👻物理层的基本概念👻数据通信基础知识🚢数据通信系统的模型🚢信道的基本概念🚢信道的极限容量👻物理层下面的传输媒体🔊导引型传输媒体🔊非导引型传输媒体👻信道复用技术🥏频分复用、时分复用和统计时分复用🥏波分复用🥏码分复用👻宽带接入技术☃️ADSL技术☃️光纤同轴混合网(H

强强联合,波卡生态正成为物联网赛道关键入口

自5月23日,波卡平行链之一Peaq宣布将特斯拉和去中心化汽车共享应用引入Polkadot生态系统后,其以打造Polkadot上Web3汽车共享的未来为目标,开启物联网发展的新时代;而在近期,Peaq又表示将在9月前往德国慕尼黑IAAMOBILITY2023,作为L1底层架构参与特斯拉和捷豹汽车的现场演示。在这场展示活

什么是边缘计算网关?

边缘计算网关(简称边缘网关)将云端功能扩展到本地的边缘设备,使边缘设备能够快速自主地响应本地事件,提供低延时、低成本、隐私安全、本地自治的本地计算服务。同时所有服务都以Docker镜像方式安装,真正做到了跨平台,部署快捷,易管理。在链路安全,应用场景,云开发组件等也都做到了非常好的支持。涂鸦提供了丰富的物联网协议,客户

985、211高校分布

985、211高校分布985211985全国985大学有39所1、北京市(8所)北京大学、中国人民大学、清华大学、北京航空航天大学、北京理工大学、中国农业大学、北京师范大学、中央民族大学2、天津市(2所)南开大学、天津大学3、辽宁省(2所)大连理工大学、东北大学4、吉林省(1所)吉林大学5、黑龙江省(1所)哈尔滨工业大

批量调整视频饱和度和色度,提升你的视频剪辑效率!

作为一名视频剪辑师,你是否经常为如何高效地调整多个视频的饱和度和色度而烦恼?现在,我们为你提供了一种简单、快速、准确的方法,帮助你轻松解决这个问题!首先我们要进入好简单批量智剪,并在左侧的板块栏里选择“任务剪辑”第二步,进入板块之后,并点击“添加视频”在弹出来的文件框里,将要调整的视频都一一导入。第三步,导入后,所有视

电脑入门:怎么进入路由器设置

怎么进入路由器设置在浏览器地址栏上输入路由器的出厂默认IP地址(192.168.0.1)后按回车。在登录窗口中输入说明书上的密码,点击“Login”按钮进入宽带路由器管理设置界面。管理设置界面分为左右栏,左栏是主菜单,右边则是与之对应的设置内容。请根据自己接入的宽带类型来做出正确的选择。第一项“DynamicIPAdd

MySQL 几种导数据的方法与遇到的问题

零、说在前面MySQL导数据通常使用第三方工具和MySQL自身的工具,本文分别就这两类方法分别介绍。一、第三方工具之Navicat1.1、Navicat的“数据传输”工具打开Navicat,点击“工具”标签,找到“数据传输”,即可看到操作界面。这里不对这个工具本身做过多介绍,侧重点在于工具中的一些配置选项的含义的介绍上

LeetCode每日练习之链表常见题目

1.两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。1.1思路哈希和集合,先将一个链表全部存到Map里,然后一边遍历第二个链表,一边检测Hash是否存在当前结点,如果有交点,那么一定能检测出来,使用两个栈,分别将两个链表入栈,然后分别出栈对比,如果相等就出栈,知道找到最晚出栈的那组,拼接两个字符串,将两

热文推荐