ablog

不器用で落着きのない技術者のメモ

2018-11-01から1ヶ月間の記事一覧

Google 認証を使ってALBで認証する

AWS

Google Identity Platformで OAuthクライアントID発行 Google Cloud Platform にアクセスし Google アカウントでログインする。 任意の名前でプロジェクトを作成する。 [認証情報を作成]-[OAuth クライアント ID]をクリックする。 [同意画面を設定]をクリッ…

ssh接続せずにAWSマネジメントコンソールからEC2にログインしてシェルを実行する

AWS

IAMポリシー"AmazonSSMManagedInstanceCore"を付与したIAMロールをEC2にアタッチする。 AWSマネジメントコンソールにログインして Systems Manager をクリックする。 [セッションの開始]をクリックする。 インスタンスを選択して[セッションの開始]をクリッ…

Hive on EMR で S3 Select を有効化してI/O量を削減する

AWS

Hive on EMR で S3 Select を有効化すると、I/O量が削減され、実行時間が短縮することを確認した*1。 検証結果 通常 hive> select count(tax_region) from sh10.json_sales★ where tax_region = 'US'; Query ID = hadoop_20181125201846_ceb61407-d775-4399-…

CloudFormation で EMR クラスター作成時に Bootstrap Action を実行する

AWS

CloudFormation で EMR クラスター作成時に Bootstrap Action を実行したメモ。 master.yaml --- AWSTemplateFormatVersion: '2010-09-09' Description: Main Template For Workshop Parameters: (中略) CFnS3Bucket: Description: Specify an Amazon S3 t…

CloudFormation で EMR クラスター作成時に Presto の S3 Select Pushdown を有効化する

AWS

CloudFormation で EMR クラスター(EMR リリース 5.18.0以降)作成時に Presto の S3 Select Pushdown を有効化する方法をメモ。 AWSTemplateFormatVersion: '2010-09-09' Description: Stack to create EMR Cluster. Parameters: InstanceType: Type: Stri…

s3 cp でクロスアカウントでバケット間コピーすると "An error occurred (AccessDenied) when calling the UploadPartCopy operation" と怒られる

AWS

事象 s3 cp でクロスアカウントでバケット間コピーすると "Access Denied" と怒られる。コピー元バケットからEC2へのコピーや、EC2からコピー先のバケットへのコピーは成功する。 $ aws s3 cp --recursive s3://cp-from/ s3://cp-to/ copy failed: s3://cp-f…

s3 cp でクロスアカウントでバケット間コピーする際のコピー元バケットに参照権限を付与するバケットポリシー

AWS

AWS CLI(aws s3 cp --recursive s3://... s3://...)でクロスアカウントでS3バケット間コピーする際にコピー元バケットで参照権限のみ許可するバケットポリシーの例。 { "Version": "2012-10-17", "Id": "Policy1543071477610", "Statement": [ { "Sid": "S…

EMRで PySpark を実行すると java.io.FileNotFoundException: /stderr (Permission denied) とエラーメッセージが出力される

AWS

以下では解決しない。解決策が分かったら更新予定。 事象 EMR(emr-5.19.0) で PySpark を実行すると、"java.io.FileNotFoundException: /stderr (Permission denied)"、"java.io.FileNotFoundException: /stdout (Permission denied)" というエラーメッセー…

Presto on EMR で "deserializer does not exist: org.openx.data.jsonserde.JsonSerDe" と怒られる

AWS

事象 Presto on EMR で JSON の外部テーブルにクエリを実行すると "deserializer does not exist: org.openx.data.jsonserde.JsonSerDe" と怒られる。 $ hive hive> CREATE EXTERNAL TABLE IF NOT EXISTS sh10.json_sales( (中略) ) ROW FORMAT SERDE 'org…

ECS で EC2 と Fargate の起動タイプのタスクを併用して同じアプリケーションを実行する

AWS

ECS で EC2 と Fargate の起動タイプのタスクを併用して同じアプリケーションを実行してみた。ワークロードがない場合は、EC2 の1タスクだけ実行され(Fargate のタスクは 0)、EC2 のCPU使用率が50%を超えると EC2 に1タスク追加され、EC2 のCPU使用率が80%…

S3オブジェクトのバージョン一覧を表示する

AWS

S3 で複数バージョン存在するオブジェクトをリストアップする。 $ aws s3api list-object-versions --bucket az-test-bucket|jq -r '.Versions[].Key'|sort|uniq -c|perl -lane '$F[0] > 1 and print' 2 swingbench/data/gz/sh10/sales/test2.txt 3 swingben…

Parquet ファイルに Presto でクエリ時の Column Projection について調べた

確認したかったこと Parquet ファイルに対して Presto で select count(year) のように特定カラムのみ参照するとそのカラムのみをストレージから読んでいる。 select count(*) すると Parquet ファイルのフッターのメタデータ(Row group の num rows)のみ…