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版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS KMSマルチリージョンキーを確認しました
2021年6月にKMS マルチリージョンキーがリリースされました。 マルチリージ …
-
-
VPC新コンソールの日本語UIでルートテーブル編集時のエラー(2021/6/10)が発生したのでフィードバックを送った
VPCの新コンソールがリリースされていたので使って作業してましたところ、こんなエ …
-
-
Amazon SNSサブスクリプションフィルターで優先度別のSQSキューにサブスクライブする
EC2のコンシューマーアプリケーションは優先度の高いキューのメッセージを先に処理 …
-
-
Amazon Location Service入門ワークショップ-マップの操作
関連記事 Amazon Location Service入門ワークショップの前提 …
-
-
VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した
2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …
-
-
Amazon CloudWatch クロスリージョンクロスアカウントダッシュボードを作成
本ブログのCloudFrontとWAFのアカウントと、EC2、RDS、S3などオ …
-
-
WordPressで画像アップロードができなくなった(AWS WAFでブロックしていた)
WordPressで画像がアップロードできなくなりました。 こんなメッセージです …
-
-
Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で
Elastic Beanstalk への flask アプリケーションのデプロイ …
-
-
Amazon ECS Workshop for AWS Summit Online
INTRODUCTION TO AMAZON ECSに手順や必要なリンクがありま …
-
-
Cloud9のデフォルト設定での権限確認(AWS managed temporary credentials)
Cloud9の環境を作成した際のデフォルトアクセス権限は、環境を作成したIAMユ …