安装完集群之后,使用gcadmin显示集群正常,但是出现不能登录集群客户端的情况,就是gcluster/gnode故障,一般产生此问题的故障原因为环境变量错误、配置参数错误或缺少操作系统权限。
1. 集群部分节点无法登录
现象:
集群状态显示正常,无法登录客户端。
$ gcadmin
CLUSTER STATE: ACTIVED
CLUSTER MODE: NORMAL
+==============================================================
| GCLUSTER INFORMATION |
+==============================================================
+—–+———-+—————-+——–+——–+———+
|rowid| nodename | IpAddress | sgname | dpname | gcware |
+—–+———-+—————-+——–+——–+———+
| 1 | node1 | 192.168.100.101| sg01 | n1 | Online |
+—–+———-+—————-+——–+——–+———+
| 2 | node2 | 192.168.100.102| sg01 | n2 | Online |
+—–+———-+—————-+——–+——–+———+
+=========================================================+
| GCLUSTER INFORMATION |
+=========================================================+
+———+———-+————+———–+———–+
| gnode | gcluster | syncserver | datastate | nodestate |
+———+———-+————+———–+———–+
| CLOSED | OPEN | OPEN | [0] | [0] |
+———+———-+————+———–+———–+
| OPEN | OPEN | OPEN | [0] | [0] |
+———+———-+————+———–+———–+
登录客户端失败
$ /opt/gcluster/server/bin/gbase -uroot -h192.168.100.101
Fatal error in config file handling. Program aborted
查看环境变量
$ cat ~/.bash_profile
GCLUSTER_BASE=/opt/gcl
GCLUSTER_HOME=/opt/gcluster/server
GCLUSTER_SID=gcluster
GBASE_BASE=/opt/gnode
GBASE_HOME=/opt/gnode/server
GBASE_SID=gbase
……
产生原因:
不能启动原因是gbase的环境变量配置错误导致。环境变量中的GCLUSTER_BASE路径信息和客户端登录时使用的路径信息不一致。
解决办法:
请检查无法登录节点的.bash_profile文件中的环境变量,按默认的信息进行修改:
GCLUSTER_BASE=/opt/gcluster
GCLUSTER_HOME=/opt/gcluster/server
GCLUSTER_SID=gcluster
GBASE_BASE=/opt/gnode
GBASE_HOME=/opt/gnode/server
GBASE_SID=gbase
2.集群的gnode无法启动
现象:
集群的gnode状态为closed。
# gcadmin
+==============================================================
| GCLUSTER INFORMATION |
+==============================================================
+—–+———-+—————-+——–+——–+———+
|rowid| nodename | IpAddress | sgname | dpname | gcware |
+—–+———-+—————-+——–+——–+———+
| 1 | node1 | 192.168.100.101| sg01 | n1 | Online |
+—–+———-+—————-+——–+——–+———+
| 2 | node2 | 192.168.100.102| sg01 | n2 | Online |
+—–+———-+—————-+——–+——–+———+
+=========================================================+
| GCLUSTER INFORMATION |
+=========================================================+
+———+———-+————+———–+———–+
| gnode | gcluster | syncserver | datastate | nodestate |
+———+———-+————+———–+———–+
| CLOSED | OPEN | OPEN | [0] | [0] |
+———+———-+————+———–+———–+
| OPEN | OPEN | OPEN | [0] | [0] |
+———+———-+————+———–+———–+
分析原因:
原因1:是gnode的配置文件/opt/gnode/config/gbase_8a_gbase.cnf中内存参数配置过大导致无法启动。
$ cat /opt/gnode/config/gbase_8a_gbase.cnf
net_write_timeout = 3000
#gbase_memory_pct_target=0.8
gbase_heap_data=17G
#gbase_heap_temp=256M
#gbase_heap_large=256M
#gbase_buffer_insert=256M
……
查看gnode 的system.log日志
$ cat /opt/gnode/log/gbase/system.log
Error: express total heap size exceeds memory limit!
Plugin ‘EXPRESS’ init function returned error.
Plugin ‘EXPRESS’ registration as a STORAGE ENGINE failed.
Unknown/unsupported table type: express
Aborting
从上面错误看出,是因为内存参数配置过大导致无法启动。
原因2:是gnode的配置文件/opt/gnode/config/gbase_8a_gbase.cnf中,参数拼写错误导致无法启动。
$ cat /opt/gnode/config/gbase_8a_gbase.cnf
[gbased]
basedir=/opt/gnode/server
atadir=/opt/gnode/userdata/gbase
socket=/tmp/gbase_8a_5050.sock
pid-file=/opt/gnode/log/gbase/gbased.pid
……
datadir参数书写错误(如写为atadir)可以导致gnode无法启动。在express.log和system.log中没有任何错误提示。
一些参数拼写错误,会导致gnode无法启动。
原因3:是gnode的配置文件/opt/gnode/config/gbase_8a_gbase.cnf中,参数值格式导致无法启动。
$ cat /opt/gnode/config/gbase_8a_gbase.cnf
net_write_timeout = 3000
#gbase_memory_pct_target=0.8
gbase_heap_data=1.5G
#gbase_heap_temp=256M
#gbase_heap_large=256M
……
参数值格式可以导致gnode无法启动。在express.log和system.log中没有错误提示。经查gbase_heap_data=1.5G,该值设置为小数,导致gnode无法启动应修改为整数值。
原因4:
操作系统权限引发的故障。
$ ll /opt/gnode/config/
total 8
-rwxrwxrwx 1 gbase gbase 1437 Jul 19 01:05 gbase_8a_gbase.cnf
当参数文件的操作系统权限过大时,可能导致gnode无法启动。
给控制文件适当的权限,即可解决该问题
$ chmod 644 gbase_8a_gbase.cnf
$ ll
total 8
-rw-r–r– 1 gbase gbase 1437 Jul 19 01:05 gbase_8a_gbase.cnf
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/318330.html