- 印刷する
- PDF
Object Storage + Sub Account の連携
- 印刷する
- PDF
Classic環境で利用できます。
NAVERクラウドプラットフォームのCloud Hadoop、Object Storage、Sub Accountを連携して使用する方法を説明します。
Bigdata Service
Cloud Hadoop:Hadoop、HBase、Spark、Hive、Prestoなどのオープンソースフレームワークを手軽に構築できます。
Cloud Hadoopに関する詳細は、こちらをご参照ください。Object Storage:安全な保管が必要な場合や大規模なデータを保存する場合に活用できます。
提供されるAPIを用いてサーバデータのバックアップや復旧用途でも活用できます。
Object Storageに関する詳細は、こちらをご参照ください。Sub Account:ユーザーをサブアカウントとして登録して特定サービスに対する権限を付与できます。
登録された内部ユーザーは権限を付与されたサービスに対してメインアカウントと同様にサービスを利用できます。
Sub Accountに関する詳細は、こちらをご参照ください。
Hadoop + Object Storage + Sub Accountの連携と使用
Sub Accountの作成とポリシーの追加
ユーザーをサブアカウントとして登録し、特定のサービスに対する権限を付与することができます。登録された内部ユーザーは権限を付与されたサービスに対してメインアカウントと同様にサービスを利用できます。
Sub Accountに関する詳細は、サービス > Management & Governance > Sub Accountをご参照ください。
Sub Accountの作成方法とポリシーを追加する方法は、以下のとおりです。
NAVERクラウドプラットフォームコンソールでSub Accountsサービスを作成します。
- Sub Accountsの作成時にObject StorageにアクセスするためのAPI Keyを使用できるように、アクセスタイプ項目にあるAPIアクセスを選択して設定します。
Sub Accountsリストで、作成したSub Accountをクリックし、[ポリシー] タブで使用ポリシーを設定します。
- Cloud HadoopのNCP_CLOUD_HADOOP_MANAGER、Object Storageの NCP_OBJECT_STORAGE_MANAGERポリシーを追加します。
- ACGの変更管理のためのNCP_SERVER_MANAGERも追加します。
参考VPC環境では、NCP_VPC_CLOUD_HADOOP_MANAGERとNCP_VPC_SERVER_MANAGERを追加してください。
[API Key] タブでObject StorageにアクセスするためのAPI認証キーを作成して確認します。
Sub Account > Dashboard > サブアカウントのログインページで、このSub Accountでアクセスします。
このアカウントに設定されたポリシーにより許可されたサービスのみ使用できます。
Object Storageバケットの作成
Object Storageでデータを保存するバケットを作成します。作成されたバケットは、Bucket Managementメニューで確認できます。
バケットの作成に関する詳細は、Object Storageご利用ガイドを参照してください。
Cloud Hadoopクラスタの作成
Cloud Hadoopクラスタを作成します。
Cloud Hadoopの作成に関する詳細は、Cloud Hadoopを開始するをご参照ください。
Object Storageにサンプルデータをアップロード
こちらにデータセットをダウンロードします。
- ダウンロードしたファイルの圧縮を展開します。
Object Storage > Bucket Managementでは、上記で作成したバケットに圧縮を展開したファイルをアップロードします。
データの照会
Ambari、HUE、ZeppelinなどのウェブUIでサンプルデータを照会できます。
Cloud Hadoopの作成が完了すると、Ambari、HUE、ZeppelinにアクセスするためのポートをACGに追加します。
- Ambariにアクセス(8080 port)すると、クラスタモニタリングを確認できます。
- HUEにアクセス(8000 port)してHiveクエリでmartデータベースを作成し、ordersテーブルを作成します。
CREATE DATABASE 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/input';
- データを照会します。
- 画像はサンプルデータです。
- Zeppelin(9995 port)にアクセスします。
- 新規のNotebookを作成します。
- Hiveメタストアに登録されたordersテーブルを照会します。
- 基本インタプリタはJDBCに指定します。
- 例としてアップロードされたCSVファイルを対象に単純分析のみ行います。
Ordersテーブル
order_id:注文番号
order_number:注文回数
days_since_prior:最後の注文からの期間
ordersテーブルでdays_since_priorは最後の注文からどれくらい経過したのか最大30日まで表示したカラムで、order_numberはそのユーザーの注文回数です。
注文回数が増えるほど再注文までの期間が短くなると仮定し、確認してみます。
Instacartで提供するデータを参考にして、例のために作った仮想のデータです。
%jdbc(hive)
SELECT order_number, AVG(days_since_prior_order)
FROM mart.orders
WHERE 1=1
AND order_number IS NOT NULL
GROUP BY order_number
ORDER BY order_number
Cloud Hadoopを使用してHUEで作成した HiveテーブルをZeppelinで照会し、チャートで可視化してみました。
チャートを見ると、注文回数の多い顧客は、次の注文までかかる日数が短いと解釈できます。
- Object Storageを使用すると、HDFSに比べて性能は劣りますが、クラスタの終了後にも必要に応じて再度作成して同じデータを照会できるというメリットがあります。
- Hiveメタストアを別途分離しなかったため、新規作成時に
Hive DDL
を実行する必要があり、Zeppelin Notebookも新規にインポート(import)する必要があります。