2

5 ノードのクラスターで Presto 大規模スキャン クエリを実行すると、1 つのノードのみがクエリ コーディネーターであり、ネットワーク経由で 5 つの hdfs ノードからデータを読み取るように見えます。

すべての presto プロセスはデータ ノードで実行されます。

ショートカット local read を使用して 5 つのノードが hdfs からデータを読み取れるようにする方法はありますか?

Presto ノードは事前集計を行っていますか?

4

2 に答える 2

4

HDFS データ ノードと同じマシンに Presto ワーカーをインストールしたかどうかは、あなたの質問からは明らかではありません。まだお持ちでない場合は、インストール手順が役立ちます。

すべてのデータ ノードに Presto ワーカーを配置すると、Presto は、ローカル DFS ノードからデータにアクセスするときにローカル読み取りを自動的に実行する必要があります。Presto は、DFS ノードと同じマシンで作業をスケジュールすることを好みますが、そのマシンが過負荷の場合、別のマシンで作業をスケジュールするため、通常はリモート読み取りを取得します。読み取りの大部分はローカルである必要があり、コーディネーターで com.facebook.presto.execution:name=NodeScheduler mbean を使用してこの分布を確認できます。

Presto は常に、リーフ ワーカー ノードで部分集約を実行します。

于 2013-11-12T18:51:11.920 に答える
1

すべてのノードに presto がインストールされていて、presto ワーカーにローカル ストライプを処理させたい場合は、「hive.force-local-scheduling」セッション フラグを true に設定する必要があります。これは、私が見た presto バージョン (0.153) ではデフォルトで false です。

詳細については、 https ://github.com/prestodb/presto/issues/894 を参照してください。

https://github.com/prestodb/presto/pull/1770

于 2016-09-10T08:27:25.670 に答える