我在两个节点上使用Drill(1.3)。说:
我尝试查询(来自192.xxx.xxx.xxx)的csv文件(1000万条记录):
select count(*) from dfs.`home/impadmin/BiggerBoy.csv`
此外,我试图连接查询(从192.xxx.xxx.xxx上)Hive
与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
为什么不使用其他节点。那么在这种情况下使用多个节点的好处是什么。
是Drill自己照顾还是我需要配置一些东西?
如果有人能够获得多个片段,请共享您的用例。
假设您使用的是分布式文件系统,我从这篇文章中了解到本地文件系统插件(dfs)不能与多个钻头一起使用。尽管所引用的帖子主要解决有关写入的问题,但这听起来适用于您有关读取的问题。
要将Drill配置为使用多个节点,请参阅“在分布式模式下安装Drill”下的小节。
查询分布取决于查询复杂度。当计划者构建查询计划时,它将计划划分为多个主要片段,并且通常在它们之间有一定的分布。在单个节点中,您可以在同一节点上运行多个次要片段,例如,在一台32列计算机上,您最多可以运行23个次要片段,大约占75%。在多个节点上,例如在4个节点上,每个节点可能针对同一查询运行23个次要片段。
如果您的单个根片段在工头节点上运行,则Drill无法拆分该片段。叶片段的分布取决于查询,并受可拆分输入的数量限制。如果您有一个不可拆分的文件,则查询计划将使用一个叶子。如果计划中有中间片段,则可以将其分发。我无法获得有关如何将单个叶子和中间片段的分布限制为一个节点的详细信息。
在查询配置文件中,当您单击根片段时,您只会看到单个次要片段,并且每个片段的主机名都与工头名称相同。如果单击查询配置文件中的多个主要片段之一,则会看到查询已分配到的不同主机名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句