2

我正在尝试在 Citus 5.0 上对分布式连接进行性能测试。我有一个主节点和两个工作节点,以及一些在默认配置下按预期运行的散列分布式表。我需要使用任务跟踪器执行器来测试需要重新分区的查询。

但是,设置citus.task_executor_type为后task-tracker,所有涉及分布式表的查询都会失败。例如:

postgres=# SET citus.task_executor_type TO "task-tracker";
SET
postgres=# SELECT 1 FROM distrib_mcuser_car LIMIT 1;

ERROR:  failed to execute job 39
DETAIL:  Too many task tracker failures

置入具有相同citus.task_executor_typepostgresql.conf效果。

是否有一些我缺少的其他配置更改是切换任务执行器所必需的?

编辑,更多信息:

  • PostGIS 安装在所有节点上
  • postgres_fdw 安装在 master 上
  • 所有其他配置都是原始的

到目前为止,所有表格的分布如下:

SELECT master_create_distributed_table('table_name', 'id', 'hash');
SELECT master_create_worker_shards('table_name', 8, 2);

的架构distrib_mcuser_car相当大,所以这里有一个更简单的例子:

postgres=# \d+ distrib_test_int
                   Table "public.distrib_test_int"
 Column |  Type   | Modifiers | Storage | Stats target | Description
--------+---------+-----------+---------+--------------+-------------
 num    | integer |           | plain   |              |

postgres=# select * from distrib_test_int;
ERROR:  failed to execute job 76
DETAIL:  Too many task tracker failures
4

2 回答 2

3

任务跟踪器执行器将任务(对分片的查询)分配给在工作节点上运行的后台工作程序,该工作程序节点连接localhost到运行任务。如果您的超级用户在连接时需要密码localhost,那么后台工作人员将无法连接。这可以通过.pgpass在工作节​​点上添加一个文件来连接到localhost.

于 2016-05-02T09:11:13.357 回答
2

您可以修改身份验证设置并让工作人员通过更改pg_hba.conf.

将以下行添加到 master pg_conf.hba

host    all             all             [worker 1 ip]/32            trust
host    all             all             [worker 2 ip]/32            trust

对于每个 worker-1 ,以下几行pg_hba.conf

host    all             all             [master ip]/32              trust
host    all             all             [worker 2 ip]/32            trust

并遵循 worker-2 pg_hba.conf

host    all             all             [master ip]/32              trust
host    all             all             [worker 1 ip]/32            trust

这仅用于测试,请勿在未采取必要的安全预防措施的情况下将其用于生产系统。

于 2016-05-09T06:30:22.753 回答