导出Cassandra数据指南

网友投稿 831 2022-05-28

1.  导出方案简介

导出方案如下图所示,客户需要配置导出执行机,obsfs文件系统,下载cqlsh客户端;执行cqlsh导出命令将数据从GaussDB for Cassandra导出到执行机;执行机上的cqlsh会将数据写到挂载的obsfs文件系统中(如不挂载,则写入执行机本地盘),之后用户可从obsfs桶中消费数据。

2.  导出详细步骤及配置

配置导出执行机

1.  )在弹性云服务器页面购买弹性云服务器,根据对导出性能需求购买所需规格,建议至少32U64G。镜像无论选择私有镜像还是公共镜像,请保证操作系统是Centos或EulerOS

2. )如果使用本地文件系统,则需要增加超高IO的数据盘盘,数据盘容量根据业务需要指定;

3. )如果使用obsfs文件系统,则选择默认配置即可

4. )网络配置中请保证执行机和导出实例的vpc,子网,安全组保持一致,弹性公网ip无要求

5.  )创建完成后,根据https://support.huaweicloud.com/qs-nosql/nosql_02_0009.html中的下载链接获取cqlsh客户端,执行机上使用wget命令下载客户端;下载后解压并校验MD5值,并执行chmod +x cqlsh

执行机挂载obsfs文件系统

1.)根据链接https://support.huaweicloud.com/fstg-obs/obs_12_0004.html 中链接和配置获取obsfs工具,使用时务必从官网下载最新版本

2.)  根据指南https://support.huaweicloud.com/fstg-obs/obs_12_0006.html 初始化obsfs

3.)  在执行机上挂载并行文件系统,请参考https://support.huaweicloud.com/fstg-obs/obs_12_0008.html ,挂载命令可参考:

./obsfs obsfile-guangzhou /mountpoint -o url=obs.cn-south-1.myhuaweicloud.com -o passwd_file=/etc/passwd-obsfs -o nonempty -o big_writes -o max_write=131072 -o max_background=100 -o use_ino

其中桶名,目录,url请根据实际情况指定

4. )  安装完成后请执行cat /etc/obsfsversion,确保版本为2020-10-15之后版本

配置导出任务

1. ) 导出脚本参考

Pagesize默认值为1000,如果该表单行比较大,则建议调整该值,可提升导出速度;

例如当单行size超过1k时,设置为400,命令为pagesize=400

#!/bin/bash # the script use for expor cassnadra tables # 2020/09/30 [ ${table} ] || exit 1 [ -d /data/export ] || exit 1 exportdir=/data/export/cassandra/${table}/`date -d "1 days ago" +%Y-%m-%d` logdir=/data/logs/${table}/`date -d "1 days ago" +%Y-%m-%d` rm -f $exportdir/* [ -d ${exportdir} ] || mkdir -p ${exportdir} [ -d ${logdir} ] || mkdir -p ${logdir} cqlsh ${ip} -u ${user} 8635 -p "${password}" --request-timeout=3600 -e "COPY ${keyspace}.${table} to '${exportdir}' with NUMPROCESSES=${process} AND RATEFILE='${logdir}/rate.txt' AND RESULTFILE='${logdir}/export_result' AND dataformats='${format}' AND MAXOUTPUTSIZE=${MAXOUTPUTSIZE} AND MAXATTEMPTS=3;" > ${logdir}/${table}.log 2>&1 result=`cat ${logdir}/export_result |grep Results |grep success` [ "${result}" != "" ] || exit 1 touch ${exportdir}/_SUCCESS #sed -n 1p ${logdir}/export_result|grep "success"

导出Cassandra数据指南

2. ) 导出参数设置

建议设置如下参数,process根据实际需求设置,增大会加快导出速率,减小会放缓导出速率,无特殊要求设置为16,参数上限视执行机负载和集群负载上限而定

3.  使用建议

1. ) 建议大表的导出分开在不同的执行机上

2. ) 当同一个执行机上的多个导出任务压力都比较大时,建议分时段进行导出

4.  FAQ

1.   虚拟机cpu到60%以上之后挂载文件系统的进程就挂掉了,导致无法正常写数据

客户需要更换obsfs客户端版本,obsfs 10月之前的版本存在大压力写导致进程退出的问题,该问题已于10月份修复并更新客户端至官网,链接如下:https://support.huaweicloud.com/fstg-obs/obs_12_0004.html

2.   _SUCCESS时间的问题

文件生成之后才做下游任务,但发现文件生成之后导出任务并未结束;

如果要获取任务完成时间,请使用使用结果文件的mtime时间

3.   判断导出任务是否结束脚本使用错误,

判断导出结束的标准使用导出的结果文件:是否包含success

使用:result=`cat export_cycling_t1.result |grep Results |grep success`

云数据库 GaussDB(for Cassandra) 云数据库 MySQL 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:成为指标的“绝地武士”:tableau创建指标的 10 个技巧和窍门
下一篇:《学习OpenCV 3(中文版)》 —从摄像头中读取
相关文章