Amazon EMR 「Hadoop を使用してビッグデータを分析」チュートリアルをやってみました
2020/07/25
AWS認定データアナリティクス受験準備の一環で、Amazon EMRのチュートリアルをやってみました。
手順はこちらの「Hadoop を使ってビッグデータを分析する方法 – アマゾン ウェブ サービス (AWS)」です。
所要時間60分らしいです。
実際の手順はこちら「Amazon EMR によるビッグデータ分析入門 – Amazon EMR」です。
目次
S3バケットの作成
適当な名前でバケットを作成して、[フォルダの作成]ボタンでプレフィックスを作成しておくようです。
プレフィックスの事前作成要るのかな??
とりあえず手順通りに進めます。
MyHiveQueryResults というプレフィックスを作成しておきました。
EC2 キーペアの作成
EC2キーペアを作成しました。
環境はMacですので、pemでダウンロード後、chmod 400しておきました。
(結果、このチュートリアルではSSHログインしませんでした)
EMRクラスターを起動
[クラスターの作成]ボタンを押下しました。
(手順はクイックオプションでの作成です。ですが、詳細オプションも見るだけでも見ておくことでEMRで設定できることのイメージがつきやすかったです。)
クラスター名を入力して、キーペアを選択して、[クラスターの作成]ボタンを押下しました。
1つのマスターインスタンスと2つのコアインスタンスができるようです。
インスタンスクラスはm5.xlarge、VPCはでデフォルトですね。
アプリケーションは、Hive 2.3.6, Hue 4.6.0, Mahout 0.13.0, Pig 0.17.0, Tez 0.9.2が選択済みでした。
1つのAZで起動しました。
詳細オプションでインスタンスフリートにすると複数のAZで配置できるようです。
クラスターのステータスが開始中ですが、これが待機中になれば次に進めそうです。
でも、次のステップはセキュリティグループの変更なので、次に進んじゃいます。
セキュリティグループの変更
マスターとコア用にそれぞれ、ElasticMapReduce-master、ElasticMapReduce-slaveが作成されていました。
手順では、SSH 22 ソース 0.0.0.0/0 があるからマイIPに絞るべし、とありますが、SSHのインバウンドルール自体がなかったので新規作成しました。
(このチュートリアルではSSHログインはしませんでした)
Hiveスクリプトを実行してデータを処理する
マスター、コア両方のステータスは、実行中になっていました。
そして、クラスターは待機中なので大丈夫そうですね。次の手順に進みます。
[ステップ] タブで[ステップの追加]ボタンを押下しました。
- スクリプトS3の場所
s3://ap-northeast-1.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q - S3の場所の入力
s3://ap-northeast-1.elasticmapreduce.samples - S3の場所の出力
s3://emr-hive-demo/MyHiveQueryResults
入力バケットにある、CloudFrontアクセスログを解析して、OSごとの集計を出力するそうです。
出力バケットを見ます。
1 2 3 4 5 |
Linux813 MacOS852 OSX799 iOS794 |
こんなデータと
1 2 3 |
Android855 Windows883 |
こんなデータができてました。
http://ap-northeast-1.elasticmapreduce.samples.s3.amazonaws.com/cloudfront/code/Hive_CloudFront.q
上記URLで、Hive_CloudFront.qをダウンロードできたので、内容を見てみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
-- Summary: This sample shows you how to analyze CloudFront logs stored in S3 using Hive -- Create table using sample data in S3. Note: you can replace this S3 path with your own. CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( DateObject Date, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, OS String, Browser String, BrowserVersion String ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION '${INPUT}/cloudfront/data'; -- Total requests per operating system for a given time frame INSERT OVERWRITE DIRECTORY '${OUTPUT}/os_requests/' SELECT os, COUNT(*) count FROM cloudfront_logs WHERE dateobject BETWEEN '2014-07-05' AND '2014-08-05' GROUP BY os; |
ふむふむ。
これをちょっと変更して、また今度このブログサイトのアクセスログでもやってみよう。
リソース削除
EMRクラスターを選択して[削除]ボタンを押下しました。
マスターノードとコアノードのインスタンスも削除されていきました。
感想
AWSの各サービスのユーザーガイドは、最初にこのようなクイックスタートなチュートリアルがあるものが多いので、まずは動かして、それから詳細な機能確認に進んでいけたりもします。
EMRはHadoopなどを中心としたOSSのマネージドサービスということもあるので、まずそれらが何をするものなのか、EMRを使うことで何が楽になるのか(1つ1つのEC2インスタンスを操作しなくていい、構成しなくていい、などなど)をBlack Beltの資料とかで少し知ってから、このあたりのチュートリアルをやりましたので、理解しやすかったです。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon CloudWatch Anomaly Detectionをダッシュボードに設定
Amazon CloudWatch クロスリージョンクロスアカウントダッシュボー …
-
-
このブログをAWS大阪リージョンへ移行しました
大阪リージョン爆誕!! 朝起きて寝ぼけながらリージョンを見てると。 「大阪リージ …
-
-
AWS DeepLens開封の儀
去年(2019年)7月にamazon.co.jpでDeepLens買えますやんっ …
-
-
AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する
参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …
-
-
AWS Global Acceleratorでアクセラレーターを作成する
バージニア北部、東京、大阪のEC2インスタンスをエンドポイントにして作成してみま …
-
-
EC2とRDSのMySQLを他のAWSアカウントへ移設する
他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …
-
-
VyOSでssm-userからvyosユーザーに切り替える
EC2 VyOSで/etc/resolv.confを設定しました VyOSにSS …
-
-
CloudWatch インテリジェントオペレーションでこのブログのログを調査してみました
CloudWatch インテリジェントオペレーションを設定しました。 設定 マネ …
-
-
AWS Summit 2016 Tokyoに参加してきました (Day2)
馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …
-
-
Selenium, Headless ChromeとAWS Lambdaで夜な夜なスクレイピング
このようなアーキテクチャで、Alexaスキルの開発を進めていまして、元となる情報 …