gpexpand扩展集群节点过程及问题解决
来源:互联网 发布:程序员技术博客模板 编辑:程序博客网 时间:2024/06/01 08:55
1.使用root用户修改相关参数
主要是/etc/sysctl.conf和/etc/security/limits.conf和/etc/hostname
2.创建gpadmin组和用户,并安装相关的依赖包;
3.保持和之前集群的目录一致,安装greenplum;
4.配置新加入的主要和之前的所有主机的ssh互信;
注意:配置ssh互信时,由于ssh版本升级,导致使用gpssh-exkeys配置失败,所以只能使用每个节点配置的方法来完成,后续希望能找到方法进行优化。
5.使用gpexpand -f 创建扩展文件,这一步是交互的,主要是问你需要创建几个节点,每个节点的目录名称,完成后,会自动创建一个可扩展文件,此文件中写着扩展后所有的节点名称及对应的路径;
6.使用gpexpand -i expand_file扩展集群。
7.集群扩展过程中,会遇到扩展失败的问题,希望做好准备,不要慌张,仔细查找错误信息,并找到相关的日志信息,一般都能正常解决,下面是我遇到的问题和解决方法
(1) 扩展失败时,要求使用gpexpand --rollbackup进行回滚
看到扩展失败时,要求执行这个命令,当时也就执行了,但是扩展时发现集群已经处于shutdown状态,所以试着用gtstart命令进行启动,发现启动失败了,最后使用gpstart -m命令进行启动,也就是只启动gpmaster节点,启动后,就可以执行gpexpand --rollbackup了
(2) 扩展过程中,出现如下错误信息:
20161115:14:45:11:157784 gpexpand:ETL:gpadmin-[ERROR]:-gpexpand failed: ExecutionError: 'non-zero rc: 2' occured. Details: 'GPSTART_INTERNAL_MASTER
_ONLY=1 $GPHOME/bin/gpstart -a -R -v' cmd had rc=2 completed=True halted=False
.......
stderr=''
20161115:14:35:06:136757 gpsegstart.py_storm2:gpadmin:storm2:gpadmin-[DEBUG]:-[worker4] finished cmd: Starting seg at dir /export/gpdata/gpdatam3/gp
seg6 cmdStr='env GPSESSID=0000000000 GPERA=01072a35fd4d98f5_161115143503 $GPHOME/bin/pg_ctl -D /export/gpdata/gpdatam3/gpseg6 -l /export/gpdata/gpda
tam3/gpseg6/pg_log/startup.log -w -t 600 -o " -p 50002 -b 24 -z 48 --silent-mode=true -i -M quiescent -C 6 " start 2>&1' had result: cmd had rc=0 c
ompleted=True halted=False
stdout='waiting for server to start.... done
server started in mirror or quiescent mode
'
stderr=''
20161115:14:35:07:136757 gpsegstart.py_storm2:gpadmin:storm2:gpadmin-[DEBUG]:-[worker8] finished cmd: Starting seg at dir /export/gpdata/gpdatap1/gp
seg40 cmdStr='env GPSESSID=0000000000 GPERA=01072a35fd4d98f5_161115143503 $GPHOME/bin/pg_ctl -D /export/gpdata/gpdatap1/gpseg40 -l /export/gpdata/gp
datap1/gpseg40/pg_log/startup.log -w -t 600 -o " -p 40004 -b 58 -z 48 --silent-mode=true -i -M quiescent -C 40 " start 2>&1' had result: cmd had rc
=1 completed=True halted=False
stdout='waiting for server to start......pg_ctl: PID file "/export/gpdata/gpdatap1/gpseg40/postmaster.pid" does not exist
stopped waiting
pg_ctl: could not start server
Examine the log output.
.........
如果简单的看最上面的日志信息,可以就被骗了,因为从最上面的日志信息中看不出任何解决问题的原因,所以接着网下看日志信息,终于发现,有很多节点都能正常启动,但是突然到某一节点时,就突然发现pid文件不存在了,看蓝色字本部分,由于每个节点都有各自的日志信息,所以试着去日志中去查找,终于在日志中发现了问题产生的原因
/export/gpdata/gpdatap1/gpseg40/pg_log/startup.log,日志中的信息如下所示:
2016-11-15 11:22:53.116290 CST,,,p129385,th1492498208,,,,0,,,seg-1,,,,,"FATAL","XX000","could not create semaphores: No space left on device (pg_sem
a.c:132)","Failed system call was semget(40002049, 17, 03600).","This error does *not* mean that you have run out of disk space.
It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS),
would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its
max_connections parameter (currently 750).
The PostgreSQL documentation contains more information about configuring your system for PostgreSQL.",,,,,,"InternalIpcSemaphoreCreate","pg_sema.c",
132,1 0xb07dce postgres errstart + 0x4de
2 0x8dde58 postgres PGSemaphoreCreateInitVal + 0x328
3 0xbfbb63 postgres FileRepIpc_ShmemInit + 0x1a3
4 0x95fb7f postgres CreateSharedMemoryAndSemaphores + 0x59f
5 0x8fa4ad postgres PostmasterMain + 0xc5d
6 0x7fc8bf postgres main + 0x44f
7 0x367541ed1d libc.so.6 __libc_start_main + 0xfd
8 0x4c4869 postgres <symbol not found> + 0x4c4869
原因出在了共享内存参数上,如下所示:
[root@GP-Master gpdata]# ipcs -ls
------ Semaphore Limits --------
max number of arrays = 2560
max semaphores per array = 50100
max semaphores system wide = 128256000
max ops per semop call = 50100
semaphore max value = 32767
解决方案:
先设置参数如下,并使之生效,发现还是报同样的错误
重新设置参数如下:kernel.sem = 50100 128256000 50100 2560
再次扩展,发现成功了。
总结:看来对如下参数的理解还是不到位,需要再次补充知识。
- gpexpand扩展集群节点过程及问题解决
- 扩展计算节点时偶遇 gpexpand --rollback问题
- Hadoop集群节点扩展
- 11g R2 节点系统重建后,删除节点及添加节点 过程和问题解决
- Hadoop集群扩展子节点
- MySQL集群搭建及问题解决
- Mysql集群添加节点——水平扩展
- Hadoop集群节点扩展之后,更改HDFS数据副本数
- Greenplum学习10--添加节点gpexpand ①(在每台segment加入一个节点)(生成节点配置文件)
- Greenplum学习11--添加节点gpexpand ②(添加一台主机,数据先迁移)(改写节点配置文件)
- Websphere集群环境下因修改时间而导致的节点停止,节点同步失败问题解决
- Hadoop集群安装部署---从单节点的伪分布式扩展为多节点分布式
- elasticsearch介绍集群,模拟横向扩展节点、节点宕机、改变分片
- elasticsearch介绍集群,模拟横向扩展节点、节点宕机、改变分片
- sheepdog集群节点加入时,视图变化过程分析
- WAS集群:记一次Node Agent不活动问题解决过程
- Cygwin+NS2的安装过程及问题解决
- Webmin详细安装过程及问题解决
- Android 5.0 修改背光自动调节最低亮度值
- 在MVC中使用BootStrap DateTimepicker
- eclipse对jdk版本的要求
- Data Binding给Button设置背景无效
- 负载均衡环境中和如何设置Expires和Etag
- gpexpand扩展集群节点过程及问题解决
- Mysql中的视图
- 函数优先级大于变量优先级的深入探究————浏览器的预解析过程
- sql server小数四舍五入,保留
- 文章标题
- android 网络图片显示
- oracle查询某个时间段的数据
- 学习笔记之JavaSE(21)--多线程1
- hdu 1421 搬寝室 dp