我在两个节点上使用 Drill (1.3)。说:
我尝试在csv文件(1000万条记录)上查询(来自192.xxx.xxx.xxx ):
select count(*) from dfs.`home/impadmin/BiggerBoy.csv`
另外,我尝试在Hive
&上加入查询(来自192.xxx.xxx.xxx )。 Oracle
:
select * from hive.testDB.`catalog_sales` x inner join oracle.ILABUSER.`customer_address` y on y.CA_ADDRESS_SK = x.CS_BILL_ADDR_SK group by y.CA_CITY limit 100
每次我(来自Drill UI):
Query Profile
STATE: COMPLETED
FOREMAN: 192.xxx.xxx.xxx
TOTAL FRAGMENTS: 1
为什么不使用其他节点。那么在这种情况下使用多个节点的好处是什么呢。
Dr Drill单独处理这个问题还是我需要配置一些东西?
如果有人能够获得多个片段,请分享您的用例。
答案 0 :(得分:0)
假设您正在使用分布式文件系统,我从this post了解到本地文件系统插件(dfs)不能使用多个钻头。虽然引用的帖子主要解决有关写入的问题,但它听起来适用于您关于读取的问题。
要将Drill配置为使用多个节点,请参阅Installing Drill in Distributed Mode下的子部分。
查询分发取决于查询复杂性。当规划器构建查询计划时,它将计划分成多个主要片段,通常,它们之间存在一些分布。在单个节点中,您可以在同一节点中运行多个次要片段,例如,在32列机器上,您可以运行多达23个次要片段,大约75%。在多个节点上,例如在4个节点上,每个节点可以为同一查询运行23个次要片段。
如果您有一个在foreman节点上运行的根片段,则Drill无法拆分它。叶片段的分布取决于查询,并受可分割输入的数量限制。如果您有一个不可拆分的文件,则查询计划使用单个叶。如果计划中有中间片段,则可以进行分发。我无法详细了解单个叶子和中间片段的分布如何限制在一个节点上。
在查询配置文件中,单击根片段时,只能看到一个次要片段,每个片段的主机名与工头名称相同。如果单击查询概要文件中的多个主要分段之一,则会看到分发查询的不同主机名。