分享知识,分享快乐

0%

用户无法在yarn集群上提交任务

解决方案:

关闭所有的ResourceManager进程

通过zk客户端查看

sh /opt/cloudera/parcels/CDH/lib/zookeeper/bin/zkCli.sh

ls /rmstore/ZKRMStateRoot/RMAppRoot 目录下

不为空则使用该命令 rmr /rmstore/ZKRMStateRoot/RMAppRoot 删除目录文件

删除完再启动ResourceManager恢复正常
此种方式是将ZK中需要RM恢复的任务清空实现的,即RM不恢复正在运行的任务,会导致集群正在运行的任务停止

原文链接:https://blog.csdn.net/anguoan/article/details/128613672

阅读全文 »

cloudcanl 2.2.4 安装部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sudo yum update
sudo yum -y install epel-release
# base util

sudo yum install -y yum-utils
sudo yum install -y lsof
sudo yum install -y bc
sudo yum install -y p7zip p7zip-plugins

# install docker

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
systemctl enable docker
sudo wget "https://pc.clougence.com/docker-compose-1.28.3" -O /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# check

docker -v
docker-compose version

系统准备

clougence用户ulimit上限调整为102400

1
2
vi  /etc/security/limits.d/20-nproc.conf
## 调节clougence用户的资源限制
1
2
3
# 解压*
7z x cloudcanal-2.2.4.7z -o./cloudcanal_home
cd cloudcanal_home

5. 启动CloudCanal

  • 执行启动命令: sh startup.sh
  • 当终端出现 cloudcanal start 时,即启动成功
    7b00e562-cd45-4905-a626-1356503d8213-image.png

6. 确认启动成功

  • 启动过程将耗时 1 分钟左右,访问控制台 http://{您部署机器的ip}:8111 正确登录并开始操作
阅读全文 »

tidb备份,还原,cdc实时同步

全量备份

1
2
3
4
#指定时间备份
tiup br backup full --pd "172.20.192.115:2379" \
--storage "s3://tidb/all20240520?access-key=minioadmin&secret-access-key=***&endpoint=http://172.20.192.151:6060&force-path-style=true" \
--backupts='2024/05/18 00:00:00'

增量备份

1
2
3
4
5
6
# 获取上一次的备份时间戳
tiup br validate decode --field="end-version" --storage 's3://tidb/all20240520?access-key=minioadmin&secret-access-key=minioadmin&endpoint=http://172.20.192.151:6060'| tail -n1

tiup br backup full --pd "172.20.192.115:2379" \
--storage "s3://tidb/add20240520?access-key=minioadmin&secret-access-key=***&endpoint=http://172.20.192.151:6060&force-path-style=true" \
--lastbackupts='449829037670400000'

cdc实时同步

1
2
3
4
# 获取上一次的备份时间戳
tiup br validate decode --field="end-version" --storage 's3://tidb/all20240520?access-key=minioadmin&secret-access-key=***&endpoint=http://172.20.192.151:6060'| tail -n1

tiup cdc cli changefeed create --server=http://172.20.192.108:8300 --sink-uri="mysql://root:***@172.20.192.233:32570" --changefeed-id="prod-to-k8s" --start-ts="449887328375668790"

– 对于错误代码为 8138、8139 和 8140 的错误,可以通过设置 set @@tidb_enable_mutation_checker=0 跳过检查。
– 对于错误代码为 8141 的错误,可以通过设置 set @@tidb_txn_assertion_level=OFF 跳过检查。

“error”: {
“time”: “2024-05-20T18:08:00.547340271+08:00”,
“addr”: “172.20.192.107:8300”,
“code”: “CDC:ErrChangefeedUnretryable”,
“message”: “[CDC:ErrMySQLTxnError]MySQL txn error: context deadline exceeded”
}

tiup cdc cli changefeed create --server=http://172.20.192.107:8300 --sink-uri=“mysql://root:***@172.20.192.233:32570?max-txn-row=20” --changefeed-id=“prod-to-k8s” --start-ts=“449889998692417548” --config /home/tidb/cdc-prod-to-k8s.toml

