Apache以分布式模式钻取

时间:2015-03-31 09:35:39

标签: apache hive mapr apache-drill

我开始探索钻取我们要求运行SQL-on-semi结构化数据的要求。我已经设置了一个带有zookeeper的4node钻孔集群。关于它的实际工作方式几乎没有问题,

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

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

    来并行化查询执行

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

2 个答案:

答案 0 :(得分:1)

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

运行Drillbit服务(您安装Drill的位置)的节点参与查询工作。仅从文件中加载查询中显示的列。 Drill尝试将查询中的任何过滤器推送到叶节点,以防止节点发送不通过过滤器的行。根据{{​​3}},钻取在查询执行期间最大化数据局部性,而无需通过网络或节点之间移动数据。 docs部分讨论了并行化问题。当片段中的记录数达到100,000时,钻取并行化操作。

答案 1 :(得分:0)

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

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