转载自第一片心意

1 前言

由于海豚调度器官网的集群部署文档写的较乱,安装过程中需要跳转到很多地方进行操作,所以自己总结了一篇可以直接跟着从头到尾进行操作的文档,以方便后续的部署、升级、新增节点、减少节点的相关操作。

2. 提前准备

2.1. 基础组件

  • JDK:下载JDK (1.8+),安装并配置 JAVA_HOME 环境变量,并将其下的 bin 目录追加到 PATH 环境变量中。如果你的环境中已存在,可以跳过这步。
  • 二进制包:在下载页面下载 DolphinScheduler 二进制包
  • 数据库:PostgreSQL (8.2.15+) 或者 MySQL (5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8 版本,可以从中央仓库下载。
  • 注册中心:ZooKeeper (3.4.6+),下载地址。
  • 进程树分析
    • macOS安装pstree
    • Fedora/Red/Hat/CentOS/Ubuntu/Debian安装psmisc。

注意: DolphinScheduler 本身不依赖 Hadoop、Hive、Spark 等,但如果你运行的任务需要依赖他们,就需要有对应的环境支持。

3. 上传

上传二进制包,并且解压到某个目录,具体目录位置,自己定即可。

要注意目录名称,最好在后面加一些字符,要做到安装目录和二进制包解压目录不同名,以进行区分。

tar -xvf apache-dolphinscheduler-3.1.7-bin.tar.gz
mv apache-dolphinscheduler-3.1.7-bin dolphinscheduler-3.1.7-origin

后面的 -origin 表示这是原始的二进制包解压文件,后续有配置改动时,可以修改改目录下的文件,然后重新执行安装脚本。

4. 用户

4.1. 配置用户免密及权限

创建部署用户,并且一定要配置 sudo 免密。以创建 dolphinscheduler 用户为例:

# 创建用户需使用 root 登录
useradd dolphinscheduler # 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler # 配置 sudo 免密
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers # 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin

注意:

  • 因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。初学习者不理解的话,完全可以暂时忽略这一点。
  • 如果发现 /etc/sudoers 文件中有 “Defaults requirett” 这行,也请注释掉。

4.2. 配置机器SSH免密登陆

由于安装的时候需要向不同机器发送资源,所以要求各台机器间能实现SSH免密登陆。配置免密登陆的步骤如下:

su dolphinscheduler

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 一定要执行下面这个命令,否则免密登录会失败
chmod 600 ~/.ssh/authorized_keys

注意: 配置完成后,可以通过运行命令 ssh localhost 判断是否成功,如果不需要输入密码就能 ssh登陆,则证明成功。

5. 启动zookeeper

启动集群中的 zookeeper 即可。

6. 修改配置

下面所有的操作,均在 dolphinscheduler 用户下执行。

完成基础环境的准备后,需要根据你的机器环境修改配置文件。配置文件可以在目录 bin/env 中找到,他们分别是 install_env.shdolphinscheduler_env.sh

6.1. install_env.sh

install_env.sh 文件配置将 DolphinScheduler 安装到哪些机器 ,以及每台机器安装哪些服务。可以在路径 bin/env/ 中找到此文件,之后按照下面的说明修改对应的配置即可。

# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
# 配置海豚调度器要安装到那些机器上
ips=${ips:-"ds01,ds02,ds03,hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07,hadoop08"} # Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
sshPort=${sshPort:-"22"} # A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
# 配置 master 角色要安装到哪些机器上
masters=${masters:-"ds01,ds02,ds03,hadoop04,hadoop05,hadoop06,hadoop07,hadoop08"} # A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
# 配置 worker 角色要安装到哪些机器上,默认都放到 default 的 worker 分组内,其他分组,可以通过海豚调度器界面进行单独配置
workers=${workers:-"ds01:default,ds02:default,ds03:default,hadoop02:default,hadoop03:default,hadoop04:default,hadoop05:default,hadoop06:default,hadoop07:default,hadoop08:default"} # A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
# 配置 alert 角色安装到哪个机器上,配置一台机器即可
alertServer=${alertServer:-"hadoop03"} # A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
# 配置 api 角色安装到哪个机器上,配置一台机器即可
apiServers=${apiServers:-"hadoop04"} # The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
# Do not set this configuration same as the current path (pwd). Do not add quotes to it if you using related path.
# 配置安装路径,将会在所有海豚集群的机器上安装服务,一定要和上面解压的二进制包目录区分开,最好带上版本号,以方便后续的升级操作。
installPath=${installPath:-"/opt/dolphinscheduler-3.1.5"} # The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
# to be created by this user
# 部署使用的用户,用上面自己新建的用户即可
deployUser=${deployUser:-"dolphinscheduler"} # The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
# 配置注册到 zookeeper znode 名称,如果配置了多个海豚集群,则需要配置不同的名称
zkRoot=${zkRoot:-"/dolphinscheduler"}

6.2. dolphinscheduler_env.sh

可以在路径 bin/env/ 中找到此文件,该文件用来配置用到的一些环境,按照下面的说明修改对应配置即可:

# JDK 路径,一定要修改
export JAVA_HOME=${JAVA_HOME:-/usr/java/jdk1.8.0_202} # 数据库类型,支持 mysql、postgresql
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
# 连接 url,主要修改下面的 hostname,最后配置的是东八区
export SPRING_DATASOURCE_URL="jdbc:mysql://hostname:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
# 如果密码比较复杂,则需要前后使用英文单引号括起来
export SPRING_DATASOURCE_PASSWORD='xxxxxxxxxxxxx' export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
# 配置各角色 JVM 启动时使用的时区,默认为 -UTC,如果想要完全支持东八区,则设置为 -GMT+8
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-GMT+8}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10} export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
# 配置使用的 zookeeper 地址
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-hadoop01:2181,hadoop02:2181,hadoop03:2181} # 配置使用到的一些环境变量,按照自己的需要进行配置即可,所有需要的组件,都自己安装
export HADOOP_HOME=${HADOOP_HOME:-/opt/cloudera/parcels/CDH/lib/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop/conf}
export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/opt/spark-3.3.2}
export PYTHON_HOME=${PYTHON_HOME:-/opt/python-3.9.16}
export HIVE_HOME=${HIVE_HOME:-/opt/cloudera/parcels/CDH/lib/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/flink-1.15.3}
export DATAX_HOME=${DATAX_HOME:-/opt/datax}
export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/seatunnel-2.1.3}
export CHUNJUN_HOME=${CHUNJUN_HOME:-/opt/soft/chunjun} export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH

