ECS の Enhanced Container Dependency Management でタスク終了時のコンテナの依存関係を考慮する
先日次のような記事を書きました。
ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った
Launch Templates と Auto Scaling Groups で Spot Fleet Requests みたいなことをする
半年ぐらい前に、launch template と auto scaling group を組み合わせることで、オンデマンドインスタンスとスポットインスタンスを混ぜたり、インスタンスタイプを混ぜたりすることができるようになりました。
cf. Scale Amazon EC2 Instances across On-Demand, Spot and RIs in a Single Auto Scaling Group
Amazon Elastic MapReduce (EMR) ではじめる Presto/Trino 入門
Presto/Trino 1は日本語の入門書がなく、「Presto/Trino を運用することになったけど何から勉強すれば良いかわからない><」という人も多いのではないかと思います。そこで、Presto/Trino を運用する時にこの辺の内容を知っていれば、よりスムーズにキャッチアップできたかなぁと思うことをまとめてみました。
Hive connector を使いたいので、Hive と Presto の環境構築をサクッと行える Amazon Elastic MapReduce (以降 EMR) で実際に手を動かせればと思います。
以降 Presto/Trino ではなく Presto と表記しますが、Trino は元々同じソフトウェアであるため、Trino でも当てはまる内容がほとんどのはずです。
-
Presto は Facebook が開発しているものと、2019 年に発足された Trino Software Foundation(旧 Presto Software Foundation)によって開発されているものが存在しましたが、後者は Trino に改名されました 。EMR では前者は Presto または Presto(DB) と表記され、後者は PrestoSQL と表記されています。 ↩
Hive on Tez で Parquet を Snappy で圧縮すると起きる Container is running beyond physical memory limits. を解消する
Hive で次のようなエラーに遭遇することがあるかと思います。
ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った
ECS タスクは、起動時にはコンテナの依存関係を考慮するのに終了時は全く考慮しません。次のコメントからもよくわかります。
一定間隔の滞在ユーザ数を高速に求める Presto SQL
例えばアクセスログに各ページにアクセスした時刻と離脱した時刻が入っているとします。次のようなイメージです。
upstart で start した job の設定を変更するには一度 stop する必要がある
upstart で start した job の設定を変更した後に反映するには、次のように stop して start しなければいけません。restart ではダメです。restart でダメな理由は後述します。
Rollbar で Rack::QueryParser::InvalidParameterError が通知されるのを抑止する
Rails のエラーを捕捉するのに Rollbar を使っている場合、次のような通知を受け取ることがあります。
tmux で列数固定で window を分割して複数サーバに SSH する
日頃の業務で複数台のサーバにログインしてオペレーションすることがあると思うんですが、cssh, i2css, tmux-css, xpanes 等便利なツールがあるし、tmux 関連の簡易スクリプトだけでも次のように色々見つかります。
MySQL に INSERT ... SELECT syntax でデータを挿入する fluentd plugin を作りました
fluentd に送られてきたデータを MySQL に挿入する plugin はいくつかあるんですが、送られてきたデータを MySQL 上のデータを使って加工して挿入すると便利そうな案件があったので作ってみました。任意の SELECT
を記述できるので、複数のテーブルと JOIN した結果を挿入することもできます。
https://github.com/abicky/fluent-plugin-mysql-select-insert