はじめての Azure Data Lake ~ Azure Data Lake に HDInsight(Hadoop、Storm、Spark 等 ) からアクセスしてみよう ~

Microsoft Japan Data Platform Tech Sales Team
清水

みなさん、こんにちは。前々回の記事前回の記事では、Azure Data Lake Analytics を用いて分析を行う際の手順やポイント、Visual Studio を用いて U-SQL をコーディング、実行する際の手順やポイントについてお伝えしましたが、いかがだったでしょうか ? 今回は、 Azure における PaaS 版の Hadoop である HDInsight から  Azure Data Lake Store にアクセスする際の手順やポイントについてお伝えします。

Azure Data Lake を中心としたデータの処理・分析

Azure Data Lake Store( 以降 ADLS) は、 HDFS 互換のファイルシステムで、 WebHDFS のエンドポイントが提供されています 。

clip_image001

ADLS には、前々回の記事前回の記事でご紹介した、 Azure Data Lake Analytics だけでなく、 HDInsight 、 Azure SQL Data Warehouse(Poly Base 経由 ) 等の Azure のサービスに加え、 Cloudera 、 Hortonworks 、 MAPR 等の他の Hadoop ディストリビューションからもアクセスが可能です。この機能により、分析要件や開発者のスキルに応じた処理・分析基盤の柔軟な選択、効率的な連携により、開発者や分析担当者の方は本来の業務によりフォーカスして頂くことが可能になります。

clip_image001[15]

 

HDInsight から Azure Data Lake Store へのアクセス

今回は、 HDInsight の Hadoop クラスターを作成する際に、 ADLS をプライマリストレージとして設定する際の手順とポイントをご紹介します。ここでは、 Hadoop クラスターを例に説明をしますが、 HDInsightのその他のクラスター (Storm 、 Spark 等 ) についても基本的に同様です。

 

事前準備

これまでの連載ではあまりふれていませんが、 ADLS や Azure Data Lake Analytics では Azure Active Directory(AAD) と連携し、 ADLS 内のフォルダへファイルに対するアクセス制御等を行うため、 AAD が必要になります。ここでは、 AAD の説明は省略しますが、事前に AAD 及び必要なユーザー等の作成をお願いします。 続いて、 ADLS を作成し、 Hadoop クラスターに関連するフォルダ、ファイルを配置する起点となるフォルダを作成します。ここでは、以下のようなフォルダを作成します。

 

 adl://<ADLS 名 >.azuredatalakestore.net/clusters/dataplatjp-hdp-1/

 

Azure Data Lake Store をプライマリ ストレージとして選択

Hadoop クラスターの作成時には、プライマリ ストレージ ( 既定のストレージ ) あるいは追加のストレージとして ADLS を選択することが可能ですが、ここでは、プライマリ ストレージとして選択する際の手順とポイントをご紹介します。

image

Hadoop クラスターのプライマリストレージに ADLS を選択する際は、 ADLS と同じリージョンに Hadoop クラスターを作成することが必要です。また、プライマリ ストレージの種類で「 Data Lake Store 」を選択します。プライマリ ストレージとして使用する ADLS を選択するため、「Data Lake Store アカウントを選択する」をクリックします。右側に使用可能な ADLS の一覧が表示されるので、プライマリ ストレージとして使用する ADLS を選択します。続いて、ADLS 内の各フォルダに対するアクセス権の設定を行うため、上記の画面の「 Data Lake Store アクセス ( 必要な設定の構成 ) 」をクリックすると、以下のような画面が表示されます。

image

ここでは、 ADLS のサービス プリンシパルを新規作成するため、Azure AD サービス プリンシパルの選択から「新規作成」選択します。その後、サービス プリンシパルを構成するため、「サービスプリンシパル ( 構成されていません ) 」をクリックします。作成するサービス プリンパル名、証明書のパスワードを入力し、「作成」をクリックします。次にプライマリ ストレージとして使用する ADLS のフォルダに必要な権限を付与するため、「アクセス」をクリックします。

image

hadoop クラスター関連のファイルを配置するフォルダに必要な権限を付与します。

image

以降の手順は、プライマリ ストレージに Azure Storage を選択し hadoop クラスターを作成した場合と同様のため、ここでは省略します。

 

Azure Data Lake Store を追加のストレージとして選択

Hadoop クラスターのプライマリストレージに Azure Storage を選択した場合は、追加のストレージとして ADLS を使用することが出来ます。 Hadoop クラスターの作成時であれば、ストレージの設定画面で、ADLS を追加することが可能です。

image

ADLS を追加する手順は、プライマリ ストレージとして選択した場合と同様のため、ここでは省略します。

 

作成した Hadoop クラスターの確認

ADLS をプライマリ ストレージとして選択した Hadoop クラスターの作成完了後、 ADLS 内の Hadoop クラスターのルートパス ( /clusters/dataplatjp-hdp-1/) を確認すると、以下のようにフォルダやファイルが作成されていることが確認出来ます。なお、追加のストレージとして ADLS を選択した場合には、以下のフォルダやファイルは Azure Storage 側に作成され、 ADLS 側は追加ストレージのため、特に何も作成されません。 imageimage

続いて 、ADLS 上のサンプルデータを読み込んでみます。作成した Hadoop クラスターの「 Overview 」から「 Ambari Views 」を起動し、「 Hive View 2.0 」をクリックします。 Hive コンソールが起動するので、以下の HiveQL を入力し、実行します。

 

 set hive.execution.engine=tez;
DROP TABLE log4jLogs;
CREATE EXTERNAL TABLE log4jLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE LOCATION '/example/data/';
SELECT * FROM log4jLogs WHERE t4 = '[ERROR]' AND INPUT__FILE__NAME LIKE '%.log';

image

 

上記の例では、 Hadoop クラスターのルートパス の下の /example/data フォルダに格納されている拡張子が .log のファイルを対象に Hive 外部テーブルを設定し、検索条件にあてはまる行を出力しています。

今回は、 HDInsight から ADLS にアクセスする際の手順やポイントについてお伝えしましたが、いかがだったでしょうか ? 次回のはじめての Azure Data Lakeでは、 Azure Data Lake Analytics でデータを分析してみようの後編をお届けする予定です。

 

関連記事

はじめての Azure Data Lake ~ そもそも Data Lake って何? ~ はじめての Azure Data Lake ~ 環境構築からファイル アップロードまで ~ はじめての Azure Data Lake ~ Azure Data Lake Analytics でデータを分析してみよう ( 前編 ) ~ はじめての Azure Data Lake ~ Azure Data Lake Analytics でデータを分析してみよう ( 中編 ) ~ Microsoft Japan Data Platform Tech Sales Team ブログの HDInsight 関連記事一覧 U-SQL Language Reference Azure Data Lake & Azure HDInsight Blog