1

2 つのノードでDrill (1.3)を使用しています。言う:

  1. 192.xxx.xxx.xxx
  2. 192.yyy.yyy.yyy

csvファイル(10億レコード)で(192.xxx.xxx.xxx から)クエリを実行してみました:

select count(*) from dfs.`home/impadmin/BiggerBoy.csv`

また、 &で結合クエリ(192.xxx.xxx.xxx から)を試しました:HiveOracle

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 はこれを自動的に処理しますか、それとも何か設定する必要がありますか?

誰かが複数のフラグメントを取得できる場合は、ユースケースを共有してください。

4

1 に答える 1

0

分散ファイル システムを使用していると仮定すると、この投稿から、ローカル ファイル システム プラグイン (dfs) は複数のドリル ビットでは機能しないことがわかります。参照された投稿は主に書き込みに関する質問に対処していますが、読み取りに関する質問にも当てはまるようです。

複数のノードを使用するように Drill を設定するには、分散モードでの Drill のインストールのサブセクションを参照してください。

クエリの分散は、クエリの複雑さに依存します。プランナーがクエリ プランを作成するとき、プランは複数の主要なフラグメントに分割され、通常、それらの間にはある程度の分布があります。1 つのノードでは、同じノードで複数のマイナー フラグメントを実行できます。たとえば、32 列のマシンでは、最大 23 個のマイナー フラグメント (約 75%) を実行できます。複数のノード (4 つのノードなど) では、各ノードが同じクエリに対して 23 個のマイナー フラグメントを実行する場合があります。

foreman ノードで実行される単一のルート フラグメントがある場合、Drill はそれを分割できません。リーフ フラグメントの分布はクエリによって異なり、分割可能な入力の数によって制限されます。単一の非分割ファイルがある場合、クエリ プランは単一のリーフを使用します。プランに中間フラグメントがある場合は、配布できます。単一のリーフおよび中間フラグメントの配布が 1 つのノードに限定される方法の詳細を取得できませんでした。

クエリ プロファイルで、ルート フラグメントをクリックすると、単一のマイナー フラグメントのみが表示され、各フラグメントのホスト名はフォアマン名と同じです。クエリ プロファイルで複数の主要なフラグメントの 1 つをクリックすると、クエリが配布されたさまざまなホスト名が表示されます。

于 2015-11-30T18:06:53.383 に答える