2

私はApache Spark For Bigデータ処理を使用しています。データは、フラットファイルソースまたはJDBCソースからデータフレームにロードされます。ジョブは、spark sqlを使用してデータフレームから特定のレコードを検索します。Apache sparkをクエリエンジンとして使用するには?

だから、私は新しい検索条件のために何度も何度もジョブを実行しなければなりません。私は結果を得るために、spark submitを使ってJarファイルを提出しなければならないたびに。 データのサイズが40.5 GBであるため、毎回同じデータをデータフレームにリロードして、異なるクエリの結果を取得するのが面倒になります

はので、私は必要なものは、ある

  • 私は複数回のjarを提出アウトで複数の時間を一回のデータフレーム内のデータをロードし、それを照会することができれば方法は?
  • 検索エンジン/クエリエンジンとしてsparkを使用できるのであれば?
  • 我々は、一度データフレームにデータをロードし、遠隔RestAP

を使用してデータ・フレームを照会することができる場合>マイスパーク展開の現在の構成は

  • 5ノードクラスタです。
  • 糸rm上で実行される。

私はspark-jobサーバーを使用しようとしましたが、毎回ジョブも実行します。

+2

_ rest Api _ _ -yupを使用してspark sqlを使用して既存のデータフレームを照会できます。 _私たちは検索エンジン/クエリエンジンとしてスパークを使用することができましたか?意見に基づいていますが、40GBのデータを使用するだけでまともなRDBMSを使用します。あなたはより良いROIを得るでしょう。 _aデータフレームを一度読み込めるかどうか - 複数の場合。 builitin thriftサーバーからさまざまな休憩オプションとデータグリッドまで。 – zero323

+0

@ zero323それは良いでしょう。もっと正確に説明できますか? –

+1

@KamalPradhan spark-jobserverを使用してジョブ間にキャッシュされたRDDを維持することは可能です。私はそれが働くためにあなたのRDDに名前をつけなければならないと思います。詳細については、[こちら](https://github.com/spark-jobserver/spark-jobserver#named-objects)を参照してください。 –

答えて

3

HiveThriftServerとSparkの統合に興味があるかもしれません。

基本的には、ハイブスリフトServerを起動し、あなたのHiveContextはSparkContextからビルド注入:

... 
val sql = new HiveContext(sc) 
sql.setConf("hive.server2.thrift.port", "10001") 
... 
dataFrame.registerTempTable("myTable") 
HiveThriftServer2.startWithContext(sql) 
... 

いくつかのクライアントライブラリやツールがサーバーを照会するためにあります:CLIツールなど https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients

- ビーライン

参考: https://medium.com/@anicolaspp/apache-spark-as-a-distributed-sql-engine-4373e254e0f9#.3ntbhdxvr

+0

おかげで多くの助けになります。残りのAPIまたはいくつかのWebサービスを使用してサーバーに照会できますか?糸クラスターモードでもスケールすることができます。 –

+1

あなたはこのサービスに問い合わせることができる専用のJava(JDBC)、Python、Rubyのライブラリを持っています - レスポンスに記載されている "Clients"リンク –

+1

公式のドキュメントも確認してください:https://spark.apache.org/docs/ latest/sql-programming-guide.html#distributed-sql-engine –

0

また、spark + kafkaストリーミング統合を使用することもできます。ちょうどあなたはストリーミングAPIが拾うためにあなたの質問をkafkaに送る必要があります。そのシンプルさがあれば、市場ですぐにピックアップするデザインパターンがあります。

  1. ルックアップデータでデータセットを作成します。

  2. Kafkaでスパークストリーミングクエリを開始します。

  3. これはあなたのユースケースの世話をする必要があり、既に作成されたデータセット

上でクエリを実行し、あなたのカフカのトピックから

  • をSQLを取得します。

    希望すると便利です。

  • 関連する問題