6.3. common.properties

从自己的 hadoop 集群上下载 hdfs-site.xml core-site.xml 文件,然后放到 api-server/conf/worker-server/conf/ 目录下。如果是自己搭建的 apache 的原生集群,则从各个组件的 conf 目录下找,如果是 CDH ,则可以通过 CDH 界面直接下载。

修改 api-server/conf/worker-server/conf/ 目录下的这个文件,该文件主要用来配置资源上传相关参数,比如将海豚的资源上传到 hdfs 等,按照下面的说明修改即可:

# 本地路径,主要用来存放任务运行时的临时文件,要保证用户对该文件具有读写权限,一般保持默认即可,如果后续任务运行报错说是对该目录下的文件没有操作权限,直接将该目录权限修改为 777 即可
data.basedir.path=/tmp/dolphinscheduler # resource view suffixs
#resource.view.suffixs=txt,log,sh,bat,conf,cfg,py,java,sql,xml,hql,properties,json,yml,yaml,ini,js # 保存资源的地方,可用值为: HDFS, S3, OSS, NONE
resource.storage.type=HDFS
# 资源上传的基本路径,必须以 /dolphinscheduler 开头,要保证用户对该目录有读写权限
resource.storage.upload.base.path=/dolphinscheduler # The AWS access key. if resource.storage.type=S3 or use EMR-Task, This configuration is required
resource.aws.access.key.id=minioadmin
# The AWS secret access key. if resource.storage.type=S3 or use EMR-Task, This configuration is required
resource.aws.secret.access.key=minioadmin
# The AWS Region to use. if resource.storage.type=S3 or use EMR-Task, This configuration is required
resource.aws.region=cn-north-1
# The name of the bucket. You need to create them by yourself. Otherwise, the system cannot start. All buckets in Amazon S3 share a single namespace; ensure the bucket is given a unique name.
resource.aws.s3.bucket.name=dolphinscheduler
# You need to set this parameter when private cloud s3. If S3 uses public cloud, you only need to set resource.aws.region or set to the endpoint of a public cloud such as S3.cn-north-1.amazonaws.com.cn
resource.aws.s3.endpoint=http://localhost:9000 # alibaba cloud access key id, required if you set resource.storage.type=OSS
resource.alibaba.cloud.access.key.id=<your-access-key-id>
# alibaba cloud access key secret, required if you set resource.storage.type=OSS
resource.alibaba.cloud.access.key.secret=<your-access-key-secret>
# alibaba cloud region, required if you set resource.storage.type=OSS
resource.alibaba.cloud.region=cn-hangzhou
# oss bucket name, required if you set resource.storage.type=OSS
resource.alibaba.cloud.oss.bucket.name=dolphinscheduler
# oss bucket endpoint, required if you set resource.storage.type=OSS
resource.alibaba.cloud.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com # if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
resource.hdfs.root.user=hdfs
# if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir
#
resource.hdfs.fs.defaultFS=hdfs://bigdata:8020 # whether to startup kerberos
hadoop.security.authentication.startup.state=false # java.security.krb5.conf path
java.security.krb5.conf.path=/opt/krb5.conf # login user from keytab username
login.user.keytab.username=hdfs-mycluster@ESZ.COM # login user from keytab path
login.user.keytab.path=/opt/hdfs.headless.keytab # kerberos expire time, the unit is hour
kerberos.expire.time=2 # resourcemanager port, the default value is 8088 if not specified
resource.manager.httpaddress.port=8088
# if resourcemanager HA is enabled, please set the HA IPs; if resourcemanager is single, keep this value empty
yarn.resourcemanager.ha.rm.ids=hadoop02,hadoop03
# if resourcemanager HA is enabled or not use resourcemanager, please keep the default value; If resourcemanager is single, you only need to replace ds1 to actual resourcemanager hostname
yarn.application.status.address=http://ds1:%s/ws/v1/cluster/apps/%s
# job history status url when application number threshold is reached(default 10000, maybe it was set to 1000)
yarn.job.history.status.address=http://hadoop02:19888/ws/v1/history/mapreduce/jobs/%s # datasource encryption enable
datasource.encryption.enable=false # datasource encryption salt
datasource.encryption.salt=!@#$%^&* # data quality option
data-quality.jar.name=dolphinscheduler-data-quality-dev-SNAPSHOT.jar #data-quality.error.output.path=/tmp/data-quality-error-data # Network IP gets priority, default inner outer # Whether hive SQL is executed in the same session
support.hive.oneSession=false # use sudo or not, if set true, executing user is tenant user and deploy user needs sudo permissions; if set false, executing user is the deploy user and doesn't need sudo permissions
sudo.enable=true
setTaskDirToTenant.enable=false # network interface preferred like eth0, default: empty
#dolphin.scheduler.network.interface.preferred= # network IP gets priority, default: inner outer
#dolphin.scheduler.network.priority.strategy=default # system env path
#dolphinscheduler.env.path=dolphinscheduler_env.sh # development state
development.state=false # rpc port
alert.rpc.port=50052 # set path of conda.sh
conda.path=/opt/anaconda3/etc/profile.d/conda.sh # Task resource limit state
task.resource.limit.state=false # mlflow task plugin preset repository
ml.mlflow.preset_repository=https://github.com/apache/dolphinscheduler-mlflow
# mlflow task plugin preset repository version
ml.mlflow.preset_repository_version="main"

