总结 CirroData 开发中曾遇到的问题的处理方法

基础知识

std::map

下标访问,若元素不存在会导致新增该元素使用成员函数erase()后,切记不可使用下标访问

static

static变量是指静态的变量,不管是在全局还是局部声明的static变量都存放于程序的全局变量区域,所以它的生命周期是从程序开始到程序结束。但是static变量的作用域并不等同于它的生存周期,它的作用域决定于它被定义的位置。可以认为static变量的作用域<=生存周期

行云编译相关

序列化

增加成员,对应proto文件也要添加文件路径: be/src/proto/xxxx.proto

注意:需要清三方库,否则编译会报错

编译报错

报错: make[1]: *** No rule to make target `be/src/idl/all’. Stop.
编译命令后加上 idl

1
./build.sh --build=release idl

行云打包

跳过参数检查,适用于当前代码中配置参数与远端有不一致的情况

1
./build.sh --build=release --pack_all=1 --strip-debug --test-flags-checking all

仅生成CirroEngine与CirroKV安装包

1
./build.sh --build=release --pack_all=1 all

1
./build.sh --build=release --pack_deploy=1 all

生成CEA安装包,包括CirroEngine,RegistrationCenter,MetaProxy,CirroKV

1
./build.sh --build=release --pack_deploy=2 all

访问zookeeper

1
./bin/zkCli.sh -server ${ip}:${port}

公共环境使用hdfs

  1. 获取kerberos认证文件路径[kerb_keytab_file]
1
grep -aA10 "keytab" conf/ds.xml
  1. 查看keytab文件中的帐号列表,获取当前节点[kerb_principal]
1
klist -ket /home/cirrofs/cirrofs_cfs/key/cirrofs.keytab
  1. 注册
1
kinit -kt [kerb_keytab_file] [kerb_principal]

例如:172.16.44.53节点

1
kinit -kt /home/cirrofs/cirrofs_cfs/key/cirrofs.keytab cirrofs/hdp53.bonc.com@BONC4.COM

hadoop 配置文件路径

1
2
source conf/config-env.sh
echo $HADOOP_HOME/etc/hadoop/

查看hdfs磁盘使用情况

1
hdfs dfs -du -h /

查看HDFS中的数据是否损坏

1
hdfs fsck /path/to/file_or_directory -files -blocks -locations

CirroEngine下conf配置目录注意事项

conf目录下不能添加hadoop同名配置文件,否则会导致默认hdfs连接使用conf目录下的配置文件,引发启动失败

sql下发过程

SQLDeveloper --> session --> 计划 --> node

git开启push前不做检查开关

1
git push -u origin BugFix/gyf/42710 '--push-option=--no-ticket-check'

redmine 楼层倒排

  1. 点击右上角我的账号
  2. 首选项显示注释,更改为按时间顺序(倒序)

报错unbound variable

shell脚本中有未声明的变量

在 shell 脚本中,默认情况下,如果使用了未声明的变量,脚本不会报错,而是会将该变量视为空字符串。这可能会导致脚本在运行过程中出现意外的结果或错误。若想开启对未声明变量的报错提示,可以在脚本开头添加以下行

1
set -o nounset

或者简写为

1
set -u

SQL字符串中包含单引号

为了避免单引号被解析为末尾的单引号,可以使用双单引号 ‘’ 代替单引号 ’