開源元數據管理平臺Datahub最新版本0.10.5——安裝部署手冊(附離線安裝包)

大家好,我是獨孤風。

開源元數據管理平臺Datahub近期得到了飛速的發展。已經更新到了0.10.5的版本,來諮詢我的小夥伴也越來越多,特別是安裝過程有很多問題。本文經過和羣裏大夥伴的共同討論,總結出安裝部署Datahub最新版本的部署手冊,希望能幫助到大家。

文章較長,建議收藏點贊在看後,再仔細閱讀。具體安裝問題,以及安裝包獲取,可以在文末申請加入Datahub學習羣進行諮詢。

本文檔版權歸大數據流動所有,抄襲必究。

正文開始:

本文所使用操作系統是CentOS7。這也是大多數生產機器的選擇。

本文所選擇的Python的版本爲3.8.3,Docker版本爲20.10.0,都可以很好的支持Datahub的安裝。

Datahub下載的最新0.10.5版本,這是目前功能最完善也最穩定的版本。 考慮到有些同學沒有類似的CentOS環境,本文將從虛擬機搭建,CentOS 7安裝,Python3安裝, Docker安裝,Datahub安裝,啓動Datahub六部分來進行,並將安裝過程中遇到的問題進行整理。 文章目錄結構如下:

一、虛擬機搭建

要想有一個本地穩定的調試環境,就必須安裝虛擬機,本文使用的是Win10系統的Hyper-V管理器,也 是一個系統自帶的虛擬機工具,非常的方便。 安裝之前先下載一個CentOS鏡像,我這邊用的是CentOS-7-x86_64-DVD-2009.iso。可以去官網下載: https://www.centos.org/download/。 網速不好的同學可以加入Datahub學習交流羣,獲取Datahub所有安裝資料下載包。 加入方式,關注 大數據流動,後臺回覆 “加羣”。 首先,打開Hyper-V管理器。可以搜索一下,有的話直接打開。沒有的話是系統默認沒有開啓這個服務。

在這裏選擇把Hyper-V的管理工具和平臺都打開。

然後我們打開Hyper-V管理工具,新建一個虛擬機。需要指定名稱和位置,需要保證安裝位置有足夠大的空間。

選擇虛擬機代數,選第一代。分配內存,這個後面也是可以修改的。考慮到Datahub的基本需要,還有電腦的配置,我這裏選擇 4096MB。 (補充一下,datahub建議內存就是4GB,所以這裏我後來做了修改,建議5GB以上)

隨後選好硬盤,網絡。導入鏡像。

完成虛擬機創建。

這樣的話,虛擬機安裝完成,我們可以有一個穩定的環境來運行datahub了。但是目前這個虛擬機裏邊是沒有操作系統的,需要安裝。

二、CentOS 7安裝

啓動Hyper-V管理器。 打開剛剛新建的虛擬機,然後點擊啓動。選擇 install centos 7 正常安裝 CentOS 7 的流程。

隨後選擇語言,時區等等。安裝過程中設置一下密碼。並牢記。

安裝完成之後點擊重啓。CentOS7 安裝完成,可以正常使用了!

三、Python3安裝

由於CentOS7默認的python環境是python2,這裏我們需要去安裝一下Python3,來支持Datahub。

可以通過如下路徑下載,並解壓Python3安裝包。網絡不佳的同學,可以直接用我的安裝包,已經下載好。

wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
tar -zxvf Python-3.8.3.tgz

隨後需要下載一堆依賴,不然安裝Python3會報各種問題。

yum install -y zlib-devel bzip2-devel \
openssl-devel ncurses-devel epel-release gcc gcc-c++ xz-devel readline-devel \
gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel

隨後進行Python3的編譯,如果包都安裝完全,不會出問題。

mkdir /usr/local/python3
cd Python-3.8.3
./configure --prefix=/usr/local/python3
make && make install

有如下顯示證明安裝成功。有一點錯誤都是不對的,趕緊解決。

make install此過程較漫長,耐心等待,此時python3已經安裝成功,我們進行一些基本設置就可以了。

修改系統默認python指向,默認pip指向,注意,這樣改完會系統yum不可用,需要修復一下。

 rm -rf /usr/bin/python 
 ln -s /usr/local/python3/bin/python3 /usr/bin/python 
 rm -rf /usr/bin/pip 
 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip 
 python -V 
 pip -V

四、 Docker安裝

首先下載docker安裝包,同樣,網絡不佳的同學,可以直接用我的安裝包,已經下載好。上傳上去就行了。

#下載docker-20.10.0包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.0.tgz
#下載docker-compose對應系統的包
https://github.com/docker/compose/releases/download/1.29.1/docker-compose-Linuxx86_64

解壓安裝docker。