6.4. application.yaml

需要修改所有角色下 /conf/application.yaml 文件,包括:master-server/conf/application.yaml、worker-server/conf/application.yaml、api-server/conf/application.yaml、alert-server/conf/application.yaml,主要修改的是时区设置,具体修改如下:

spring:
banner:
charset: UTF-8
jackson:
# 将时区设置为东八区,只修改这一个地方即可
time-zone: GMT+8
date-format: "yyyy-MM-dd HH:mm:ss"

6.5. service.57a50399.js和service.57a50399.js.gz

这两个文件在 api-server/ui/assets/ui/assets/ 目录下。

分别切换到这两个目录下,然后分别找到这两个文件,之后通过 vim 命令打开,然后搜索 15e3,找到之后,将其改为 15e5。这修改的是页面响应的超时时间,默认值 15e3 表示 15 秒,我们将其改为 1500 秒,在上传大文件时,不会因为页面超时而报错。

7. 初始化数据库

驱动配置

将 mysql 驱动(8.x)拷贝到海豚调度器每个角色的 lib 目录下,包括:api-server/libsalert-server/libsmaster-server/libsworker-server/libstools/libs

数据库用户

使用 root 用户登录 mysql,然后执行以下 sql,mysql5 和 mysql8 都支持:

create database `dolphinscheduler` character set utf8mb4 collate utf8mb4_general_ci;
create user 'dolphinscheduler'@'%' IDENTIFIED WITH mysql_native_password by 'your_password';
grant ALL PRIVILEGES ON dolphinscheduler.* to 'dolphinscheduler'@'%';
flush privileges;

