すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:DataWorksでSpark分散SQLエンジンを使用する

最終更新日:Jun 14, 2024

DataWorksでSpark SQLジョブを開発する場合は、Apache Hadoop (CDH) クラスターを含むClouderaのディストリビューションをDataWorksに登録できます。 AnalyticDB for MySQLのSpark分散SQLエンジンをSQLサポート実行エンジンとして登録し、Spark分散SQLエンジンを使用してDataWorksでSpark SQLジョブを開発できます。

前提条件

  • AnalyticDB for MySQL Data Lakehouse Edition (V3.0) クラスターとDataWorksワークスペースが作成されます。 詳細については、「Data Lakehouse Editionクラスターの作成」および「ワークスペースの作成」をご参照ください。

  • ジョブのリソースグループがAnalyticDB for MySQL Data Lakehouse Edition (V3.0) クラスターに作成されます。 詳細については、「リソースグループの作成」をご参照ください。

  • AnalyticDB for MySQL Data Lakehouse Edition (V3.0) クラスター用にデータベースアカウントが作成されます。

  • スケジューリング専用のリソースグループが作成されます。

    デフォルトでは、スケジューリング用のDataWorks専用リソースグループは、リソースグループの作成後に他のクラウドサービスのネットワークに接続されません。 CDHクラスターを使用するには、スケジューリングのためにCDHクラスターを特定の排他的リソースグループに接続する必要があります。 スケジューリング用の排他的リソースグループを作成する方法の詳細については、「スケジューリング用の排他的リソースグループの作成と使用」をご参照ください。

背景情報

DataWorksはCDHクラスターに接続できます。 CDHクラスターを登録してDataWorksし、タスク開発、タスクスケジューリング、データマップ管理 (メタデータ管理) 、データ品質管理などのデータ開発およびガバナンス操作を実行できます。 AnalyticDB for MySQLのSpark分散SQLエンジンをSQLサポート実行エンジンとして登録し、Spark分散SQLエンジンを使用して、DataWorksでSpark SQLジョブを開発できます。

AnalyticDB for MySQLクラスターを使用すると、複数のSpark分散SQLエンジンを起動できます。 さまざまな構成をサポートするSpark分散SQLエンジンを起動し、ビジネス要件に基づいてDataWorksでエンジンをホストできます。

手順

手順1: Spark分散SQLエンジンの起動

  1. AnalyticDB for MySQLコンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Lake Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスターIDをクリックします。

  2. 左側のナビゲーションウィンドウで、[ジョブの開発] > [Spark JARの開発] を選択します。

  3. Sparkエディターの上部で、ジョブリソースグループとSQLEngineジョブタイプを選択します。

  4. Sparkエディターで次のコードを実行します。

    重要

    DataWorksは、ユーザー名とパスワードが設定されているSpark分散SQLエンジンをサポートしていません。 Spark分散SQLエンジンを起動するときは、spark.kubernetes.driverEnv.HIVE_SERVER2_USERおよびspark.kubernetes.driverEnv.HIVE_SERVER2_PASSWORDパラメーターを指定しないでください。

    -- Spark SQLEngineの起動例を以下に示します。 コンテンツを変更し、sparkプログラムを実行します。
    CONF spark.driver.resourceSpec=medium;
    CONF spark.exe cutor.instances=1;
    CONF spark.exe cutor.resourceSpec=small;
    CON F spark.app.name=Spark SQLEngine;
    CONF spark.sql.hive.metastore.version=adb;
    CONF spark.adb.sessionTTLSeconds=2147483647; 

    下表に、各パラメーターを説明します。

    パラメーター

    必須

    説明

    spark.app.name

    Sparkアプリケーションの名前。

    spark.sql.hive.metastore.version

    アクセスするメタデータのバージョン。 有効な値:

    • adb: AnalyticDB for MySQLのバージョン。

    • <hive_version>: Hiveメタストアのバージョン。

    説明
    • Apache SparkでサポートされているHiveバージョンについては、「Sparkの設定」をご参照ください。

    • 自己管理型のHiveメタストアにアクセスするには、デフォルト設定を標準のApache Spark設定に置き換えることができます。 詳細については、「Spark設定」をご参照ください。

    spark.adb.sessionTTLSeconds

    任意

    Spark分散SQLエンジンの生存時間 (TTL) 。 単位は秒です。 デフォルト値: 1200 デフォルト値は、Spark分散SQLエンジンが最後のSQLコードブロックが実行されてから1,200秒後に自動的に破棄されることを指定します。

    重要
    • 破棄されたSparkディストリビューションSQLエンジンを再起動すると、そのエンジンの新しい接続URLが生成されます。

    • DataWorksでHiveを長期間使用する場合は、spark.adb.sessionTTLSecondsパラメーターを2147483647に設定して、アイドル時間の延長によりSpark分散SQLエンジンが自動的に破壊されないようにします。

    その他のパラメーターについては、「Sparkアプリケーション設定パラメーター」をご参照ください。

