問題タブ [spark-hive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - 大きなデータフレームでspark sql操作を最適化するには?
大きなハイブ テーブルがあります (最大 90 億レコード、オーク形式で最大 45 GB)。テーブルのプロファイリングを行うためにspark sqlを使用していますが、これに対して操作を行うには時間がかかりすぎます。入力データ フレーム自体をカウントするだけで、完了するまでに最大 11 分かかります。また、任意の列の最小値、最大値、平均値だけでも、完了するまでに 1 時間半以上かかります。
私は限られたリソース クラスター (利用可能な唯一のものであるため) で作業しています。それぞれ 2 つのコアと 3 つの物理ノードにまたがるエグゼキューターあたり 5GB のメモリを備えた合計 9 つのエグゼキューターです。
これを最適化する方法はありますか、たとえば、同じクラスターで各列のすべての集計関数を実行する時間を少なくとも 30 分未満に短縮するか、リソースを増やすことが唯一の方法ですか?? 個人的にはあまりやりたくないことです。データ フレーム操作を高速化するために私が見つけた 1 つの解決策は、それらをキャッシュすることです。しかし、私の場合、それは実行可能なオプションではないと思います。
私が遭遇した現実世界のシナリオはすべて、この種の負荷に巨大なクラスターを使用しています。
どんな助けでも大歓迎です。kryoシリアライザーを使用してスタンドアロンモードでspark 1.6.0を使用しています。
apache-spark - spark-submit YARN クラスター モードの使用時にハイブ サイトが見つからない
HDP 2.5.3 を使用して、YARN コンテナーのクラスパスの問題をデバッグしようとしています。
HDP には Spark 1.6 と 2.0.0 の両方が含まれているため、競合するバージョンがいくつかあります。
client
私がサポートするユーザーは、YARNモードのHive クエリで Spark2 を正常に使用できますcluster
が、メタストア接続が確立されていないため、テーブルが見つからないなどのエラーが発生するモードではありません。
私はその設定または後に--driver-class-path /etc/spark2/conf:/etc/hive/conf
渡すことがうまくいくと推測していますが、フォルダーからまだロードされていないのはなぜですか?--files /etc/spark2/conf/hive-site.xml
spark-submit
hive-site.xml
conf
Hortonworks docsによると、 はhive-site
に配置する必要が$SPARK_HOME/conf
あり、それは...
たとえば、 と 、および の一部であるその他のファイルが表示されます。これは YARN UI コンテナー情報からの hdfs-site.xml
ものcore-site.xml
です。HADOOP_CONF_DIR
お分かりかもしれませんが、 spark-submit をhive-site
確実に取得する必要がありますが、そこにはありません。conf/hive-site.xml
HADOOP_CONF_DIR
したがって、ハイブサイトを分離したまま配置することは想定されていないと思いますが、私の質問は、実行時にパラメータとして手動で渡す必要なしにHIVE_CONF_DIR
、Spark2 を取得するにはどうすればよいかということです。hive-site.xml
編集当然、私は HDP を使用しているため、Ambari を使用しています。以前のクラスター管理者はすべてのマシンに Spark2 クライアントをインストールしているため、潜在的な Spark ドライバーになる可能性のあるすべての YARN NodeManager には同じ構成ファイルが必要です。
scala - Spark セッションを使用して SparkSQL で依存クエリを実行する
現在 HIVE で実行されている 3 つのクエリがあります。
Spark 2.1.0 の使用
Spark SQL を使用してそれを実行しようとしていますが、SparkSession を使用しています (Jar を作成する Scala コードでラップし、Spark-Submit を使用して送信するなど)。
例として、クエリ 1 は 3 つのテーブル (テーブル - a、b & c) を使用し、テーブルに挿入します --> Output_Table_1
Query-2 は、他のいくつかのテーブル (結合を実行する) と、Query-1 の出力から取り込まれたoutput_table_1を使用します。これにより、output_table_2が得られます
同様に、Query-3 はほとんどテーブルを使用せず、output_table_1および/またはoutput_table_2を使用する場合と使用しない場合があります(これについては、まだ設計中なのでわかりません)。
現在、私がこれを行っている方法は、すべてのクエリをプロパティファイルに書き込み、それをdef main
使用して読み取ることTypesafe.ConfigFactory
です(より良い方法があるかどうかを提案してください)
私がdef main(){}
やっていることは次のとおりです。
以下のステップを実行すると、エラーがスローされます-output_table_1が見つかりません
同様に、3 番目のクエリとテーブルについても、同じエラーが発生します。したがって、基本的には、クエリをチェーンして、後のクエリで初期クエリの出力を使用しようとしています。クエリは複雑であるため、クエリを小さなデータフレームに分割することはできません。
そのようなシナリオをどのように進めるか。また、これを達成するためのベストプラクティスは何ですか?
scala - 依存関係が提供されているときに HiveContext に対してテストしようとすると、java.lang.SecurityException がスローされます
スパーク コンテキストを作成する単体テストを実行すると、 java.lang.SecurityException
. 原因はわかりましたが、それを解決する方法を追跡する方法がわかりません。javax.servlet
これは、異なる署名者情報を持つ同じパッケージを共有する複数の依存関係です。
これを実証するサンプル プロジェクトを作成しました。
org.mortonbay.jetty
との除外ルールを提案するこの同じ問題の例はたくさんありますがjavax.servlet
、私にはうまくいかないようです。
spark-submit
ビルドされたsbt assembly
jar it worksファイルで使用すると、テストを書くことができません。
mysql - Eclipse IDE で Hive を使用する Apache Spark が特権エラーをスローする - 読み取り専用データベースの問題
Eclipse IDE で Hive 統合を使用して Apache Spark をテストしようとしています。これらは、Eclipse Mars IDE 上の MySQL 5.7 を使用する Hadoop 2.7.4、Spark 2.2、および hive-2.3.2 の各プロジェクトのバージョンです。hive-site.xml の中身は以下のようなもので、
また、Eclipse IDE の spark-hive Java API コードは次のとおりです。
このコードは例外をスローします。
ただし、ルート モードで Eclipse IDE を実行すると、例外はスローされません。この問題は権限の問題に関連していると思います。ただし、どのプロセスがこの問題を引き起こすのかわかりません。もう 1 つの問題は、例外が MySQL ではなく Apache Derby からスローされることです。hive-site.xml の MySQL 構成が間違っているようです。