2

我开始探索演练,以满足我们在半结构化数据上运行 SQL 的要求。我已经用 zookeeper 设置了一个 4node 钻集群。对它的实际工作原理有几个问题,

  1. 当我使用 dfs(本地文件系统)以分布式模式运行 Drill 时,我在其中一个节点(比如 n1)上有一个 1GB 的 Json 文件。我可以通过从任何节点(n1、n2、n3、n4)启动 sqlline 来运行查询,inspire 只有在 n1 上有日期。我的问题是

    一个。查询是否在所有节点上执行?即,Drill 会通过将数据分发到其他节点 n2、n3n4 来并行化查询执行吗?

    湾。如果否,通过在所有节点 n2、n3、n4 上复制相同的文件将有助于利用 Drill 的 MPP 架构?

4

2 回答 2

1

查询是否在所有节点上执行?也许,节点必须运行 Drill,并且您要查询的数据必须在分布式文件系统上,例如 HDFS。Drill 不分发文件。

运行 Drillbit 服务的节点(你安装 Drill 的地方)参与查询工作。只有出现在查询中的列才会从文件中加载。Drill 尝试将查询中的任何过滤器推送到叶节点,以防止节点发送未通过过滤器的行。根据文档,Drill 在查询执行期间最大化数据局部性,而无需通过网络或节点之间移动数据。Minor Fragments部分讨论并行化。当片段中的记录数达到 100,000 时,Drill 会并行操作。

于 2015-07-22T21:52:09.063 回答
0

Drill 根据其元数据执行所有查询。因此,如果您的目标以跨节点的分布式格式存储,则同样适用于 Drill。在其他情况下,它将仅在特定节点上运行。

考虑指向 RDBMS 源的钻取,然后它在一个节点上执行查询。

于 2015-11-26T07:06:43.847 回答