阅读全文 »

TIDB搭建双集群主从复制

官网参考文档

https://docs.pingcap.com/zh/tidb/v6.5/replicate-between-primary-and-secondary-clusters#搭建双集群主从复制

TiCDC 安装部署与集群运维

https://docs.pingcap.com/zh/tidb/v6.5/deploy-ticdc

  1. 备份数据。

    在上游集群中执行 BACKUP 语句备份数据:

    1
    MySQL [(none)]> BACKUP DATABASE * TO '`s3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://${HOST_IP}:6060&force-path-style=true`' RATE_LIMIT = 120 MB/SECOND;
    1
    2
    3
    4
    5
    6
    +----------------------+----------+--------------------+---------------------+---------------------+
    | Destination | Size | BackupTS | Queue Time | Execution Time |
    +----------------------+----------+--------------------+---------------------+---------------------+
    | local:///tmp/backup/ | 10315858 | 431434047157698561 | 2022-02-25 19:57:59 | 2022-02-25 19:57:59 |
    +----------------------+----------+--------------------+---------------------+---------------------+
    1 row in set (2.11 sec)

    备份语句提交成功后,TiDB 会返回关于备份数据的元信息,这里需要重点关注 BackupTS,它意味着该时间点之前数据会被备份,后边的教程中,将使用 BackupTS 作为数据校验截止时间TiCDC 增量扫描的开始时间

  2. 恢复数据。

    在下游集群中执行 RESTORE 语句恢复数据:

    1
    mysql> RESTORE DATABASE * FROM '`s3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://${HOST_IP}:6060&force-path-style=true`';
    1
    2
    3
    4
    5
    6
    +----------------------+----------+--------------------+---------------------+---------------------+
    | Destination | Size | BackupTS | Queue Time | Execution Time |
    +----------------------+----------+--------------------+---------------------+---------------------+
    | local:///tmp/backup/ | 10315858 | 431434141450371074 | 2022-02-25 20:03:59 | 2022-02-25 20:03:59 |
    +----------------------+----------+--------------------+---------------------+---------------------+
    1 row in set (41.85 sec)
  3. 创建一个 TiCDC 同步任务,实时同步主集群数据到从集群

1
tiup cdc cli changefeed create --server=http://172.20.192.108:8300 --sink-uri="mysql://root:Admi*@172.20.192.101:4000" --changefeed-id="upstream-to-downstream" --start-ts="445309452101091541"

以上命令中:

  • --server:TiCDC 集群任意一节点的地址
  • --sink-uri:同步任务下游的地址
  • --start-ts:TiCDC 同步的起点,需要设置为实际的备份时间点(也就是第 2 步:迁移全量数据提到的 BackupTS)

使用 TiCDC 命令行工具来查看集群状态

阅读全文 »

漫道云环境安装Tidb

安装 TiDB Operator CRDs

1
kubectl create -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.6.0-beta.1/manifests/crd.yaml

helm delete tidb-operator -n tidb-admin

kubectl create namespace tidb-cluster && \

wget https://raw.githubusercontent.com/pingcap/tidb-operator/v1.6.0-beta.1/examples/advanced/tidb-cluster.yaml

kubectl -n tidb-cluster apply -f tidb-cluster.yaml

kubectl -n tidb-cluster delete -f tidb-cluster.yaml

wget https://raw.githubusercontent.com/pingcap/tidb-operator/v1.6.0-beta.1/examples/basic/tidb-dashboard.yaml

kubectl -n tidb-cluster apply -f tidb-dashboard.yaml

阅读全文 »

tidb 升级

  1. 先升级 TiUP 版本(建议 tiup 版本不低于 1.11.3):

    1
    2
    tiup update --self
    tiup --version
  2. 再升级 TiUP Cluster 版本(建议 tiup cluster 版本不低于 1.11.3):

    1
    2
    tiup update cluster
    tiup cluster --version
