ヤマムギ

growing hard days.

*

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ごとの集計を出力するそうです。

出力バケットを見ます。

こんなデータと

こんなデータができてました。

http://ap-northeast-1.elasticmapreduce.samples.s3.amazonaws.com/cloudfront/code/Hive_CloudFront.q

上記URLで、Hive_CloudFront.qをダウンロードできたので、内容を見てみました。

ふむふむ。
これをちょっと変更して、また今度このブログサイトのアクセスログでもやってみよう。

リソース削除

EMRクラスターを選択して[削除]ボタンを押下しました。

マスターノードとコアノードのインスタンスも削除されていきました。

感想

AWSの各サービスのユーザーガイドは、最初にこのようなクイックスタートなチュートリアルがあるものが多いので、まずは動かして、それから詳細な機能確認に進んでいけたりもします。
EMRはHadoopなどを中心としたOSSのマネージドサービスということもあるので、まずそれらが何をするものなのか、EMRを使うことで何が楽になるのか(1つ1つのEC2インスタンスを操作しなくていい、構成しなくていい、などなど)をBlack Beltの資料とかで少し知ってから、このあたりのチュートリアルをやりましたので、理解しやすかったです。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS ,

ad

ad

  関連記事

Amazon API GatewayをLambda(Python)で削除する

やりたいこと 特定のAWSアカウント、特定のリージョン内のAPI Gateway …

AWSセルフマネージドAD環境にEC2 Windowsサーバーをドメイン参加する

AWSクイックスタートのActive Directory Domain Serv …

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

AWS EC2でAMI(Amazon Machine Image)を作成しておく

前回まででひとまずRedmineを構築するところまで出来たので、念のためスナップ …

AWS CodeStarのプロジェクトテンプレートLambda+Pythonによって生成されるもの

勉強会のデモで、AWS CodeStarのプロジェクトテンプレートLambda+ …

AWS Service Catalogポートフォリオを他のアカウントと共有する

AWS Service Catalogチュートリアルで作成したポートフォリオの他 …

CloudFrontのカスタムヘッダーがなければALBのルーティングで503レスポンスを返す

大阪リージョンにはWAFがまだないです(2021年4月現在) 今のこのブログの構 …

AWS Systems Manager Run CommandでEC2 Linuxのユーザーとカレントディレクトリを確認

AWS Systems Manager Run CommandからEC2 Lin …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

別アカウントのVPCからAWS PrivateLinkを使う

やったことないのでやってみるシリーズです。 VPC エンドポイントサービス (A …