《Greenplum企业应用实战》一2.2 安装Greenplum的常见问题

简介:

本节书摘来自华章出版社《Greenplum企业应用实战》一书中的第2章,第2.2节,作者 何勇 陈晓峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.2 安装Greenplum的常见问题

安装Greenplum最常见的错误就是环境变量设置错误,网卡配置错误,或者是每个Segment的通道或网络没有打通。
如果子节点的操作系统环境不一样,也可能会导致各种各样的错误。所以在搭建环境的时候,要求每一台机器的配置基本一样,方便以后管理与维护,避免一些奇怪的问题。下面将介绍几个常见的报错及处理方法。

2.2.1 /etc/hosts配置错误

现在来看一个奇怪的报错SQL,查询一张普通表时报如下错误,但是查询数据字典又不报错:

testDB=# select * from test002;
WARNING:  Greenplum Database detected segment failure(s), system is reconnected
WARNING:  Greenplum Database detected segment failure(s), system is reconnected
ERROR:  No primary gang allocated (cdbgang.c:1635)
testDB=# select count(1) from pg_class;
 count 
-------
   633
(1 row)

报这个错误是因为Master连接不到Segment。如果原先是一个正常的系统,突然报错了,就要想想是否修改了什么导致的。在这个例子中,是因为修改了/etc/hosts,不小心将:

10.20.151.8     inc-dw-hadoop-151-8 sdw1

改成了:

10.20.151.18     inc-dw-hadoop-151-8 sdw1

Master连接Segment的时候连接不上,就报了这个错误,但是pg_class是每一个节点都有的,而Master上的数据只需要在Master上查询,不用连接Segment,所以没有报错,只需将配置修改回来即可。
有些时候,也可以利用这个方法来判断一个操作是否需要与Master交互,比如生成执行计划(关于执行计划的详细内容可阅读第5章)是否只在Master上执行,与Segment有没有交互:

testDB=# explain select * from test002;
WARNING:  Greenplum Database detected segment failure(s), system is reconnected
WARNING:  Greenplum Database detected segment failure(s), system is reconnected
ERROR:  No primary gang allocated (cdbgang.c:1635)
testDB=# explain select count(1) from pg_class;
                            QUERY PLAN                            
------------------------------------------------------------------
 Aggregate  (cost=39.20..39.21 rows=1 width=0)
   ->  Seq Scan on pg_class  (cost=0.00..20.48 rows=7488 width=0)
(2 rows)

这样就可以看出,生成分布式执行计划也是需要与Segment进行交互的。那么为什么下面生成pg_class的执行计划不会报错呢?这是因为表test002是业务数据,数据分布在Segment上,生成的执行计划是分布式的,而pg_class是保存表元数据信息的数据字典,数据保存在Master上,生成的执行计划是单机的,详见第5章执行计划。
在Greenplum 4.3中,这个报错是:ERROR: Unexpected internal error (cdbgang.c:1622)。报错的内容与原因都是一样的,只是在显示上Greenplum 4.1与Greenplum 4.3有所区别。
在Greenplum 3.3.x版本中,如果修改了Master的/etc/hosts配置,将:

127.0.0.1    localhost  localhost.localdomain

错写成:

127.0.0.1    localhost  localhost.localdomain mdw

那么还会有如下的奇怪现象发生。
在创建表的时候Master没有报错,说明Master与Segment是可以通信的,但是查询这张表的时候就会报如下的错误:

testDB=# create table aaa(like bbb);
NOTICE:  Table doesn't have 'distributed by' clause, defaulting to distribution columns from LIKE table
CREATE TABLE
testDB =# select * from bbbb;
ERROR:  Interconnect timeout: Unable to complete setup of all connections within time limit.
DETAIL:  Completed 2 of 6 incoming and 0 of 0 outgoing connections.
gp_interconnect_setup_timeout = 20 seconds.

错误提示已经超时了,建议将超时时间设置大一点,但是修改相关参数还是没有用。其实是因为Segment在连接到Master的时候使用的IP是127.0.0.1,指定到了本地机器,导致Segment连接不到Master,故报出这个错误。将Master连接到Segment就没有问题,因此将对应的/etc/hosts修改回来就可以了。
将/etc/hosts改回来之后,进行查询后还是报同样的错,这是因为当前连接还没有生效,要退出当前的session,重新连接Greenplum才行。
Greenplum内部会有很多的网络通信交互,因此建议将操作系统的防火墙关闭,避免各种奇怪的问题,其中防火墙就会引起本节介绍的在Greenplum 3.3.x版本中遇到的问题。