执行数据库升级脚本:

bash tools/bin/upgrade-schema.sh

8. 安装

bash ./bin/install.sh

执行该脚本,会将本地的所有文件通过 scp 远程传输给上面配置文件中配置的所有机器,然后停止对应机器上的角色,之后再启动所有机器上的角色。

第一次安装之后,就已经启动了所有的角色,无需再次单独启动任何角色,如果有哪些角色没启动的话,可以去对应的机器上查看对应的日志,看具体是什么问题导致的。

9. 启停服务

# 一键停止集群所有服务
bash ./bin/stop-all.sh # 一键开启集群所有服务
bash ./bin/start-all.sh # 启停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server # 启停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server # 启停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server # 启停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server

一定要注意,必须使用安装海豚调度器的用户执行这些脚本,否则会有一些权限之类的问题。

每个服务在路径 <service>/conf/dolphinscheduler_env.sh 中都有 dolphinscheduler_env.sh 文件,为微服务需求提供便利。这意味着你可以在对应服务中配置 <service>/conf/dolphinscheduler_env.sh,然后通过<service>/bin/start.sh 命令基于不同的环境变量来启动各个服务。但如果使用命令 /bin/dolphinscheduler-daemon.sh start <service> 启动服务器,它将会使用文件 bin/env/dolphinscheduler_env.sh 覆盖 <service>/conf/dolphinscheduler_env.sh ,然后启动服务,这么做是为了减少用户修改配置的成本。

10. 扩容

10.1. 标准方式

参考上面的步骤,进行如下操作:

  1. 新节点

    1. 安装配置好 JDK。
    2. 新建海豚用户(Linux 用户),然后配置免密登录、权限等。
  2. 之前安装海豚调度器时解压二进制安装包的机器上。
    1. 登录安装海豚的用户。
    2. 切换到之前安装海豚调度器时解压二进制安装包,修改配置文件:bin/env/install_env.sh,在该配置文件中,修改需要在新节点上部署的角色。
    3. 执行 /bin/install.sh 文件进行安装,该脚本会按照 bin/env/install_env.sh 文件中的配置,将整个目录重新 scp 到所有的机器,之后停止所有机器上的角色,然后再启动所有角色。

该方式的缺点:如果海豚调度器上有很多分钟级别的任务,或者是 flink、spark 之类的实时任务,由于该操作会停止所有的角色,然后启动,这期间会花费一定的时间,在这期间,这些任务可能会由于整个集群的重启,从而异常停止,或者是无法被正常调度起来。但海豚调度器自己实现了自动容错和灾备等功能,所以可以这么操作,最后观察下所有任务执行是否正常。

10.2. 简单方式

