# Amundsen Installation Document > [name=謝朋諺(Adam Hsieh)] > [time=Fri, Apr 15, 2022 10:00 AM] ###### tags: `Data Catalog` `Environment` ![](https://img.shields.io/badge/Amundsen-0.26.2-orange.svg) ![](https://img.shields.io/badge/neo4j-3.5.26-red.svg) ![](https://img.shields.io/badge/elasticsearch-8.0.0-blue.svg) ![](https://img.shields.io/badge/amundsenatlastypes-1.1.0-yellow.svg) --- ## Reference [Amundsen Homepage Document](https://www.amundsen.io/amundsen/installation/) [Amundsen Github](https://github.com/amundsen-io/amundsen.git) --- ## Outline > [TOC] ## Before Installation... - 本文所架設的機器為 VM 規格是 Ubuntu 20.04、64GB RAM、4 Core(2.6GHz)CPU。 - 在 Github 中的 [Releases](https://github.com/amundsen-io/amundsen/releases) 可以找到各個版本的下載連結,在這次安裝文件中是使用 0.26.2 版本。 或是也可以用官方推薦的直接 git clone 下來:```git clone --recursive https://github.com/amundsen-io/amundsen.git``` - 目錄裡有兩份 docker-compose file 是我們會用到的,分別是 ```docker-amundsen.yml``` 跟 ```docker-amundsen-atals.yml```。 ```docker-amundsen.yml```是以 neo4j 作為後端儲存 metadata 與 document,```docker-amundsen-atals.yml``` 則是以 atlas 為後端。 :::info :bulb: Neo4j 本身是 Graph Database,有關聯圖單沒有 Lineage 功能。 :bulb: Atlas 支援 Lineage 不過社群比較小,能查詢的資料也相對較少,而且 Atlas 新功能的開發週期都會比較久,啟動服務的時候也需要等待比較久的時間。 :pencil: 至於要選擇什麼後端可參考:[How to select between Neo4j and Atlas as backend for Amundsen?](https://www.amundsen.io/amundsen/faq/#why-atlas) ::: - 如果需要灌入資料,```databuilder``` 裡面是 ETL 的套件跟範例,等等安裝完之後可以執行並灌入假資料放進資料庫,以便試用是否安裝成功。 # Installation ## Install Neo4j Version 1. 強烈先建議編輯 ```docker-amundsen.yml``` 檔案,在 elasticsearch 的 service 下新增 Memory 上限,否則啟動 Container 會吃一半的 Memory 資源,如: ```yaml= elasticsearch: image: elasticsearch:8.0.0 container_name: es_amundsen # This Part # ========================================== deploy: resources: limits: memory: 16G # ========================================== ports: - 8200:9200 volumes: - es_data:/usr/share/elasticsearch/data networks: - amundsennet ulimits: nofile: soft: 65536 hard: 65536 environment: - discovery.type=single-node - xpack.security.enabled=false ``` :::warning :rotating_light: 其他設定得部分可以自己決定要不要更改,我這邊還有更改的是 Port, Container Name 跟 Service Name,主要原因是如果想在同一台 Server 下裝兩種後端來做比較,他們的 Service Name 因為是同個名稱所以會互相蓋掉,Port 也會互相卡到彼此。 ::: 2. 執行 Docker-Compose: ```shell docker-compose -f docker-amundsen.yml up -d ``` 3. Ingest sample data: ```shell cd databuilder python3 -m venv venv source venv/bin/activate pip3 install --upgrade pip pip3 install -r requirements.txt python3 setup.py install python3 example/scripts/sample_data_loader.py ``` :::success :bulb: 小提醒,如果你的 Port 有更動的話或者有指定 IP 請記得在 ```sample_data_loader.py``` 也必須編輯唷! ::: 4. 在網頁上確認是否有架設成功,如果沒有更動,預設 Port 應該是 5000: ![](https://i.imgur.com/bEnblOL.png) 搜尋 ```test``` 可以得到所有包含 test 字串的 database, table, column: ![](https://i.imgur.com/pSblBom.png) 點進去可以看到有關那份 Table Metadata 文件: ![](https://i.imgur.com/7wM3uyt.png) 5. 確認 Neo4j 後端的資料關聯圖預設 Port 為 7474,基本上不需要權限就可以登入,點左上角的 Database 可以看到有很多類型的 Node Labels 可以選擇: ![](https://i.imgur.com/0pTR85b.png) 如果後端的關聯圖跟前端的文件都可以顯示基本上應該就架設成功了! ## Install Atlas Version 1. 除了與上述 Neo4j 版本一樣要修改 Memory 以外,請記得一定要在 elasticsearch 再修改一部份: ```yaml=62 elasticsearch: # 建議可改成 8.0.0 版本比較新 image: elasticsearch:6.8.13 container_name: es_amundsen_atlas deploy: resources: limits: memory: 16G ports: - 9200:9200 volumes: - es_data_atlas:/usr/share/elasticsearch/data networks: - amundsennet_atlas ulimits: nofile: soft: 65536 hard: 65536 # This Part # ========================================== environment: - discovery.type=single-node - xpack.security.enabled=false # ========================================== ``` 這邊在 Neo4j 的版本有加,但不知為何 Atlas 版本沒有加入,會因此出錯,加入之後就可以避過 Security 的 Error。 2. 另外註解這邊建議刪掉,原生 Dockerfile build 完之後會沒辦法接 Atlas 後端,需要用 build 好的 image 才能使用,如下: ```yaml=14 amundsensearch: # ========================================== # build: # context: . # dockerfile: Dockerfile.search.public # ========================================== image: amundsendev/amundsen-search:2.11.1 container_name: amundsensearch depends_on: - elasticsearch ports: - 5001:5001 environment: - PROXY_ENDPOINT=es_amundsen_atlas networks: - amundsennet ``` 3. 執行 Docker-Compose: ```shell docker-compose -f docker-amundsen-atlas.yml up -d ``` 4. Ingest sample data: ```shell cd databuilder python3 -m venv venv source venv/bin/activate pip3 install --upgrade pip pip3 install -r requirements.txt python3 setup.py install python3 example/scripts/sample_data_loader_atlas.py ``` 這邊也是如果有更改 port 記得要在程式碼裡修改。 5. Atlas 後端預設 Port 為 21000,另外帳密預設是 admin/admin: ![](https://i.imgur.com/oUvzIdF.png) 後端這邊中間搜尋 Bar 也可以檢索你要的 Entities: ![](https://i.imgur.com/XOR8Gar.png) 另外與 Neo4j 最大不同應該就是他可以繪製 Lineage: ![](https://i.imgur.com/cQl7TI0.png) 6. 至於 Amundsen 的文件版面與 Neo4j Version 相同,預設 Port 也是 5000,這邊就不多做介紹了。