1
tiup cluster check tidb-prod-101 --cluster

停止组件cdc

tiup cluster stop tidb-prod -R cdc

1
tiup cluster upgrade tidb-prod-101 v7.5.1

tiup cluster display tidb-prod-101

阅读全文 »

搭建 MinIO 作为备份存储系统 ,兼容S3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio

# 配置访问 minio 的 access-key access-screct-id

export HOST_IP='172.20.192.151'
export MINIO_ROOT_USER='minio'
export MINIO_ROOT_PASSWORD='miniostorage'

# 创建数据目录, 其中 backup 为 bucket 的名称

mkdir -p data/backup

# 启动 minio, 暴露端口在 6060

/opt/module/minio server /opt/module/data --address :6060 &

单节点部署多磁盘

1
/opt/module/minio server --address :6060  /dfs/data1/s3data /dfs/data2/s3data /dfs/data3/s3data &

备份 还原 TIDB数据

1
2
3
4
5
6
7
8
mycli -h172.20.192.70 -P4000 -uroot

BACKUP DATABASE test TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;


mycli -h172.20.192.115 -P4000 -uroot

mysql> RESTORE DATABASE test FROM 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true';
阅读全文 »

1. 发生 “close index channel failed” 和 “too many tablet versions” 错误应该如何处理?

上述报错是因为导入频率太快,数据没能及时合并 (Compaction) ,从而导致版本数超过支持的最大未合并版本数。默认支持的最大未合并版本数为 1000。可以通过如下方法解决上述报错:

  • 增大单次导入的数据量,降低导入频率。

  • 修改 BE 配置文件 be.conf 中相关参数的配置,以加快 Compaction:

    • 对于明细表、聚合表和更新表,可以适当调大 cumulative_compaction_num_threads_per_diskbase_compaction_num_threads_per_diskcumulative_compaction_check_interval_seconds 的值。例如:

      1
      2
      3
      cumulative_compaction_num_threads_per_disk = 4
      base_compaction_num_threads_per_disk = 2
      cumulative_compaction_check_interval_seconds = 2
    • 对于主键表,可以适当调大 update_compaction_num_threads_per_disk 的值。适当调小 update_compaction_per_tablet_min_interval_seconds 的值。

    修改完成后,需要观察内存和 I/O,确保内存和 I/O 正常。

curl -XPOST http://172.20.85.188:8040/api/update_config?tablet_max_versions=10000

阅读全文 »

使用Yarn标签机制实现任务资源隔离

官网参考地址: https://docs.cloudera.com/runtime/7.2.0/yarn-allocate-resources/topics/yarn-configuring-node-labels.html

参考地址: https://zhuanlan.zhihu.com/p/674882366

1
2
3
4
[root@bigdata-1 ~]# sudo -u hdfs hadoop fs -mkdir -p /yarn/node-labels
[root@bigdata-1 ~]# sudo -u hdfs hadoop fs -chown -R yarn:yarn /yarn
[root@bigdata-1 ~]# sudo -u hdfs hadoop fs -chmod -R 700 /yarn
[root@bigdata-1 ~]# hadoop fs -ls /yarn

YARN Service Advanced Configuration Snippet (Safety Valve) for yarn-site.xml

add the following:

  • Set the following property to enable Node Labels:

    1
    2
    Name: yarn.node-labels.enabled
    Value: true
  • Set the following property to reference the HDFS node label directory

    1
    2
    Name: yarn.node-labels.fs-store.root-dir
    Value: hdfs://:/

    For example,

    1
    2
    Name: yarn.node-labels.fs-store.root-dir
    Value: hdfs://node-1.example.com:8020/yarn/node-labels/

使用命令方式给yarn集群添加标签

1
sudo -u yarn yarn rmadmin -addToClusterNodeLabels "x(exclusive=true),y(exclusive=false)"

使用命令方式节点关联标签:

阅读全文 »