(D)SparkSQLの研究ノート

ハイブのスパーク

開発環境の設定

  1. hive_home / CONFはハイブ-site.xmlのspark_home / CONFにコピーされます。
  2. spark_home / CONFにコピーHADOOP_HOMEの/ etc / HadoopのにHDFS-site.xmlのコア-site.xmlの;
  3. ローカルモードで火花-SQL / confに開始ノードをspark_homeするコピーオン。
  4. ハイブは、メタストアのmysqlデータベースである場合、MySQL spark_home /瓶ディレクトリに駆動する必要があります。

開発環境:confディレクトリに、プロジェクトでは、上記の3つの文書をフォルダconfのを作成します。ハイブは、プロジェクトのクラスパスを入れる必要性によって駆動さメタストアMySQLデータベース、mysqlのであれば。

val spark = SparkSession
              .builder()
              .master("local[*]")
              .appName("Spark Hive Example")
              .enableHiveSupport()//启用对hive的支持
              .getOrCreate()

<!--如果版本高于1.2.1,设置hive-site.xml中的属性,避免报错:-->
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
</property>

SparkSQL実行

SparkSQL実行

  1. 編集データセットのAPI SQLコード。
  2. コードがエラーなしでコンパイルした場合、スパークは、論理的な計画にコードになります。
  3. スパークプログラムコード(触媒オプティマイザ)を最適化する物理論理プログラムに変換されます。
  4. 物理的な実行計画(RDD)をスパーク。

ロジックプログラム(論理計画)

ロジック計画がエグゼキュータとドライバを伴わない、ユーザーは単に、未解決のロジック計画にユーザーコードによって、最高のバージョンにコードを記述し、その後、resolvdロジック計画、カタログ(すべてのリポジトリテーブルとデータフレームの情報)に変換します述語プッシュダウン投影:オプティマイザは、触媒の最適化ルールの最適化された集合の集合で、触媒に計画します。
ここに画像を挿入説明

物理的な計画

異なる物理的な実行戦略を生成することにより、最適な論理的計画(ABC計画)、これらの物理的な実装計画は、最適な物理的な実行計画から選択するために、コストモデルを比較すると、結果はRDDと変換する一連のです。
ここに画像を挿入説明

実行

物理的な実行計画を選択すると、すべてのRDDコード、ローカルのJavaバイトコードを生成するためにさらに最適化タングステンを実行し、様々な段階は、世代を行い、最終的に利用者に結果を返します。

おすすめ

転載: blog.csdn.net/dec_sun/article/details/89819558