《Greenplum企业应用实战》一2.2 安装Greenplum的常见问题-阿里云开发者社区

开发者社区> 华章计算机> 正文

《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...

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL Server 2012实施与管理实战指南(笔记)——Ch6连接的建立和问题排查
6.连接的建立和问题排查 会话的建立分成2个部分: 1.连接,即找到这个实例 2.认证,告诉sql server谁要连接 目录 6.连接的建立和问题排查... 1 6.1协议选择和别名.
879 0
Intellij IDEA 乱码解决究极方案和一些常见问题
Intellij IDEA 乱码解决究极方案和一些常见问题
52 0
《企业级ios应用开发实战》一2.7 在 iPhone 上运行应用程序
本节书摘来自华章出版社《企业级ios应用开发实战》一 书中的第2章,第2.7节,作者:杨宏焱,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1299 0
9月29日云栖精选夜读:武装到“牙齿”!阿里云发布史上最强企业云安全架构 11层防护
未来的企业都会基于云来搭建业务的安全系统,企业云安全架构(Cloud Security Compass)就是这么一份供上云企业参考的设计蓝图—— 企业可以像“建房子”一样,依据模块搭建自己的云上安全体系。
3813 0
【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)
【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)
47 0
SQL server 2008 数据库企业版安装教程图解
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。    在现今数据的世界里,公司要获得成功和不断发展,他们需要定位主要的数据趋势的愿景。
1026 0
Hadoop - 企业级大数据管理平台CDH(安装cloudera-manager)
准备工作已经完成,接下来我们就要正式的开始在我们服务器集群上搭建CDH
206 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载