参考上面的步骤,进行如下操作:

  1. 新节点

    1. 安装配置好 JDK。
    2. 新建海豚用户(Linux 用户),然后配置免密登录、权限等。
  2. 之前安装海豚调度器时解压二进制安装包的机器上。
    1. 登录安装海豚的用户。
    2. 将之前修改完配置的整个目录直接压缩,然后传输到新节点上。
  3. 新节点
    1. 在新节点上解压文件,然后将其重命名到之前配置文件 bin/env/install_env.sh 中配置的安装目录下。
    2. 登录安装海豚的用户。
    3. 需要在新节点部署哪些角色,就启动哪些角色,具体脚本位置:/bin/dolphinscheduler-daemon.sh,启动命令为:
./dolphinscheduler-daemon.sh start master-server
./dolphinscheduler-daemon.sh start worker-server
  1. 登录到海豚调度器界面,然后“监控中心”中观察,对应角色在新节点是否启动。

11.缩容

  1. 在需要下线的机器上,通过 /bin/dolphinscheduler-daemon.sh 脚本停止机器上所有的角色,停止命令为:
./dolphinscheduler-daemon.sh stop worker-server
  1. 登录到海豚调度器界面,然后“监控中心”中观察,刚才机器上停止的角色是否已经消失。
  2. 在之前安装海豚调度器时解压二进制安装包的机器上
  3. 登录安装海豚的用户。
  4. 修改配置文件:bin/env/install_env.sh,在该配置文件中,删除下线角色对应的机器。

12. 升级

按照上面的步骤,一步一步操作即可,对于已经有过的操作,无需二次操作。下面是一些具体的操作步骤:

  1. 上传新版二进制包。
  2. 解压,解压到和旧版安装目录不同的目录,或者是重命名也可以。
  3. 修改配置文件,比较简单的方式是,将上面步骤中涉及到的所有配置文件,从之前安装的目录下拷贝到新版本目录下,替换即可。
  4. 将其他节点上部署的一些组件,全部打包,然后解压放到新节点对应的位置。具体需要拷贝哪些组件,可以查看 dolphinscheduler_env.sh 文件中的配置。
  5. 配置驱动,参考《初始化数据库》中的步骤。
  6. 停止之前的集群。
  7. 备份整个数据库。
  8. 执行数据库升级脚本,参考《初始化数据库》中的步骤。
  9. 执行安装脚本,参考《安装》。
  10. 升级完成,登录界面,查看“监控中心”,看所有角色是否都成功启动。

文件转载,请标明出处。欢迎大家一起讨论技术,写的不对的地方还请大家一起讨论。

原文链接:https://blog.csdn.net/u012443641/article/details/131419391

本文由 白鲸开源 提供发布支持!

