先發一個官方的鏈接
https://dolphinscheduler.apache.org/zh-cn/docs/1.2.0/user_doc/standalone-deployment.html
1、基礎軟件就位
這裏用的單機模式,必須的軟件工具有
- PostgreSQL (8.2.15+) or Mysql (5.7系列) : 兩者任選其一即可
- JDK (1.8+) : 必裝,請安裝好後在/etc/profile下配置 JAVA_HOME 及 PATH 變量
- ZooKeeper (3.4.6+) :必裝
1.1 解決 JDK的問題
先解決JDK的問題,這裏因爲用的Ubuntu的操作系統,版本 16.04,屬於 Dolphin Scheduler支持的 Ubuntu 的最低版本,該版本自帶了 Java 的環境,因此,需要找到 Java 的安裝目錄,後面的步驟需要用到:
先用which 語法定位 java的位置
which java
得到的結果爲
/usr/lib/java
這裏位置的 java 不是一個目錄,是一個軟連接,因此,需要找到軟連接對應的位置
在該目錄下執行
ls -l /usr/lib/java
或者
ls /usr/lib/java -all
結果如下:
lrwxrwxrwx 1 root root 22 8月 13 2019 java -> /etc/alternatives/java
這裏找到的還是一個軟連接,再次使用 ls -l 命令
lrwxrwxrwx 1 root root 46 8月 13 2019 java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
這樣的話,java 的位置就找到了
或者也可以用這個方法
which javac
返回
/usr/bin/javac
然後
file /usr/bin/javac
返回
/usr/bin/javac: symbolic link to `/etc/alternatives/javac'
然後
file /etc/alternatives/javac
返回
/etc/alternatives/javac: symbolic link to `/usr/lib/jvm/java-6-sun/bin/javac'
然後
file /usr/lib/jvm/java-6-sun/bin/javac
返回
/usr/lib/jvm/java-6-sun/bin/javac: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
到此爲止,說明路徑是 /usr/lib/jvm/java-6-sun/bin/
找到Java的安裝目錄之後,就可以在 /etc/profile 中設置環境變量了
注意:環境變量修改之後要用 resource /etc/profile 命令生效
用 echo $JAVA_HOME 檢查修改後的環境變量是否生效
1.2 安裝Mysql
這個基本都有現成的博文作爲參照,列舉一下大致的步驟
解壓 --> 創建Data目錄 --> 創建mysql用戶,設置相關目錄的owner --> 配置 my.cnf 配置文件 --> 初始化安裝(同時獲取密碼)
--> 初始密碼登錄,進行密碼修改 --> 允許遠程連接 --> 設置開機自啓動 --> flush privileges --> 退出MySQL
注意幾個問題:
設置目錄的權限(用到遞歸): chown mysql:mysql -R 【mysql root path】
配置MySQL的環境變量不是必須的,不過設置好了操作會方便一些
mysql的狀態查看:
systemctl status mysql.service
類似的用法還有:
systemctl status nginx.service 查看nginx的運行狀態
MySQL啓動失敗問題解決:
切換Linux用戶爲 mysql,在mysql/bin 目錄下執行如下命令:
./mysqld start --user=mysql
1.3 安裝 Zookeeper
1、按照教程操作即可,需要注意的是,zookeeper從3.5開始,Zookeeper AdminServer 默認使用8080端口,如果發生端口衝突,這需要在配置文件 zoo.cfg 中設置一下,比如: admin.serverPort=9001
2、啓動的時候遇到了一個問題,找不到如下的類:
org.apache.zookeeper.server.quorum.QuorumPeerMain
原因:從3.5.5版本開始,帶有bin名稱的包纔是我們想要的下載可以直接使用的裏面有編譯後的二進制的包,而不帶bin的tar.gz的包裏面是隻是源碼的包無法直接使用。
這個問題比較噁心,需要注意
zookeeper服務的啓停:bin目錄下
sh ./zkServer start
sh ./zkServer stop
1.4 Python工具
版本要 3.X的版本,要裝 pip 工具和 kazoo
安裝 pip 和 kazoo:
#centOS請使用
sudo yum -y install python-pip;
#ubuntu請使用
sudo apt-get install python-pip
#安裝 kazoo
sudo pip install kazoo;
注意:如果yum沒找到python-pip,也可以通過下面方式安裝
sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py # 如果是python3,使用sudo python3 get-pip.py
#然後
sudo pip install kazoo;
版本查看:
python --version
pip --version
踩到的坑:
1、不知道Ubuntu自帶的Java裝在哪裏了
2、MySQL安裝的過程中,目錄權限的問題未正確處理好,期間對 【mysql root path】的 owner 進行了變更,但變更不徹底,引出了Bug,錯誤日誌記錄如下:
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
[ERROR] InnoDB: Cannot open '/home/kotei/AR_Map/mysql-5.7.23-linux-glibc2.12-x86_64/data/ib_buffer_pool' for reading: Permission denied
[ERROR] Failed to create file(file: './auto.cnf', errno 13)
3、zookeeper的壓縮包需要下載帶有 bin 的包
收穫:
1、用which 命令和 file 命令對軟連接進行追蹤,找到Java的安裝目錄
2、權限問題是Linux系統安裝工具的時候很容易出現的問題,需要注意