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) クラスター用にデータベースアカウントが作成されます。
Alibaba Cloudアカウントを使用する場合は、特権アカウントを作成する必要があります。 詳細については、「データベースアカウントの作成」トピックの「特権アカウントの作成」セクションをご参照ください。
RAM (Resource Access Management) ユーザーを使用する場合は、特権アカウントと標準アカウントの両方を作成し、標準アカウントをRAMユーザーに関連付ける必要があります。 詳細については、「データベースアカウントの作成」および「データベースアカウントの関連付けまたは関連付けの解除」をご参照ください。
スケジューリング専用のリソースグループが作成されます。
デフォルトでは、スケジューリング用の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エンジンの起動
AnalyticDB for MySQLコンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Lake Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスターIDをクリックします。
左側のナビゲーションウィンドウで、
を選択します。Sparkエディターの上部で、ジョブリソースグループとSQLEngineジョブタイプを選択します。
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
可
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の取得
AnalyticDB for MySQLコンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Lake Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスターIDをクリックします。
左側のナビゲーションウィンドウで、
を選択します。[アプリケーション] タブで、管理するSparkアプリケーションを見つけ、[操作] 列の [詳細] をクリックして、Spark分散SQLエンジンのエンドポイントベースのURL (
Spark JDBCパブリック接続URL
パラメーターの値) を取得します。
手順3: Spark分散SQLエンジンをDataWorksに登録する
[Management Center] ページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[Management Center] をクリックします。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[管理センターに移動] をクリックします。
[SettingCenter] ページの左側のナビゲーションウィンドウで、 [Open Source Clusters] をクリックします。 [オープンソースクラスター] ページで、[クラスターの登録] をクリックします。 表示されるダイアログボックスで、CDHをクリックしてクラスター登録ページに移動します。
[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: Spark分散SQLエンジンを使用してDataWorksでSQL文を実行する
DataStudioページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
ワークフローを作成します。
次のいずれかの方法を使用して、ワークフローを作成できます。
方法1: ポインタをアイコンの上に移動し、[ワークフローの作成] をクリックします。
方法2: [スケジュール済みワークフロー] ペインで [ビジネスフロー] を右クリックし、[ワークフローの作成] を選択します。
[ワークフローの作成] ダイアログボックスで、ワークフロー名と説明を指定し、 [作成] をクリックします。
この例では、
Sparktest
という名前のワークフローが作成されます。ノードを作成します。
左側のナビゲーションウィンドウで、ビジネスフロー>
Sparktest
> CDHを選択してCDHディレクトリを展開します。右クリックデータ分析し、ショートカットメニューから を選択します。
[ノードの作成] ダイアログボックスで、エンジンインスタンスやノード名などのパラメーターを設定します。
[確認] をクリックします。
ノードを作成したら、右側のコードエディターにSQLステートメントを入力し、アイコンをクリックしてステートメントを実行します。
ショーテーブル;
サンプル結果:
+ ---------- ------------------------------- | 名前空間 | tableName | isTemporary | + --------- ------------------------------- | db | test | false | + --------- -------------------------------