告别手动调度,海豚调度器 3.1.x 集群部署让你轻松管理多机!的更多相关文章

  1. solr常用操作及集成分词器或cdh集群部署说明

    首先,如果是从http://lucene.apache.org/solr/下载的solr,基本都是自带集成的jetty服务,不需要单独搭建tomcat环境,但是要注意jdk版本,直接解压通过cmd命令 ...

  2. Kubernetes集群调度器原理剖析及思考

    简述 云环境或者计算仓库级别(将整个数据中心当做单个计算池)的集群管理系统通常会定义出工作负载的规范,并使用调度器将工作负载放置到集群恰当的位置.好的调度器可以让集群的工作处理更高效,同时提高资源利用 ...

  3. 第1节 yarn:14、yarn集群当中的三种调度器

    yarn当中的调度器介绍: 第一种调度器:FIFO Scheduler  (队列调度器) 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源 ...

  4. Web集群调度器-Haproxy

    Web集群调度器-Haproxy 目录 Web集群调度器-Haproxy 一.Web集群调度器 1.常用的Web集群调度器 2. Haproxy应用分析 3. Haproxy的主要特性 4. 常用集群 ...

  5. 海豚调度5月Meetup:6个月重构大数据平台,帮你避开调度升级改造/集群迁移踩过的坑

    当今许多企业都有着技术架构的DataOps程度不够.二次开发成本高.迁移成本高.集群部署混乱等情况,团队在技术选型之后发现并不适合自己的需求,但是迁移成本和难度又比较大,甚至前团队还留下了不少坑,企业 ...

  6. Spark踩坑记——从RDD看集群调度

    [TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...

  7. 被集群节点负载不均所困扰?TKE 重磅推出全链路调度解决方案

    引言 在 K8s 集群运营过程中,常常会被节点 CPU 和内存的高使用率所困扰,既影响了节点上 Pod 的稳定运行,也会增加节点故障的几率.为了应对集群节点高负载的问题,平衡各个节点之间的资源使用率, ...

  8. 容器服务kubernetes federation v2实践五:多集群流量调度

    概述 在federation v2多集群环境中,通过前面几篇文章的介绍,我们可以很容易的进行服务多集群部署,考虑到业务部署和容灾需要,我们通常需要调整服务在各个集群的流量分布.本文下面简单介绍如何在阿 ...

  9. k8s集群StatefulSets的Pod调度查询丢失问题?

    k8s集群StatefulSets的Pod调度查询丢失问题? 考点之简单介绍下StatefulSets 和 Deployment 之间有什么本质区别?特定场景该如何做出选择呢? 考点之你能辩证的说说看 ...

  10. Spark的集群管理器

    上篇文章谈到Driver节点和Executor节点,但是如果想要运行Driver节点和Executor节点,就不能不说spark的集群管理器.spark的集群管理器大致有三种,一种是自带的standa ...

随机推荐

  1. Docker入门系列之三:十二个Dockerfile指令

    本篇文章是关于Dockerfiles的,这是Docker系列文章的第三部分.如果您还没有读过第一部分,请先阅读它,您可以从全新的角度了解Docker容器概念. 第二部分是Docker生态系统的简要介绍 ...

  2. skywalking需要引入的背景(查询调用链),传统的日志查询方法, 引入EFK日志搜索重要性

    1.根据两次请求日志的关键点来截取日志,缩小日志的范围.tail -f orderApi.log | grep "orderKeyWordSubmit"     确定两次异常请求的 ...

  3. 这几个必备的vscode插件,你安装了几个

    作为一名前端开发者,vscode想必大家应该都接触过,就像大多数 IDE 一样,VSCode 也有一个扩展和主题市场,包含了数以千计质量不同的插件. 作为一名熟练掌握各种前端开发工具安装和卸载的大师兄 ...

  4. 在Linux驱动中使用gpio子系统

    reference: https://blog.csdn.net/shiyongyue/article/details/75103446 http://blog.rongpmcu.com/gpiozi ...

  5. supervisor 安装和基本使用

    安装 yum install supervisor touch /var/run/supervisor/supervisor.sock chmod 777 /var/run/supervisor/su ...

  6. Spring的三种依赖注入的方式

    1.什么是依赖注入 依赖注入(Dependency Injection,简称DI),是IOC的一种别称,用来减少对象间的依赖关系. 提起依赖注入,就少不了IOC. IOC(Inversion of C ...

  7. 你真的了解Java内存模型JMM吗?

    哈喽,大家好,我是世杰. 本文我为大家介绍面试官经常考察的「Java内存模型JMM相关内容」 面试连环call 什么是Java内存模型(JMM)? 为什么需要JMM? Java线程的工作内存和主内存各 ...

  8. yb课堂之实战登陆模块开发整合Json Web Token《十》

    开发登陆模块功能,并整合Json Web Token 开发登陆功能 LoginRequest.java UserMapper.xml  UserMapper.java UserService.java ...

  9. 在MoneyPrinterPlus中使用本地chatTTS语音模型

    之前MoneyPrinterPlus在批量混剪,一键AI生成视频这些功能上的语音合成功能都用的是云厂商的语音服务,比阿里云,腾讯云和微软云. 云厂商虽然提供了优质的语音服务,但是用起来还是要收费. 为 ...

  10. 题解:AT_abc359_c [ABC359C] Tile Distance 2

    背景 去中考了,比赛没打,来补一下题. 分析 这道题让我想起了这道题(连题目名称都是连着的),不过显然要简单一些. 这道题显然要推一些式子.我们发现,和上面提到的那道题目一样,沿着对角线走台阶,纵坐标 ...