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

AnalyticDB:アクセスOSS-HDFS

最終更新日:Jun 07, 2024

AnalyticDB for MySQL Data Lakehouse Edition (V3.0) Sparkを使用すると、OSS-HDFSにアクセスできます。 このトピックでは、Sparkを使用してOSS-HDFSにアクセスする方法について説明します。

前提条件

  • AnalyticDB for MySQL Data Lakehouse Edition (V3.0) クラスターは、Object Storage Service (OSS) バケットと同じリージョンに作成されます。

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

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

  • AnalyticDB for MySQLは、AliyunADBSparkProcessingDataRoleロールを引き受けて他のクラウドリソースにアクセスする権限があります。 詳細については、「権限付与の実行」をご参照ください。

Spark JARモードでのOSS-HDFSデータの読み書き

  1. OSS-HDFSへのアクセスに使用するプログラムを作成します。 次に、Sparkジョブに必要なJARパッケージにプログラムをコンパイルします。 この例では、JARパッケージの名前はoss_hdfs_demo.jarです。 サンプルコード:

    パッケージcom.aliyun.spark
    
    org.apache.spark.sql.SparkSessionをインポートする
    
    オブジェクトSparkHDFS {
      def main(args: Array[String]): Unit = {
        val sparkSession = SparkSession
          .builder()
          . appName("Spark HDFS TEST")
          .getOrCreate()
    
        val welcome = "hello, adb-spark"
    
        // 必要なデータを格納するHadoop分散ファイルシステム (HDFS) ディレクトリを指定します。
        val hdfsPath = args(0);
        // 指定されたHDFSディレクトリにウェルカムストリングを格納します。
        sparkSession.sparkContext.parallelize(Seq (ようこそ)).saveAsTextFile(hdfsPath)
        // 指定されたHDFSディレクトリからデータを読み取り、データを表示します。
        sparkSession.sparkContext.textFile(hdfsPath).collect.foreach(println)
      }
    }
  2. oss_hdfs_demo.jarパッケージをOSS-HDFSにアップロードします。 詳細については、「Hadoop Shellコマンドを使用したOSS-HDFSへのアクセス」をご参照ください。

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

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

  5. エディターの上部で、ジョブリソースグループとSparkアプリケーションタイプを選択します。 この例では、バッチタイプが選択されています。

  6. エディタで次のSparkコードを実行します。 テキストファイルの行の総数と最初の行の内容を表示します。

    {
        "args": ["oss:// testBucketName/data/oss_hdfs"] 、
        "file": "oss:// testBucketName/data/oss_hdfs_demo.jar" 、
        "name": "spark-on-hdfs" 、
        "className": "com.aliyun.spark.SparkHDFS" 、
        "conf": {
            "spark.driver.resourceSpec": "medium" 、
            "spark.exe cutor.instances": 1、
            "spark.exe cutor.resourceSpec": "medium" 、
            "spark.adb.connectors": "jindo"
        }
    }

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

    パラメーター

    説明

    args

    Spark JARジョブの実行に必要な引数。 この例では、argsパラメーターでOSS-HDFSパスを指定する必要があります。

    例: oss:// testBucketName/data/oss_hdfs

    file

    JARパッケージのOSS-HDFSパス。

    例: oss:// testBucketName/data/oss_hdfs_demo.jar

    name

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

    spark.adb.connectors

    OSS-HDFSデータの読み取りに使用されるコネクタ。 この例では、jindoが使用されます。

    conf

    Sparkアプリケーションに必要な設定パラメーター。Apache Sparkの設定パラメーターに似ています。 パラメーターはkey: value形式である必要があります。 複数のパラメーターはコンマ (,) で区切ります。 Apache Sparkの設定パラメーターとは異なる設定パラメーター、またはAnalyticDB For MySQLに固有の設定パラメーターについては、「Sparkアプリケーション設定パラメーター」をご参照ください。

  7. 実行 をクリックします。 Sparkコードを実行した後、Spark JAR開発ページの [アプリケーション] タブの [操作] 列で [ログ] をクリックしてログ情報を表示できます。 詳細については、「Sparkエディター」をご参照ください。

Spark SQLモードでのOSS-HDFSデータの読み書き

  1. OSS-HDFS上にデータベースパスとテーブルパスを作成します。 詳細については、「Hadoop Shellコマンドを使用したOSS-HDFSへのアクセス」をご参照ください。 この例では、次のパスが作成されます。

    データベースパス: oss://{bucket}/jindo_test テーブルパス: oss://{bucket}/jindo_test/tbl

  2. OSS-HDFSへのアクセスに使用されるSpark SQL文を記述します。

    SET spark.driver.resourceSpec=small;
    SET spark.exe cutor.instances=1;
    SET spark.exe cutor.resourceSpec=small;
    SET spark.adb.connectors=jindo;
    
    存在しない場合はデータベースを作成しますjindo_test LOCATION 'oss://{bucket}/jindo_test ';
    jindo_testを使用します。CREATE TABLE IF NOT EXISTS tbl(id int, name string) LOCATION 'oss://{bucket}/jindo_test/tbl';
    INSERT INTO tbl値 (1、'aaa');
    SELECT * からtbl; 
  3. [今すぐ実行] をクリックします。

関連ドキュメント