草庐IT

Dolphinscheduler1.3.8集群部署

木秋的夏天 2023-03-28 原文

1. 集群节点规划及说明

主机 部署服务 说明
172.16.53.179 masterserver,alertserver,zookeeper,mysql 数据库也在该主机
172.16.53.180 zookeeper zk
172.16.53.181 apiserver,zookeeper web服务端口:12345
172.16.53.182 masterserver
172.16.53.183 workserver
172.16.53.189 workserver
172.16.53.193 workserver

2. 安装说明

安装包地址:https://dlcdn.apache.org/dolphinscheduler/1.3.8/apache-dolphinscheduler-1.3.8-bin.tar.gz

  1. 新建dolphinscheduler用户(集群所有主机都执行)
useradd dolphinscheduler
  1. 创建部署目录,并赋予dolphinscheduler用户操作权限(集群所有主机都执行)
mkdir -p /opt/dolphinscheduler chown -R dolphinscheduler:dolphinscheduler /opt/dolphinscheduler
  1. 配置 sudo 免密(集群所有主机都执行)
echo 'dolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' >> /etc/sudoers
  1. 配置dolphinscheduler用户免密 注:172.16.53.179到所有主机的免密登陆 172.16.53.179主机执行如下:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys 将172.16.53.179主机的公钥拷贝至其它主机的~/.ssh/authorized_keys下 5. 配置hosts映射(集群所有主机都执行) 所有主机的/etc/hosts下配置

172.16.53.179 node01 172.16.53.180 node02 172.16.53.181 node03 172.16.53.182 node04 172.16.53.183 node05 172.16.53.189 node06 172.16.53.193 node07
  1. 创建运行任务目录,并赋予777权限(集群所有主机都执行)
mkdir -p /tmp/dolphinscheduler chmod -R 777 /tmp/dolphinscheduler
  1. 创建hdfs资源中心目录(任一台主机)
su - hdfs hdfs dfs -mkdir /dolphinscheduler hdfs dfs -chown -R 777 /dolphinscheduler
  1. 下载并解压apache-dolphinscheduler-1.3.8-bin.tar.gz 172.16.53.179主机dolphinscheduler用户下执行:
cd /opt/dolphinscheduler wget https://dlcdn.apache.org/dolphinscheduler/1.3.8/apache-dolphinscheduler-1.3.8-bin.tar.gz tar -zxvf apache-dolphinscheduler-1.3.8-bin.tar.gz -C /opt/dolphinscheduler mv apache-dolphinscheduler-1.3.8-bin dolphinschedulerinstall 9.所有节点安装jdk(root用户下执行)并配置环境变量如下: vim /etc/profile.d/jdk.sh

JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera JRE_HOME=/usr/java/jdk1.8.0_181-cloudera/jre PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME JRE_HOME PATH

3. 数据库初始化

注: 以下操作全部在dolphinscheduler用户下执行

  1. 先添加mysql的驱动包至DolphinScheduler 的 lib 目录下
[dolphinscheduler@node01 lib]$ ls mysql-connector-java-5.1.47.jar mysql-connector-java-5.1.47.jar
  1. 登陆数据库创建dolphinscheduler库及用户
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler'; mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler'; mysql> flush privileges;
  1. 修改datasource.properties配置 vim conf/datasource.properties
# postgre # spring.datasource.driver-class-name=org.postgresql.Driver # spring.datasource.url=jdbc:postgresql://localhost:5432/dolphinscheduler # mysql spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://172.16.53.179:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true spring.datasource.username=dolphinscheduler spring.datasource.password=dolphinscheduler
  1. 创建表及导入基础数据脚本
sh script/create-dolphinscheduler.sh 注意: 如果执行上述脚本报 “/bin/java: No such file or directory” 错误,请在/etc/profile 下配置 JAVA_HOME 及 PATH 变量

4. 修改运行参数

  1. 修改 conf/env 目录下的 dolphinscheduler_env.sh(修改成真实环境的地址即可) 以下是我的部署环境:
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop export HADOOP_CONF_DIR=/etc/hadoop/conf export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive export FLINK_HOME=/opt/flink-1.12.2 export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$PATH
  1. 修改一键部署配置文件 vim conf/config/install_config.conf
