Object Storage + Sub Account の連携

Prev Next

VPC環境で利用できます。

NAVERクラウドプラットフォームの Cloud Hadoop、Object Storage、Sub Accountを連携して使用する方法をご紹介します。

Bigdata Service

  • Cloud Hadoop: Hadoop、HBase、Spark、Hive、Prestoなどのオープンソースフレームワークを手軽に構築できます。
    Cloud Hadoopに関する詳細は、Cloud Hadoop の概要ガイドをご参照ください。

  • Object Storage: 安全な保存が必要な場合や大容量データを保存する場合に活用できます。
    提供される APIを用いてサーバデータのバックアップや復旧用途としても活用できます。
    Object Storageに関する詳細は、Object Storage の概要ガイドをご参照ください。

  • Sub Account: ユーザーをサブアカウントとして登録し、特定のサービスに対する権限を付与することができます。
    登録された内部ユーザーは、権限を付与されたサービスに対してメインアカウントと同様にサービスを利用できます。
    Sub Accountに関する詳細は、Sub Account ご利用ガイドをご参照ください。

Hadoop + Object Storage + Sub Account の連携と使用

Sub Account の作成とポリシーの追加

ユーザーをサブアカウントとして登録し、特定のサービスに対する権限を付与することができます。登録された内部ユーザーは、権限を付与されたサービスに対してメインアカウントと同様にサービスを利用できます。

Sub Accountに関する詳細は、Sub Account ご利用ガイドをご参照ください。

Sub Accountの作成およびポリシーを追加する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで Sub Accountサービスを作成します。

    • Object Storageにアクセスするには API Keyを使用します。Sub Accounts作成時にアクセスタイプ項目の APIアクセスを選択します。
      cloudhadoop-subaccoun-policy1_ko
  2. Sub Accountsメニューで作成した Sub Accountsのログイン IDをクリックし、 [ポリシー] タブで使用ポリシーを追加します。

    • Object Storageの NCP_OBJECT_STORAGE_MANAGERポリシーを追加します。
    • ACGの変更管理のための NCP_VPC_SERVER_MANAGERポリシーを追加します。
    • Cloud Hadoopの NCP_VPC_CLOUD_HADOOP_MANAGERポリシーを追加します。
      cloudhadoop-subaccoun-policy2_ko
  3. [Access Key] タブで Object Storageにアクセスするための API認証キーを [追加] した後、確認します。
    cloudhadoop-subaccoun-policy3_ko

  4. Sub Account > Dashboardサブアカウントのログインページへのアクセスキーを設定します。
    cloudhadoop-subaccoun-key_policy_ko

  5. サブアカウントのログインページの URLにアクセスした後、以下のようにサブアカウントにログインします。

    • サブアカウント IDは、サブアカウントの作成時に設定したログイン IDです。
    • パスワードは、サブアカウントの作成時に設定したログインパスワードです。
      cloudhadoop-subaccoun-policy4_ko
  • このアカウントに設定されたポリシーによって許可されたサービスのみ使用できます。
    hadoop-chadoop-use-ex3_07_ko

Object Storageバケット作成

Object Storageでデータを保存する ncp-bigdataバケットを作成します。作成したバケットは Bucket Managementで確認できます。

Cloud Hadoopクラスタ作成

Cloud Hadoopクラスタを作成します。
Cloud Hadoopクラスタ作成に関する詳細は、Cloud Hadoop を開始するガイドをご参照ください。

Object Storageにサンプルデータをアップロード

  1. ユースケースのために作成した仮想のデータセットをダウンロードします。

    • ダウンロードしたファイルの圧縮を展開します。
  2. Object Storage > Bucket Managementで ncp-bigdataバケットをクリックし、圧縮を展開したファイルをアップロードします。
    cloudhadoop-objectstorage-buket1_ko

データの照会

Ambari、Hue、Zeppelinなど、Web UIでサンプルデータを照会できます。
Web UIにアクセスする方法は、サービス別 UIアクセスおよびパスワードの設定ガイドをご参照ください。

  1. Cloud Hadoopクラスタの作成が完了すると、Ambari、Hue、Zeppelinにアクセスするためのポートを ACGに追加します。
  2. Hueにアクセス(8443ポート)して Hiveクエリで martデータベースを作成します。
CREATE DATABASE mart;

hadoop-use-ex-hivequery_ko

  1. 以下のように orders2テーブルを作成します。
USE mart;
CREATE EXTERNAL TABLE `orders2` (
        `order_id` BIGINT,
        `order_number` BIGINT,
        `days_since_prior_order` DOUBLE

)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
location 's3a://ncp-bigdata/';

hadoop-use-ex-hivetable_ko

  1. orders2テーブルのデータを照会します。
SELECT * FROM orders2;

hadoop-use-ex3_4-2_ko

  1. Zeppelin(8443ポート)にアクセスします。

  2. [Notebook] > Create new noteをクリックし、Zeppelin Notebookを新しく作成します。
    hadoop-use-ex3_4-3_ko

  3. Default Interpreterを jdbcに指定し、 [Create] ボタンをクリックします。
    hadoop-use-ex3_4-3-interpreter_ko

  4. Hive Metastoreに登録された orders2テーブルを照会します。

%jdbc(hive)
SELECT order_number, AVG(days_since_prior_order)
FROM mart.orders2
WHERE 1=1
AND order_number IS NOT NULL
GROUP BY order_number
ORDER BY order_number
  • 例としてアップロードされた csvファイルを対象に単純分析を行います。
  • 注文回数が増えるほど再注文までにかかる期間が短くなることを前提に確認します。

<orders2テーブル>

  • order_id: 注文番号
  • order_number: 注文回数
  • days_since_prior_order: 最後の注文からの期間

orders2テーブルで days_since_prior_orderは最後の注文からどれくらい経過したのか最大30日まで表示したカラムであり、order_numberはユーザーの注文回数です。

  1. Cloud Hadoopを使用して Hueで作成した Hiveテーブル(orders2)を Zeppelinで照会し、以下のようにチャートで可視化します。
    hadoop-use-ex3_4-4_ko

チャートを見ると、注文回数の多い顧客は次の再注文までにかかる日数が短いと解釈できます。

参考
  • Object Storageを使用すると、HDFSに比べて性能は劣りますが、クラスタ終了後にも必要に応じて再度作成して同じデータを照会できるというメリットがあります。
  • Hive Metastoreを別途分離していないため、新規作成時に Hive DDLを実行する必要があり、Zeppelin Notebookも新規にインポート(import)します。