手順2: Spark分散SQLエンジンのエンドポイントベースのURLの取得

  1. AnalyticDB for MySQLコンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Lake Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスターIDをクリックします。

  2. 左側のナビゲーションウィンドウで、[ジョブの開発] > [Spark JARの開発] を選択します。

  3. [アプリケーション] タブで、管理するSparkアプリケーションを見つけ、[操作] 列の [詳細] をクリックして、Spark分散SQLエンジンのエンドポイントベースのURL (Spark JDBCパブリック接続URLパラメーターの値) を取得します。

手順3: Spark分散SQLエンジンをDataWorksに登録する

  1. [Management Center] ページに移動します。

    DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[Management Center] をクリックします。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[管理センターに移動] をクリックします。

  2. [SettingCenter] ページの左側のナビゲーションウィンドウで、 [Open Source Clusters] をクリックします。 [オープンソースクラスター] ページで、[クラスターの登録] をクリックします。 表示されるダイアログボックスで、CDHをクリックしてクラスター登録ページに移動します。

  3. [CDHクラスターの登録] ページで、次の表に示すパラメーターを設定します。

    パラメーター

    説明

    クラスター表示名

    DataWorks内のクラスターの名前。 名前は現在のテナント内で一意である必要があります。

    Clusterバージョン

    登録するクラスターのバージョン。

    CDH 6.3.2を選択します。

    クラスター名

    登録するクラスターの名前。 このパラメーターは、クラスターを登録するときに必要な構成情報のソースを決定するために使用されます。 別のDataWorksワークスペースに登録されているクラスターを選択するか、クラスターを作成できます。

    • 別のDataWorksワークスペースに登録されているクラスターを選択した場合は、クラスターの構成情報を参照できます。

    • クラスターを作成する場合は、クラスターを登録する前にクラスターを設定する必要があります。

    Version

    Hiveのバージョン。 2.1.1を選択します。

    HiveServer2

    HiveServer2のURL。 手順2で取得したSpark分散SQLエンジンのエンドポイントベースのURLを入力します。 詳細については、このトピックの「手順2: Spark分散SQLエンジンのエンドポイントベースのURLの取得」を参照してください。

    重要

    エンドポイントベースのURLの {database name} を実際のデータベース名に置き換えます。

    メタストア

    Hive MetastoreのURL。 手順2で取得したSpark分散SQLエンジンのエンドポイントベースのURLを入力します。 詳細については、このトピックの「手順2: Spark分散SQLエンジンのエンドポイントベースのURLの取得」を参照してください。

    重要

    エンドポイントベースのURLの {database name} を実際のデータベース名に置き換えます。

    デフォルトのアクセスID

    DataWorksのCDHクラスターへのアクセスに使用するアカウント。 詳細については、「CDHまたはCDPクラスターをDataWorksに登録する」トピックの「クラスターのデフォルトアクセスIDの設定」セクションをご参照ください。

  4. [完了] をクリックします。

手順4: Spark分散SQLエンジンを使用してDataWorksでSQL文を実行する

  1. DataStudioページに移動します。

    DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[データモデリングと開発] > [DataStudio] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。

  2. ワークフローを作成します。

    次のいずれかの方法を使用して、ワークフローを作成できます。

    • 方法1: ポインタをアイコンの上にCreate移動し、[ワークフローの作成] をクリックします。

    • 方法2: [スケジュール済みワークフロー] ペインで [ビジネスフロー] を右クリックし、[ワークフローの作成] を選択します。

  3. [ワークフローの作成] ダイアログボックスで、ワークフロー名と説明を指定し、 [作成] をクリックします。

    この例では、Sparktestという名前のワークフローが作成されます。

  4. ノードを作成します。

    1. 左側のナビゲーションウィンドウで、ビジネスフロー> Sparktest > CDHを選択してCDHディレクトリを展開します。

    2. 右クリックデータ分析し、ショートカットメニューから [ノードの作成] > [CDH Hive] を選択します。

    3. [ノードの作成] ダイアログボックスで、エンジンインスタンスやノード名などのパラメーターを設定します。

    4. [確認] をクリックします。

  5. ノードを作成したら、右側のコードエディターにSQLステートメントを入力し、アイコンをクリックしimageてステートメントを実行します。

    ショーテーブル;

    サンプル結果:

    + ---------- -------------------------------
    | 名前空間 | tableName | isTemporary |
    + --------- -------------------------------
    | db | test | false |
    + --------- -------------------------------