0

私はスパーククラスタを設定しています。私はhdfsデータノードを持っていて、同じインスタンスにマスターノードを起動します。hdfsからのelasticsearchのデータの収集、クラスタのセットアップと使用

現在の設定は 1マスタ(スパークおよびHDFS) 6スパーク労働者とHDFSデータノード

すべてのインスタンスが同じ、16gigデュアルコア(残念ながら)があります。

私はもう3台のマシンを持ち、同じ仕様です。 今私は3つのオプションを持っています 1.これらの3つのマシンにesをデプロイするだけです。 1上のクラスタ 1マスタ(スパークおよびHDFS)のようになります 6スパーク労働者とHDFSデータノード 3- elasticsearchノード

  • 展開ESマスター、スパークを拡張しhdfsと他のすべてのes。 クラスタが、ES、データノードをHDFS、 1-マスター(スパークとHDFS) 1-マスターelasticsearch 8スパーク労働者のようになります。データノード
  • 重くために火花を使用している私のアプリケーションが参加し、ミリリットルなどが、私たちは検索機能を探しています。私たちがリアルタイムで必要としていないことを確実に検索し、30分までのリフレッシュ間隔は私たちにとっても良いです。

    同時に、sparkクラスタには、es索引付けとは別の長い実行中のタスクがあります。

    解決策は上記のものである必要はなく、何かが示唆しているとすれば私は実験で開かれています。他の開発者も一度結論づけば便利だろう。

    また、私はes hadoop、es-sparkプロジェクトを試していますが、私は3つの専用ノードを実行すると摂取が非常に遅いと感じました。

    答えて

    0

    ここでの最適なアプローチは、ネットワークの帯域幅と、私の意見ではあなたの操作のボトルネックかどうかにかかっています。

    iftop -i anyなどのように自分のネットワークリンクが飽和しているかどうかをチェックし、そうであるかどうかを確認します。ネットワークの物理容量に近いデータレートが見られる場合は、ESを実行しているマシンでhdfs + sparkを実行して、ネットワークの往復を節約し、処理速度を上げることができます。

    ここでネットワークがボトルネックにならない場合は、次にSparkとHDFSを展開する方法を調べます。 すべてのRAMを使用していますか(Java Xmxは十分に高いですか?Spark memory limits? ESの可能性があります。おそらく追加のESインスタンスが生成される可能性があります。6つのスパークワーカーに給電する3つのESノードは非常に最適ではないようです。 もしあれば、私はおそらく、その比率を逆転しようとするでしょう、スパークのエグゼキュータとESの容量は少なくなります。 ESは、HDFSがそれを書いているよりもデータを提供するのがかなり遅いでしょう(これは実際に両方の設定に依存しますが...教育的な推測です:))。より多くのESノードとより少ないSparkワーカーがここでより良いアプローチになる可能性は非常に高いです。一言で言えばそう

    • ので、同じマシン上で両方を置く場合は、ネットワークリンクは、飽和している場合(これはのみと有害である可能性があり、よりESノードを追加し、スパーク労働者数
    • チェックを削減より多くのESノードの追加2つのコアが、私はまだそれに打撃を与えるだろう...あなたはこれを試してみなきゃ)
    • は、あなたがすることができる二つのこと:)提案を
    +0

    感謝のより良い賭けであります私は自分の発見を見て更新します。私はあなたに正確な問題を伝えることができないと思うが、私はあなたの質問を更新し、あなたが通過するように依頼する。ありがとう – rohit

    +0

    @rohit私はまだ、私はあなたのパフォーマンスの問題への可能性のある修正は、より多くのESのインスタンスだと思う。 –

    +0

    私はインスタンスを追加する方法がないと同時に完全にあなたに同意します。これは絶対に私が持つことです。私はあなたの考えを感謝します。 spark workerと一緒にesインスタンスを追加しようとしますが、spark自体が遅くなるのを恐れています。パフォーマンスの影響を確認しようとします。 – rohit

    関連する問題