About Me

My photo
Software Engineer at Starburst. Maintainer at Trino. Previously at LINE, Teradata, HPE.

2018-07-17

Money Never Sleeps


言の葉の庭と同じぐらい何度か観ているWall Street: Money Never Sleepsを観ました。一番最初に観たキッカケは父が家で観ていたことですが、その後 真山仁さんのハゲタカシリーズを読んで金融に興味を持ってから2回目以降を観るようになりました。レビューでは前作の方が良かったという人が多いみたいですが、前作は未だに手を出していません。先に新しい方を観ると画質が下がるのが嫌だなぁと適当な理由をつけて避けていたんですが、調べてみたところ前作と2年しか経ってないようなので今度観てみようと思います。
ラストに流れるTalking HeadsのThis Must Be The Placeは何度観てもやっぱり好きで、段々カメラが上を向くに連れておじさんもまた仕事頑張らなあかんなという気持ちになります。この曲はMarvelのAgents of S.H.I.E.L.Dにも使われているみたいですね。全く違うジャンルなので違和感があって面白いです。CD版の音源ももちろん良いですが、YoutubeにあがっているNaive Melody版は雰囲気もあいまって最高です。(この元の動画はどこで買えるのだろう!)

2018-07-05

Hi, YARN-6640

YARN上で動いている、とあるアプリがYARNのバグを踏み抜きました。
AM heartbeat stuck when responseId overflows MAX_INT

これは典型的なオーバーフローのバグで、Application ManagerとResource Manager間のやりとりをint型の変数で応答のIDを管理し毎回インクリメントしているのですが、その値が2147483647に達すると、次回のIDが-2147483648になり、前回のレスポンスとの整合性が取れていないとうことで例外を投げます。YARNの2.8.2で修正されていますが、それ以前のバージョンを使っており、ハートビートの間隔が短いアプリをロングランしているような場合には一度確認してみると良いかもしれません。
なお、AM-RM間だけでなくName Manager-Resource Manger間でも同様のロジックは含まれていました。こちらは2.8.4で修正されています。
NM heartbeat stuck when responseId overflows MAX_INT

2018-07-04

Visualize heatmap on Aster AppCenter

Aster AppCenterでheatmapのCustom Visualizationを作ってみました。
https://github.com/ebyhr/Teradata/tree/master/aac_heatmap



使い方はdb_table_nameにテーブル名を指定して、vizTypeにheatmapを指定します。
heatmapのライブラリは座標をx, y指定するようなデータの持ち方を前提にしているものが多いですが、あえてテーブルをそのまま表示して色付けするようにしています。
insert into app_center_visualizations (json) values (
'{
    "db_table_name": "public.confusionmatrix",
    "vizType": "heatmap",
    "title": "Report by confusionmatrix"
}')

Teradata AppCenterはたまに触っていますが、UXが微妙すぎてあまり使う気が起きません。バックエンドにKubernetesを据えたのは将来的にはいい判断になると思うんですが、現時点ではオーバーエンジニアリングかなと感じます。Javaでちょっとコードを書きたいだけなのにDockerfile書くのは面倒です。

話が変わりますが、最近SQLを二重実行するようなUDFを作ろうかなと考えています。分析クエリで欲しい場面は皆無ですが、バッチ処理で使いたい場面は多々あります。
AsterのSQL-MRであればコードを書くのは3分もあれば終わるのですが、良い名前が思いつかないのでペンディングにしています。
例えば全部のテーブルを削除したい時はこんなクエリになります。Javaであれば中のSELECT文の結果をResultSetで受け取り、ループを回してexecuteQueryを実行するだけです。
select * from xxx ( on (select 1)
 query ('select ''drop table '' || a.schemaname || b.tablename from nc_system.nc_all_schemas a inner join nc_system.nc_all_tables b on a.schemaid = b.schemaid')
)

2018-07-02

Learning Coursera Deep Learning

Courseraでdeeplearning.aiのNeural Networkのコースを受講し始めました。ちょうど同僚がやっていたこともあり、分からないところが出てきた時に聞けるのがだいぶ助かっています。Neural Networks and Deep Learningは終わり、今はImproving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimizationを受講しています。
同僚も同じ現象に遭遇していましたが、Jupyter NotebookでKernelがエラーになり、保存も出来なくなった時は、固まった画面はそのままの状態で、 Courseraの画面を別タブで開き、Open Notebookを押して2つ開いた状態にすると、エラーになっていたNotebookが復活すると思います。



週末に「天空の矢はどこへ?」を読みました。Wシリーズは10月に発売予定の「人間のように泣いたのか?」が最終巻なのですね。待ち遠しいなぁと書こうとしましたが、最終巻が待ち遠しいというのは早く終わって欲しいというようにもとらえることができます。SFが得意なNetflixあたりでアニメかドラマ化してくれると嬉しいのですが、可能性は低いだろうなぁ...。