LoginSignup
0
0

EMRクラスタの作成からポートフォワーディング、Hueへのログイン、データベースおよびテーブルの作成までの手順

Last updated at Posted at 2022-01-18

EMRクラスタ作成~ポートフォワーディング~Hueにログイン~DB,テーブル作成まで

Glueをメタデータストアとして使うことに注意。glueをメタデータストアとして使わないとクラスタの中にmysqlが立ち上がりそこにメタデータが保存される。emrを閉じてしまうとメタデータから作り直しになってしまう。

構成の詳細
リリースラベル:emr-5.24.0
Hadoop ディストリビューション:Amazon 2.8.5
アプリケーション:Hive 2.3.4, Hue 4.4.0, Spark 2.4.2, Tez 0.9.1, Zeppelin 0.8.1, Pig 0.17.0
ログの URI:s3://aws-logs-hoge-ap-northeast/elasticmapreduce/

fadsfdsafdsafdsafdsafdsafdsafdsa.png

クラスタを立ち上げたらマスターノードにsshで通信、キーペアを指定

ssh -i C:/path/to/key.pem hadoop@ec2-5...3.ap-northeast-_.compute.amazonaws.com

コンソールにログインできなかったがインバウンドトラフィックの編集でssh22番ポートを開けるのを忘れていた。マイIPでインバウンド通信許可。

image.png

しかし、hueに接続できない。調べるとポートフォワーディングが必要とのことなので以下のコマンドでローカルからポートフォワーディングした。
追記:ポートフォワーディングしなくても、マスターノードのセキュリティグループ>インバウンドルールから8888を開ければさっとhueにアクセスできたかもしれない…

ssh -i C:/path/to/key.pem -N -L 8157:localhost:8888 hadoop@ec2-5...3.ap-northeast-_.compute.amazonaws.com

この後http://localhost:8157/にアクセスするとhueに繋がった。

image.png

あとは特にSQLを実行するのと何ら変わりない。

CREATE DATABASE EMRTEST_0118;

-- ## Hiveの実行エンジンを設定する
-- MapReduceで処理
set hive.execution.engine=mr;
-- tezのほうが早いのでtezに設定
set hive.execution.engine=tez;
-- 実行エンジンを確認
set hive.execution.engine;
CREATE EXTERNAL TABLE emrtest_0118.talking_train_raw (
  ip INT, -- カラムの名前 そのカラムの型
  app INT,
  device INT,
  os INT,
  channel INT,
  click_time STRING,
  attributed_time STRING,
  is_attributed INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 's3://emr-0118/'
TBLPROPERTIES ("skip.header.line.count"="1");

とりあえずテーブルの参照まで終わった。Hiveを使ってやることといえば大規模な分散処理、バッチ処理を実行しそれをS3などのデータレイクへのエクスポートすることだろう。

この部分ができれば、実務的にはスケジューラを通してHiveを定期実行する部分を作成したいところ。EMRを定期実行して、○○して…となるとなかなか時間がかかりそう。趣味的にはネットワーク関連の勉強をしてからのほうがいろいろとはかどりそうだが。逆にHiveからエクスポートされた加工済みのデータはただのcsvなのでその処理自体は簡単そう。

image.png

参考
https://qiita.com/asdasda/items/a2caf5d771bc81ee3dfa

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0