# postgresql or mysql dbtype="mysql" # db address and port dbhost="172.16.53.179:3306" # db username username="dolphinscheduler" # mysql库 dbname="dolphinscheduler" # mysql密码 password="dolphinscheduler" # zk 地址 zkQuorum="172.16.53.179:2181,172.16.53.180:2181,172.16.53.181:2181" # 安装路径 installPath="/opt/dolphinscheduler" # 部署用户 deployUser="dolphinscheduler" # 邮箱告警设置,默认未配置 mailServerHost="smtp.exmail.qq.com" # mail server port # note: Different protocols and encryption methods correspond to different ports, when SSL/TLS is enabled, make sure the port is correct. mailServerPort="25" # sender mailSender="xxxxxxxxxx" # user mailUser="xxxxxxxxxx" # sender password # note: The mail.passwd is email service authorization code, not the email login password. mailPassword="xxxxxxxxxx" # TLS mail protocol support starttlsEnable="true" # SSL mail protocol support # only one of TLS and SSL can be in the true state. sslEnable="false" #note: sslTrust is the same as mailServerHost sslTrust="smtp.exmail.qq.com" # 任务运行的本地目录 dataBasedirPath="/tmp/dolphinscheduler" # resource storage type: HDFS, S3, NONE resourceStorageType="HDFS" # hdfs资源上传根路径,由于 hdfs支持本地文件系统,需要确保本地文件夹存在且有读写权限 resourceUploadPath="/dolphinscheduler" # 如果上传资源保存想保存在 hadoop 上,hadoop 集群的 NameNode 启用了 HA 的话,需要将 hadoop 的配置文件 core-site.xml 和 hdfs-site.xml 放到安装路径的 conf 目录下, # 本例即是放到 /opt/soft/dolphinscheduler/conf 下面,并配置 namenode cluster 名称;如果 NameNode 不是 HA,则只需要将 mycluster 修改为具体的 ip 或者主机名即可. defaultFS="hdfs://tfdservice:8020" # if resourceStorageType is S3, the following three configuration is required, otherwise please ignore s3Endpoint="http://192.168.xx.xx:9010" s3AccessKey="xxxxxxxxxx" s3SecretKey="xxxxxxxxxx" # resourcemanager 端口 resourceManagerHttpAddressPort="8088" # if resourcemanager HA is enabled, please set the HA IPs; if resourcemanager is single, keep this value empty yarnHaIps="172.16.53.179,172.16.53.180" # 如果 ResourceManager 是 HA 或者没有使用到 Yarn 保持默认值即可;如果是单 ResourceManager,请配置真实的 ResourceManager 主机名或者 ip singleYarnIp="yarnIp1" # 具备权限创建 resourceUploadPath的用户 hdfsRootUser="hdfs" # kerberos服务 默认未开启,无需配置 kerberosStartUp="false" # kdc krb5 config file path krb5ConfPath="$installPath/conf/krb5.conf" # keytab username keytabUserName="hdfs-mycluster@ESZ.COM" # username keytab path keytabPath="$installPath/conf/hdfs.headless.keytab" # kerberos expire time, the unit is hour kerberosExpireTime="2" # api server 默认端口 apiServerPort="12345" # 在哪些机器上部署 DS 服务,本机选 localhost ips="172.16.53.179,172.16.53.181,172.16.53.182,172.16.53.183,172.16.53.189,172.16.53.193" # ssh 端口,默认22 sshPort="22" # master 服务部署在哪台机器上 masters="172.16.53.179,172.16.53.182" # worker 服务部署在哪台机器上,并指定此 worker 属于哪一个 worker 组,下面示例的 default 即为组名 workers="172.16.53.183:default,172.16.53.189:default,172.16.53.193:default" # 报警服务部署在哪台机器上 alertServer="172.16.53.179" # 后端 api 服务部署在在哪台机器上 apiServers="172.16.53.181" 特别注意:如果需要用资源上传到 Hadoop 集群功能, 并且 Hadoop 集群的 NameNode 配置了 HA 的话 ,需要开启 HDFS 类型的资源上传,同时需要将 Hadoop 集群下的 core-site.xml 和 hdfs-site.xml 复制到 /opt/dolphinscheduler/conf,非 NameNode HA 跳过次步骤

5. 一键部署(dolphinscheduler执行)

sh install.sh 部署成功后,可以进行日志查看,日志统一存放于 logs 文件夹内

logs/ ├── dolphinscheduler-alert-server.log ├── dolphinscheduler-master-server.log |—— dolphinscheduler-worker-server.log |—— dolphinscheduler-api-server.log |—— dolphinscheduler-logger-server.log

6. 登陆系统

访问前端页面地址 http://172.16.53.181:12345/dolphinscheduler 默认登陆用户:admin 初始密码:dolphinscheduler123

7. 启停服务

  1. 一键停止集群所有服务
sh ./bin/stop-all.sh 2.一键开启集群所有服务

sh ./bin/start-all.sh
  1. 启停 Master
sh ./bin/dolphinscheduler-daemon.sh start master-server sh ./bin/dolphinscheduler-daemon.sh stop master-server
  1. 启停 Worker
sh ./bin/dolphinscheduler-daemon.sh start worker-server sh ./bin/dolphinscheduler-daemon.sh stop worker-server
  1. 启停 Api
sh ./bin/dolphinscheduler-daemon.sh start api-server sh ./bin/dolphinscheduler-daemon.sh stop api-server
  1. 启停 Logger
sh ./bin/dolphinscheduler-daemon.sh start logger-server sh ./bin/dolphinscheduler-daemon.sh stop logger-server 7.启停 Alert

sh ./bin/dolphinscheduler-daemon.sh start alert-server sh ./bin/dolphinscheduler-daemon.sh stop alert-server

有关Dolphinscheduler1.3.8集群部署的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  3. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  6. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  7. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

  8. ruby-on-rails - 在服务器上没有互联网访问权限的 Capistrano 部署 - 2

    如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答

  9. 【详解】Docker安装Elasticsearch7.16.1集群 - 2

    开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建

  10. Streampark集成Cloudera Flink、ldap、告警,以及部署常见问题 - 2

    集成背景我们当前集群使用的是ClouderaCDP,Flink版本为ClouderaVersion1.14,整体Flink安装目录以及配置文件结构与社区版本有较大出入。直接根据Streampark官方文档进行部署,将无法配置FlinkHome,以及后续整体Flink任务提交到集群中,因此需要进行针对化适配集成,在满足使用需求上,尽量提供完整的Streampark使用体验。集成步骤版本匹配问题解决首先解决无法识别Cloudera中的FlinkHome问题,根据报错主要明确到的事情是无法读取到Flink版本、lib下面的jar包名称无法匹配。修改对象:修改源码:(解决无法匹配clouderajar

随机推荐