ELB編~ELBのアクセスログをEMRで解析~

こんにちは! JQです。

前回は『 ELB編~ELBのアクセスログ機能~ 』と題して、ELBの新機能であるアクセスログ機能を試してみました。

今回は『EMR編~ELBのアクセスログをEMRで解析~』と題して、ELBの新機能であるアクセスログ機能で取得したデータをEMRで解析してみたいと思います。

クラスターの起動

1. クラスターの起動

「Create Cluster」でクラスターを起動します。

alt

Cluster名やログ設定を入力します。

Create Cluster02

ソフトウェアの設定を入力します。

「Hadoop distribution」にAmazonの3.0.4を選択します。

Create Cluster03

インスタンス設定を入力します。

Create Cluster04

アクセスの設定をします。

Create Cluster05

Bootstrapの設定をします。

Create Cluster06

StepでスクリプトやOutputの設定をします。

以下のスクリプトでステータス200以外を取得してみます。

1DROP TABLE elb_raw_access_logs;2CREATE EXTERNAL TABLE elb_raw_access_logs (3	Timestamp	STRING,4	ELBName		STRING,5	RequestIP	STRING,6	RequestPort	INT,7	BackendIP		STRING,8	BackendPort		INT,9	RequestProcessingTime	DOUBLE,10	BackendProcessingTime	DOUBLE,11	ClientResponseTime	DOUBLE,12	ELBResponseCode		STRING,13	BackendResponseCode	STRING,14	ReceivedBytes		BIGINT,15	SentBytes		BIGINT,16	RequestVerb		STRING,17	URL			STRING,18	Protocol		STRING19)20ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'21WITH SERDEPROPERTIES (2223          "input.regex" = "([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*):([0-9]*) ([.0-9]*) ([.0-9]*) ([.0-9]*) (-|[0-9]*) (-|[0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) ([^ ]*) (- |[^ ]*)\"$"24        )25LOCATION '${INPUT}';
1DROP TABLE elb_raw_access_logs_s3;2CREATE TABLE elb_raw_access_logs_s3 (3        Timestamp       STRING,4        ELBName         STRING,5        RequestIP       STRING,6        RequestPort     INT,7        BackendIP               STRING,8        BackendPort             INT,9        RequestProcessingTime   DOUBLE,10        BackendProcessingTime   DOUBLE,11        ClientResponseTime      DOUBLE,12        ELBResponseCode         STRING,13        BackendResponseCode     STRING,14        ReceivedBytes           BIGINT,15        SentBytes               BIGINT,16        RequestVerb             STRING,17        URL                     STRING,18        Protocol                STRING19)
1ROW FORMAT DELIMITED FIELDS TERMINATED BY ','2LOCATION '${OUTPUT}';
1INSERT OVERWRITE TABLE elb_raw_access_logs_s32SELECT * FROM elb_raw_access_logs WHERE BackendResponseCode <> 200;
Create Cluster07

開始されたのを確認します。

Create Cluster08

2. 確認

それでは確認してみます。

「Waiting after step completed」になっていれば成功しています。

Create Cluster09

実際にS3を確認してみます。

Create Cluster10

実際の結果も確認してみます。

Create Cluster11

ステータスが200が無ければ成功です。

最後にEMRを削除しましょう。

いかがでしたでしょうか?

次回もお楽しみに!!!

この記事を書いた人

aws-recipe-user