tar -zxvf docker-20.10.0.tgz
#將解壓出來的docker文件內容移動到 /usr/bin/ 目錄下
cp docker/* /usr/bin/
#查看docker版本
docker version
#查看docker信息
docker info

配置docker。

配置Docker開機自啓動服務
#添加docker.service文件
vi /etc/systemd/system/docker.service
#按i插入模式,複製如下內容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues
still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
安裝docker-compose
將docker-compose上傳到服務器/usr/local/bin/裏面:
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker
containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
#添加文件可執行權限
chmod +x /etc/systemd/system/docker.service
#重新加載配置文件
systemctl daemon-reload
#啓動Docker
systemctl start docker
#查看docker啓動狀態
systemctl status docker
#查看啓動容器
docker ps
#設置開機自啓動
systemctl enable docker.service
#查看docker開機啓動狀態 enabled:開啓, disabled:關閉
systemctl is-enabled docker.service

安裝docker-compose

#下載docker-compose到/usr/local/bin/目錄。
# 給docker compose 目錄授權
sudo chmod +x /usr/local/bin/docker-compose
# 查看一下version,顯示有版本號那就說明安裝成功了
docker-compose version

version一下,有這樣的顯示就對了。

五、Datahub安裝

依賴安裝,Datahub需要依賴大量的python包,好在pip都有集成,可以很方便安裝。當然網速是個問題,建議選擇合適的源。

先檢查環境

python3 -m pip uninstall datahub acryl-datahub || true # sanity check - ok if it
fails

檢查環境 收到這樣的提示說明沒有問題。

WARNING: Skipping datahub as it is not installed.

安裝依賴包。

pip3 install acryl-datahub==0.10.5

查看版本情況。

python -m datahub version

顯示爲0.10.5.

鏡像下載,接下來是下載鏡像,我們知道datahub的組件依賴較多,一共有11個,所以需要用docker先把鏡像pull下來。

鏡像較大,一共十幾個GB,需要耐心下載。鏡像是通用的,可以直接load進去,也可以用下載好的鏡像包。我這邊已上傳雲盤。

查看下配置文件,在github中 linkedin/datahub/master/docker/quickstart/docker-composewithout-neo4j.quickstart.yml。

這裏詳細記錄了鏡像的版本及獲取。

隨後進行鏡像拉取。

docker pull confluentinc/cp-kafka:7.4.0
docker pull confluentinc/cp-zookeeper:7.4.0 
docker pull elasticsearch:7.10.1
docker pull mysql:5.7
。。。

一定按照配置文件耐心下載下來。

最後執行docker image,要保證鏡像都是完整的。

六、啓動Datahub

萬事具備,就差啓動。

啓動命令如下,這個過程可能會卡住,因爲要去github拉那個配置來啓動。

python -m datahub docker quickstart 
docker-compose -p datahub

所以我們可以選擇本地讀配置文件啓動的方式。

python -m datahub docker quickstart --quickstart-compose-file ./docker-composewithout-neo4j.quickstart.yml
docker-compose -p datahub -f ./docker-compose-without-neo4j.quickstart.yml up -

如果啓動失敗,需要排查下鏡像是不是有問題。我在這塊遇到了很多坑~ 由於網絡問題,很有可能導致打的tar包是一個不完整的包。 可以單獨啓動容器調試一下,命令如下:

docker run --name kafka -d confluentinc/cp-kafka:7.4.0

還有一些docker命令

查看啓動的容器
docker ps
停止容器
docker stop confluentinc/cp-kafka:7.4.0

執行命令後,如果沒有報錯證明沒有問題。

訪問IP:9002,啓動成功啦!!

爬坑記錄

1、ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL

urllib3在導入時發生ImportError,是由於urllib3 v2.0只支持OpenSSL 1.1.1及以上版本,而當前系統中的ssl模塊使用的OpenSSL版本低於1.1.1導致的。

如何解決
解決方法有以下幾種:

  1. 升級OpenSSL到1.1.1或更高版本。
  2. 使用urllib3 v1.x版本。

2、ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock

docker沒有正常啓動,按照docker自啓動進行配置。

3、提示 Fetching docker-compose file https://raw.githubusercontent.com/datahub-project/datahub/master/docker/quickstart/docker-compose-without-neo4j.quickstart.yml from GitHub 卡住了

連接github網絡發生問題,可以下載下來配置文件,或者用我給大家準備好的。

4、requests.exceptions.SSLError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /datahub-project/datahub/master/docker/quickstart/docker-compose-without-neo4j.quickstart.yml

同樣的問題,重試次數太多,連接github網絡發生問題。

5、安裝python報錯,miss 。。。

大概率是依賴包沒安裝全,用yum命令重新安裝下。

加羣方式

關注大數據流動,後臺回覆“Datahub學習資料”,申請加入Datahub學習資料羣。

先聲明一下,爲防止抄襲和廣告黨,加入學習羣收費。加入羣后禁止一切廣告,羣裏定期分享Datahub相關資料,並將長期分享Datahub各版本安裝包,一次進羣,獲得永久權益。

但如果是學生黨,不勉強,備註一下,可以直接申請進入。

感謝大家的支持,非誠勿擾~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章