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
関連記事
-
試したい事があるのでAWS でとりあえずAmazon Linuxのサーバを作る
1年間の無料キャンペーン期間中に検証する とある勉強会でせっかくAWSのアカウン …
-
Amazon Linux 2023、T4Gインスタンス、PHP8にWordPressを移行しました
ブログをAmazon Linux 2からAmazon Linux 2023に移行 …
-
AlexaにAWSの最新Feedを読み上げてもらう(Lambda Python)
年末にAmazon Echo Dotを購入しましたので、練習がてらAlexaスキ …
-
AWS CDKでクロススタックリファレンスをする
CloudFormationで複数のスタックで参照することがあります。 それをC …
-
NATインスタンスを作成する
プライベートサブネットのEC2インスタンスからカスタムメトリクスとCloudWa …
-
Amazon LinuxにRedmine をインストールする(手順整理版)
Amazon LinuxにRedmineをインストールしました手順を記載します。 …
-
静的と動的って何ですか?と営業さんに聞かれたので端的に説明してみました
AWS認定クラウドプラクティショナーの勉強をしている営業さんに、「S3で静的オブ …
-
RDSスナップショットをS3にエクスポートする新機能を試そうかと思った
やったこと RDSスナップショットをS3にエクスポートできる、という新機能が追加 …
-
ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた
同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …
-
API Gateway Lambdaプロキシ統合で渡されるリクエストを確認しました
API Gatewayの統合リクエストでLambdaを指定するときにプロキシ統合 …