目錄
- 為什么寫這篇文章?
- 環(huán)境準(zhǔn)備
- 安裝MRS 客戶端
- 安裝MySQL服務(wù)
- 1. 創(chuàng)建ECS用戶
- 2.解壓安裝包
- 3. 配置文件初始化
- 4. 啟動(dòng)數(shù)據(jù)庫(kù)
- 5.登陸,修改密碼,預(yù)置dolphinscheduler的用戶
- 安裝dolphinscheduler服務(wù)
- 1. 建立本機(jī)id免密
- 2. 修改配置參數(shù)
- 3. 將mysql 驅(qū)動(dòng)包放入lib下
- 4.創(chuàng)建元數(shù)據(jù)庫(kù)數(shù)據(jù)表
- 5. 服務(wù)安裝、啟停
- 6. 登錄系統(tǒng)
- 提交MRS任務(wù)
- 1.登錄進(jìn)入dolphinscheduler webui
- 2. 配置MRS-hive連接
- 3. 創(chuàng)建任務(wù)
為什么寫這篇文章?
- 網(wǎng)上關(guān)于DolphinScheduler的介紹很多但是都缺少了與實(shí)際大數(shù)據(jù)平臺(tái)結(jié)合的案例指導(dǎo)。
- DolphinScheduler1.x版本,2.x重構(gòu)了內(nèi)核實(shí)現(xiàn),性能提升20倍!但是因?yàn)橹貥?gòu)導(dǎo)致2.x與1.x部署過(guò)程存在差異,按照1.x部署2.x版本存在不少坑。
- 選擇輕量化、免運(yùn)維、低成本的大數(shù)據(jù)云服務(wù)是業(yè)界趨勢(shì),如果搭建DolphinScheduler再同步自建一套Hadoop生態(tài)成本太高!因此我們通過(guò)結(jié)合華為云MRS服務(wù)構(gòu)建數(shù)據(jù)中臺(tái)。
環(huán)境準(zhǔn)備
- dolphinscheduler2.0.3安裝包
- MRS 3.1.0普通集群
- Mysql安裝包 5.7.35
- ECS centos7.6
安裝MRS 客戶端
MRS客戶端提供java、python開發(fā)環(huán)境,也提供開通集群中各組件的環(huán)境變量:Hadoop、hive、hbase、flink等。
參見登錄ECS安裝集群外客戶端
安裝MySQL服務(wù)
1. 創(chuàng)建ECS用戶
為了方便數(shù)據(jù)庫(kù)管理,對(duì)于安裝的MySQL數(shù)據(jù)庫(kù),生產(chǎn)上建立了一個(gè)mysql用戶和mysql用戶組:
# 添加mysql用戶組 groupadd mysql # 添加mysql用戶 useradd -g mysql mysql -d /home/mysql # 修改mysql用戶的登陸密碼 passwd ****
2.解壓安裝包
``` cd /usr/local/ tar -xzvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz # 改名為mysql mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql ```
賦予用戶讀寫權(quán)限
chown -R mysql:mysql mysql/
3. 配置文件初始化
1. 創(chuàng)建配置文件my.cnf
``` vim /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid #不區(qū)分大小寫 lower_case_table_names = 1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION max_connections=5000 default-time_zone = '+8:00' ```
2. 初始化log文件,防止沒有權(quán)限
``` #手動(dòng)編輯一下日志文件,什么也不用寫,直接保存退出 cd /var/log/ vim mysqld.log :wq 退出保存 chmod 777 mysqld.log chown mysql:mysql mysqld.log ```
3. 初始化pid文件,防止沒有權(quán)限
``` cd /var/run/ mkdir mysqld cd mysqld vi mysqld.pid :wq保存退出 # 賦權(quán) cd .. chmod 777 mysqld chown -R mysql:mysql /mysqld ```
4. 初始化數(shù)據(jù)庫(kù)
初始化數(shù)據(jù)庫(kù),并指定啟動(dòng)mysql的用戶,否則就會(huì)在啟動(dòng)MySQL時(shí)出現(xiàn)權(quán)限不足的問題
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
初始化完成后,在my.cnf中配置的datadir目錄(/var/log/mysqld.log)下生成一個(gè)error.log文件,里面記錄了root用戶的隨機(jī)密碼。
cat /var/log/mysqld.log
執(zhí)行后記錄最后一行:root@localhost: xxxxx 。 這里的xxxxx就是初始密碼。后面登入數(shù)據(jù)庫(kù)要用到。
4. 啟動(dòng)數(shù)據(jù)庫(kù)
#源目錄啟動(dòng): /usr/local/mysql/support-files/mysql.server start
設(shè)置開機(jī)自啟動(dòng)服務(wù)
# 復(fù)制啟動(dòng)腳本到資源目錄 cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld # 增加mysqld服務(wù)控制腳本執(zhí)行權(quán)限 chmod +x /etc/rc.d/init.d/mysqld # 將mysqld服務(wù)加入到系統(tǒng)服務(wù) chkconfig --add mysqld # 檢查mysqld服務(wù)是否已經(jīng)生效 chkconfig --list mysqld # 切換至mysql用戶,啟動(dòng)mysql,或者稍后下一步再啟動(dòng)。 service mysqld start # 從此就可以使用service mysqld命令啟動(dòng)/停止服務(wù) su mysql service mysqld start service mysqld stop service mysqld restart
5.登陸,修改密碼,預(yù)置dolphinscheduler的用戶
1. 修改密碼
``` # 系統(tǒng)默認(rèn)會(huì)查找/usr/bin下的命令;建立一個(gè)鏈接文件。 ln -s /usr/local/mysql/bin/mysql /usr/bin # 登陸mysql的root用戶 mysql -uroot -p # 輸入上面的默認(rèn)初始密碼(root@localhost: xxxxx) # 修改root用戶密碼為XXXXXX set password for root@localhost=password("XXXXXX"); ```
2. 預(yù)置dolphinscheduler的用戶
``` mysql -uroot -p mysql>CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; # 修改 {user} 和 {password} 為你希望的用戶名和密碼,192.168.56.201是我的主機(jī)ID mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler'; mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler'; mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'192.168.56.201' IDENTIFIED BY 'dolphinscheduler'; #刷新權(quán)限 mysql> flush privileges; #檢查是否創(chuàng)建用戶成功 mysql> show databases; #出現(xiàn)dolphinscheduler,查看創(chuàng)建的用戶 mysql> use mysql; mysql> select User,authentication_string,Host from user; ```
安裝dolphinscheduler服務(wù)
1. 建立本機(jī)id免密
在任意文件夾下進(jìn)行這一步均可,為防止誤會(huì),我在dolphinscheduler203進(jìn)行這一步,創(chuàng)建用戶dolphinscheduler,后面所有操作都是再這個(gè)用戶下做的。設(shè)置root免密登錄該用戶:
# 創(chuàng)建用戶需使用 root 登錄 useradd dolphinscheduler # 添加密碼 echo "dolphinscheduler" | passwd --stdin dolphinscheduler # 配置 sudo 免密 sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers # 修改目錄權(quán)限,在這一步前將jdbcDriver(我的mysql版本5.6.1,driver版本8.0.16)放入lib里,一并修改權(quán)限 chown -R dolphinscheduler:dolphinscheduler dolphinscheduler203 #進(jìn)入新用戶 su dolphinscheduler ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
2. 修改配置參數(shù)
修改install-config.conf文件
[dolphinscheduler@km1 dolphinscheduler203]$ vi conf/config/install-config.conf 修改: ips="192.168.56.201" masters="192.168.56.201" workers="192.168.56.201:default" alertServer="192.168.56.201" apiServers="192.168.56.201" pythonGatewayServers="192.168.56.201" # DolphinScheduler安裝路徑,如果不存在會(huì)創(chuàng)建,這里不能放你解壓后的ds路徑,放置后在運(yùn)行代碼時(shí)同名文件、文件夾會(huì)沖突導(dǎo)致消失 installPath="/opt/dolphinscheduler203" # 部署用戶,填寫在 **配置用戶免密及權(quán)限** 中創(chuàng)建的用戶 deployUser="dolphinscheduler" # --------------------------------------------------------- # DolphinScheduler ENV # --------------------------------------------------------- # 安裝的JDK中 JAVA_HOME 所在的位置 javaHome="/opt/hadoopclient/JDK/jdk1.8.0_272" # --------------------------------------------------------- # Database # --------------------------------------------------------- # 數(shù)據(jù)庫(kù)的類型,用戶名,密碼,IP,端口,元數(shù)據(jù)庫(kù)db。其中 DATABASE_TYPE 目前支持 mysql, postgresql, H2 # 請(qǐng)確保配置的值使用雙引號(hào)引用,否則配置可能不生效 DATABASE_TYPE="mysql" SPRING_DATASOURCE_URL="jdbc:mysql://192.168.56.201:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8" # 如果你不是以 dolphinscheduler/dolphinscheduler 作為用戶名和密碼的,需要進(jìn)行修改 SPRING_DATASOURCE_USERNAME="dolphinscheduler" SPRING_DATASOURCE_PASSWORD="dolphinscheduler" # --------------------------------------------------------- # Registry Server # --------------------------------------------------------- # 注冊(cè)中心地址,zookeeper服務(wù)的地址 registryServers="192.168.56.201:2181"
zk地址獲取方式:
登錄manager,訪問zookeeper服務(wù),copy管理ip即可(前提ECS與MRS集群網(wǎng)絡(luò)已打通):
2. 修改 conf/env 目錄下的 dolphinscheduler_env.sh
以相關(guān)用到的軟件都安裝在/opt/Bigdata/client下為例:
? export HADOOP_HOME=/opt/Bigdata/client/HDFS/Hadoop ? export HADOOP_CONF_DIR=/opt/Bigdata/client/HDFS/Hadoop ? export SPARK_HOME2=/opt/Bigdata/client/Spark2x/spark ? export PYTHON_HOME=/usr/bin/pytho ? export JAVA_HOME=/opt/Bigdata/client/JDK/jdk1.8.0_272 ? export HIVE_HOME=/opt/Bigdata/client/Hive/Beeline ? export FLINK_HOME=/opt/Bigdata/client/Flink/flink ? export DATAX_HOME=/xxx/datax/bin/datax.py ? export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH
說(shuō)明
- 這一步非常重要,例如 JAVA_HOME 和 PATH 是必須要配置的,沒有用到的可以忽略或者注釋掉
- 環(huán)境變量查找方式說(shuō)明:假設(shè)MRS客戶端安裝在/opt/Bigdata/client
source /opt/client/bigdata_env HADOOP_HOME環(huán)境地址:通過(guò)echo $HADOOP_HOME獲得 /opt/Bigdata/client/HDFS/Hadoop HADOOP_CONF_DIR:/opt/Bigdata/client/HDFS/Hadoop SPARK_HOME: 通過(guò)echo $SPARK_HOME獲得/opt/Bigdata/client/Spark2x/spark JAVA_HOME: 通過(guò)echo $JAVA_HOME獲得/opt/Bigdata/client/JDK/jdk1.8.0_272 HIVE_HOME:通過(guò)echo $HIVE_HOME獲得/opt/Bigdata/client/Hive/Beeline FLINK_HOME:通過(guò)echo $FLINK_HOME 獲得/opt/Bigdata/client/Flink/flink
3. 將mysql 驅(qū)動(dòng)包放入lib下
tar -zxvf mysql-connector-java-5.1.47.tar.gz
cp mysql-connector-java-5.1.47.jar /opt/dolphinscheduler203/lib/
4.創(chuàng)建元數(shù)據(jù)庫(kù)數(shù)據(jù)表
執(zhí)行sh script/create-dolphinscheduler.sh
5. 服務(wù)安裝、啟停
每次啟停都可以重新部署一次:sh install.sh
啟停命令
# 一鍵停止集群所有服務(wù) sh ./bin/stop-all.sh # 一鍵開啟集群所有服務(wù) sh ./bin/start-all.sh # 啟停 Master sh ./bin/dolphinscheduler-daemon.sh stop master-server sh ./bin/dolphinscheduler-daemon.sh start master-server # 啟停 Worker sh ./bin/dolphinscheduler-daemon.sh start worker-server sh ./bin/dolphinscheduler-daemon.sh stop worker-server # 啟停 Api sh ./bin/dolphinscheduler-daemon.sh start api-server sh ./bin/dolphinscheduler-daemon.sh stop api-server # 啟停 Logger sh ./bin/dolphinscheduler-daemon.sh start logger-server sh ./bin/dolphinscheduler-daemon.sh stop logger-server # 啟停 Alert sh ./bin/dolphinscheduler-daemon.sh start alert-server sh ./bin/dolphinscheduler-daemon.sh stop alert-server # 啟停 Python Gateway sh ./bin/dolphinscheduler-daemon.sh start python-gateway-server sh ./bin/dolphinscheduler-daemon.sh stop python-gateway-server
6. 登錄系統(tǒng)
訪問前端頁(yè)面地址:http://xxx:12345/dolphinscheduler
用戶名密碼:admin/dolphinscheduler123
提交MRS任務(wù)
1.登錄進(jìn)入dolphinscheduler webui
2. 配置MRS-hive連接
登錄mrs manager查看hiveserver ip:
創(chuàng)建Hive數(shù)據(jù)連接,普通集群沒有權(quán)限可以使用默認(rèn)用戶hive,如有需要可以使用在MRS里面已經(jīng)創(chuàng)建的用戶:
3. 創(chuàng)建任務(wù)
1、創(chuàng)建項(xiàng)目
2、創(chuàng)建工作流
3、在工作流編輯任務(wù)
4、任務(wù)上線
5、啟動(dòng)任務(wù)流之后可以查詢工作流實(shí)例和任務(wù)實(shí)例
6、登錄Manager頁(yè)面,選擇“集群 > 服務(wù) > Yarn > 概覽”
7、單擊“ResourceManager WebUI”后面對(duì)應(yīng)的鏈接,進(jìn)入Yarn的WebUI頁(yè)面,查看Spark任務(wù)是否運(yùn)行