2

spark-sql cli を使用して Hive cli シェルを置き換えます。次のコマンドで spark-sql cli を実行します (糸 Hadoop クラスターで使用しており、hive-site.xml は既に /conf にコピーされています)。

.> spark-sql その後、シェルが開かれ、正常に動作します。

そして、次のようなクエリを実行します。

./spark-sql>devicetype ごとに mytable グループから devicetype, count(*) を選択します。

コマンドは正常に実行され、正しい結果が得られます。しかし、パフォーマンスが非常に遅いことに気付きました。

spark ジョブの ui ( http://myhost:4040 ) から、使用済みとマークされた Executor が 1 つしかないことに気付きました。それが理由かもしれません。

そして、spark-sql スクリプトを変更して、exec コマンドに –num-executors 500 を追加しようとしましたが、役に立ちません。

誰でも助けて理由を説明できますか?

ありがとう。

4

2 に答える 2

1

ドキュメントを参照してください: http://spark.apache.org/docs/latest/sql-programming-guide.html

spark-sqlは、ローカル モードでのみ機能する SQL CLI ツールです。

SQL のクラスター バージョンが必要な場合は、たとえばツール (Spark に付属) をthriftserver使用して、JDBC 経由で起動して接続する必要があります。公式ドキュメントhttp://spark.apache.org/docs/latest/sql-programming-guide.htmlの Thrift JDBC/ODBC サーバーの実行のbeeline章に説明があります。

始めること:

export HIVE_SERVER2_THRIFT_PORT=<listening-port>
export HIVE_SERVER2_THRIFT_BIND_HOST=<listening-host>
./sbin/start-thriftserver.sh \
  --master <master-uri> \
  ...

接続する:

./bin/beeline
beeline> !connect jdbc:hive2://<listening-host>:<listening-port>
于 2015-01-23T14:18:12.653 に答える