2.2.2 MASTER_DATA_DIRECTORY设置错误

没有设置MASTER_DATA_DIRECTORY,会报这样的错误:

[gpadmin@dw-greenplum-1 ~]$ gpstop 
20120110:11:16:52:gpstop:dw-greenplum-1:gpadmin1-[INFO]:-Starting gpstop with args: ''
20120110:11:16:52:gpstop:dw-greenplum-1:gpadmin1-[INFO]:-Gathering information and validating the environment...
20120110:11:16:52:gpstop:dw-greenplum-1:gpadmin1-[CRITICAL]:-gpstop failed. (Reason='Environment Variable MASTER_DATA_DIRECTORY not set!') exiting...

这样会导致MASTER_DATA_DIRECTORY参数的目录设置错误:

[gpadmin@dw-greenplum-1 ~]$ echo $MASTER_DATA_DIRECTORY 
/home/gpadmin/gpdata/gpmaster/gpseg-1
[gpadmin@dw-greenplum-1 ~]$ export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg1
[gpadmin@dw-greenplum-1 ~]$ gpstop 
20120110:11:19:43:gpstop:dw-greenplum-1:gpadmin-[INFO]:-Starting gpstop with args: 
20120110:11:19:43:gpstop:dw-greenplum-1:gpadmin-[INFO]:-Gathering information and validating the environment...
20120110:11:19:43:gpstop:dw-greenplum-1:gpadmin-[CRITICAL]:-gpstop failed. (Reason='[Errno 2] No such file or directory: '/home/gpadmin/gpdata/gpmaster/gpseg1/postgresql.conf'') exiting...

在初始化数据库的时候要多注意环境变量的设置,如果环境变量设置不当,很容易造成数据库初始化错误。

相关文章
|
16天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之ADB MySQL湖仓版和 StarRocks 的使用场景区别,或者 ADB 对比 StarRocks 的优劣势
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
16天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之如何使用ADB MySQL湖仓版声纹特征提取服务
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
SQL 数据采集 算法
阿里云PostgreSQL_开发实践_1 | 学习笔记
简介:快速学习阿里云PostgreSQL_开发实践_1
135 1
阿里云PostgreSQL_开发实践_1 | 学习笔记
|
关系型数据库 MySQL 数据挖掘
阿里云PostgreSQL_开发实践_5 | 学习笔记
简介:快速学习阿里云PostgreSQL_开发实践_5
319 0
阿里云PostgreSQL_开发实践_5 | 学习笔记
|
SQL 存储 Oracle
阿里云PostgreSQL_开发实践_3 | 学习笔记
简介:快速学习阿里云PostgreSQL_开发实践_3
95 0
阿里云PostgreSQL_开发实践_3 | 学习笔记
|
SQL 存储 NoSQL
Greenplum应用最佳实践
Greenplum分布式分析数据库 通用操作的最佳实践。持续更新
1279 0
Greenplum应用最佳实践
|
SQL 安全 固态存储
【学习资料】第18期快速入门PostgreSQL应用开发与管理 - 8 PostgreSQL 管理
大家好,这里是快速入门PostgreSQL应用开发与管理 - 8 PostgreSQL 管理
12705 0
|
SQL 存储 关系型数据库
【学习资料】第2期PostgreSQL、Greenplum 技术+108个场景结合最佳实践《如来神掌》
大家好,这里是PostgreSQL、Greenplum 《如来神掌》 - 目录 - 珍藏级
【学习资料】第2期PostgreSQL、Greenplum 技术+108个场景结合最佳实践《如来神掌》
|
安全 关系型数据库 Linux
【学习资料】第11期快速入门PostgreSQL应用开发与管理 - 1 如何搭建一套学习、开发PostgreSQL的环境
大家好 ,这里是快速入门PostgreSQL应用开发与管理 - 1 如何搭建一套学习、开发PostgreSQL的环境