Classic環境で利用できます。
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の連携と使用
3つのサービスを連携させ、Object Storageに保存されたデータを Cloud Hadoopで分析する手順は、次の通りです。
Sub Account の作成とポリシーの追加
ユーザーをサブアカウントとして登録し、特定のサービスに対する権限を付与することができます。登録されたユーザーは、権限を付与されたサービスに対してメインアカウントと同様にサービスを利用できます。Sub Accountに関する詳細は、Sub Account ご利用ガイドをご参照ください。
サブアカウントの作成およびポリシーを追加する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールで Sub Accountサービスを作成します。
- Object Storageにアクセスするには API Keyを使用します。Sub Accountの作成時、アクセスタイプ項目の APIアクセスを選択します。

- Object Storageにアクセスするには API Keyを使用します。Sub Accountの作成時、アクセスタイプ項目の APIアクセスを選択します。
- Sub Accountsメニューで作成したサブアカウントのログイン IDをクリックし、ポリシータブで使用ポリシーを追加します。
- Cloud Hadoopの NCP_CLOUD_HADOOP_MANAGERポリシーを追加します。
- Object Storageの NCP_OBJECT_STORAGE_MANAGERポリシーを追加します。
- ACG変更管理のための NCP_SERVER_MANAGERポリシーを追加します。

- [Access Key] タブメニューで Object Storageにアクセスするための API認証キーを追加するために、 [追加] ボタンをクリックした後に確認します。

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

- サブアカウントログインページの URLにアクセスした後、以下のようにサブアカウントでログインします。
- サブアカウント IDは、サブアカウントの作成時に設定したログイン IDです。
- パスワードは、サブアカウントの作成時に設定したログインパスワードです。

- このアカウントに設定されたポリシーによって許可されたサービスのみ使用できます。

Object Storageバケット作成
Object Storageでデータを保存する ncp-bigdataバケットを作成します。作成したバケットは Bucket Managementで確認できます。バケット作成に関する詳細は、Object Storage ご利用ガイドをご参照ください。
Cloud Hadoopクラスタ作成
Cloud Hadoopクラスタを作成します。Cloud Hadoopクラスタ作成に関する詳細は、Cloud Hadoop を開始するガイドをご参照ください。
Object Storageにサンプルデータをアップロード
- データセットをダウンロードします。
- ダウンロードしたファイルを解凍します。
- Object Storage > Bucket Managementメニューで ncp-bigdataバケットをクリックし、解凍したファイルをアップロードします。

データ照会
Ambari、Hue、Zeppelinなど、Web UIでサンプルデータを照会できます。Web UIにアクセスする方法は、サービス別 UIアクセスおよびパスワードの設定ガイドをご参照ください。
- Cloud Hadoopクラスタの作成が完了すると、Ambari、Hue、Zeppelinにアクセスするためのポートを ACGに追加します。
- ACGの設定方法は、ACGルールの設定をご参照ください。
- Hueにアクセス(8000ポート)して Hiveクエリで martデータベースを作成します。
CREATE DATABASE mart;

- 以下のように orders2テーブルを作成します。
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/';

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

- Zeppelin(9995ポート)にアクセスします。
- [Notebook] > Create new noteをクリックし、Zeppelin Notebookを新しく作成します。

- Default Interpreterを jdbcに指定し、 [Create] ボタンをクリックします。

- 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は当該ユーザーの注文回数です。
- Cloud Hadoopを使用して Hueで作成した Hiveテーブル(orders2)を Zeppelinで照会し、以下のようにチャートで可視化します。

- チャートを見ると、注文回数の多い顧客は次の再注文までにかかる日数が短いと解釈できます。
- Object Storageを使用すると、HDFSに比べてパフォーマンスは劣りますが、クラスタを終了した後も必要に応じて再度作成し、同じデータを参照できるというメリットがあります。
- Hive Metastoreを別途分離していないため、新規作成時には
Hive DDLを実行する必要があり、Zeppelin Notebookも新たにインポート(import)する必要があります。