gbase远程导出时,由于是各计算节点并行向发起导出指令的远程客户端所在文件系统写入数据,因此远程客户端需要和每个计算节点(data)节点建立连接,且需要通过集群互联IP地址(私网IP地址)来建立连接,每个计算节点要与gbase远程客户端通信,远程客户端用的端口为16066~16166。
假设集群2节点,IP地址为192.168.56.191和192.168.56.192,远程客户端的IP地址为192.168.56.123,则运行rmt远程导出时的端口通信情况如下:
执行导出sql:
gccli -uroot -h192.168.56.191
rmt:select
* from test.diis_sd_deposit_normal_data_202003_new into outfile
'/home/gbase/diis_sd_deposit_normal_data_202003.txt' fields terminated by ','
WRITEMODE BY OVERWRITES;
192.168.56.191上远程导出时TCP连接:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0
0 192.168.56.191:39044
192.168.56.123:16066
ESTABLISHED 3004/gbased -- 远程导出TCP连接
tcp6 0 0 192.168.56.191:5258 192.168.56.123:40924 ESTABLISHED 2994/gclusterd
192.168.56.192上远程导出时TCP连接:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0
0 192.168.56.191:39044
192.168.56.123:16066
ESTABLISHED 3004/gbased -- 远程导出TCP连接
tcp6 0 0 192.168.56.191:5258 192.168.56.123:40924 ESTABLISHED 2994/gclusterd
因此如果使用rmt远程导出功能,需要开通的端口如下:
远程客户端服务器需要开通16066-16166端口,并保证集群侧每个计算节点能够连接远程导出客户端服务器的16066~16166端口。
远程导出具体的网络连接如下图所示:





