Apache superset(0.36.0)pip和源碼安裝

一.前言

記錄最新穩定版superset的安裝過程。第一種是pip 安裝,方便快捷。第二種是github上源碼安裝,優點是可以進行二次開發。我是用anaconda創建虛擬環境,之後在虛擬環境中安裝的superset。

#創建虛擬環境
conda create -n superset python=3.6
#激活環境
soure activate superset

二.版本

  • python 3.6
  • superset 0.36.0

三.pip安裝superset

1.步驟:

# 1.安裝 superset
pip install apache-superset

# 2.初始化數據庫
superset db upgrade

# 3.創建用戶並按提示設置密碼
superset fab create-admin

# 4.加載官方例子
superset load_examples

# 5.初始化角色和權限
superset init

# 6.在本機8088端口運行superset
superset run -p 8088 

遠端運行superset時,要寫上主機host的iP地址。第6步改成 

superset run -h host -p 8088

之後打開 host:8088 就可以進入superset了。

 

2.問題

ERROR:load_examples時報403 ERROR.
原因:examples數據在github上,內網連不上github。
解決:

  • 1.先從github下載examples-data-master.zip。

  • 2.將examples-data-master.zip解壓到/home/ubuntu/anaconda3/envs/superset3/lib/python3.6/site-packages/superset/examples-data-master文件夾下

  • 3.修改/home/ubuntu/anaconda3/envs/superset3/lib/python3.6/site-packages/superset/examples/helpers.py配置文件。將原來的BASE_URL註釋掉,新增自己下載的文件路徑。

#BASE_URL = "https://github.com/apache-superset/examples-data/blob/master/"
BASE_URL = "/home/ubuntu/anaconda3/envs/superset3/lib/python3.6/site-packages/superset/examples-data-master/"
  •  4.重新運行 superset load_examples

四.源碼安裝superset.

之前的superset是0.28.1,網上有很多教程,但這次是對新版superset0.36.0的進行二次開發,源碼安裝時遇到很多坑,還是記錄下安裝過程吧。先創建並激活虛擬環境supesetgit

conda create -n supersetgit python=3.6
soure activate supersetgit

步驟:

一. 從git下載superset0.36.0的壓縮包incubator-superset-0.36.0.zip

下載後解壓到/home/ubuntu/anaconda3/envs/superset036/lib/python3.6/site-packages/incubator-superset-0.36.0

二. 安裝擴展依賴,及開發依賴(這裏指定豆瓣源)

#進入到目錄
cd /home/ubuntu/anaconda3/envs/superset036/lib/python3.6/site-packages/incubator-superset-0.36.0

#安裝依賴
pip install -r requirements.txt -i https://pypi.douban.com/simple/

#安裝開發依賴
pip install -r requirements-dev.txt -i https://pypi.douban.com/simple/

三. 安裝superset

pip install -e .

四.初始化

#修改config.py,將數據庫改成superset036.db
SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(DATA_DIR, "superset036.db")

#初始化數據庫
superset db upgrade

#創建管理員權限和密碼
superset fab create-admin

#初始化角色和權限
superset init

#加載示例數據(內網下載不下來,方法同上章)
superset load_examples

五.安裝編譯前端文件,並進入前端開發者模式

編譯前端文件,並進入前端開發者模式 

cd /home/ubuntu/anaconda3/envs/supersetgit/lib/python3.6/site-packages/incubator-superset-0.36.0/superset-frontend
npm run build
npm run dev

這裏遇到很多問題。

error1: 經覈實發現部分文件要求的node版本要高於現有版本。下載新node

error2: 部分文件不支持linux(強制安裝即可)
npm install --no-optional --no-shrinkwrap --no-package-lock

error3: @babel/plugin-proposal-private-methods和@babel/plugin-proposal-class-properties的loose值不一致。
修改.../incubator-superset-0.36.0/superset-frontend/babel.config.js,添加兩行,將loose都設置爲true.

  plugins: [
    'lodash',
    '@babel/plugin-syntax-dynamic-import',
    //'@babel/plugin-proposal-class-properties', //這行需註釋掉。
    '@babel/plugin-proposal-optional-chaining',
    ['@babel/plugin-transform-runtime', { corejs: 3 }],
    'react-hot-loader/babel',
	['@babel/plugin-proposal-private-methods', { 'loose': true }],//新增的,將loose設爲true
	['@babel/plugin-proposal-class-properties', { 'loose': true }],//新增的,將loose設爲true
  ],

error4: TS2339: Property 'hidden' does not exist on type 'ColumnInstance<{}>'.

ERROR in /home/ubuntu/anaconda3/envs/supersetgit/lib/python3.6/site-packages/incubator-superset-0.36.0/superset-frontend/src/components/ListView/TableCollection.tsx(45,22):
TS2339: Property 'hidden' does not exist on type 'ColumnInstance<{}>'.

解決方法:修改TableCollection.tsx文件。

#修改44行,修改前
{headerGroup.headers.map(column =>
#修改後
{headerGroup.headers.map((column:any) =>


#修改82行,修改前
{row.cells.map(cell:any => {
#修改後
{row.cells.map((cell:any) => {

類似bug及解決方案:

error5:Nodemon Error: System limit for number of file watchers reached

解決方法:擴大系統監視文件的最大數量

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

 

具體步驟:



1.安裝nodejs,查看版本發現已安裝。
node --version  
v8.10.0

2.查看版本發現已安裝。
npm --version
3.5.2

3.安裝node管理工具n,安裝新node,更新對應的npm。
#安裝node管理工具n
npm install -g n

#安裝穩定版node
n stable

#查看已安裝node
n

#全局安裝npm
npm -g install [email protected]

#創建軟連接,需先刪除原來的/usr/bin/npm鏈接
ln -s /usr/local/n/versions/node/12.17.0/bin/npm /usr/bin/npm 
 
4.修改babel.config.js,添加下面兩行將loose設置爲true.
	['@babel/plugin-proposal-private-methods', { 'loose': true }],
	['@babel/plugin-proposal-class-properties', { 'loose': true }],

5.#npm永久設置成淘寶源
npm config set registry https://registry.npm.taobao.org

6.npm install -d

7.npm run build

8.npm run dev

六.運行superset.

superset run -h 0.0.0.0 -p 8087

 七.參考文章

  1. https://blog.eric7.site/2020/02/23/superset/    #superset源碼安裝
  2. https://www.jianshu.com/p/c641dcc47b48       #node管理工具n
  3. https://babeljs.io/docs/en/babel-plugin-proposal-private-methods   #error3解決方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章