ping とは、ICMPプロトコルを使用したネットワークの診断プログラム
gmetad/gmond
- gmetad gmondのデータを集約するデーモン
- gmond 各ノードにいて各サーバーの情報を集めるデーモン
YARNとかDataNodeとかNameNodeとか
クラスタリソース管理フレームワーク。次世代MapReduceとかいう雑なイメージは捨てろ。
YARN構成
- Resource Manager クラスター全体のリソース管理をするマネージャー。Application Masterからの要請を受けてNode Managerにコンテナーのリソースを付与する(常時起動)
- Application Master Resource ManagerとNode Managerを仲介する(都度起動)
- Node Manager 実際にアプリケーションを実行するワーカー(常時起動)
DataNodeとかNameNodeとか
- DataNode データを保存するノード
- NameNode メタデータを管理するノード
homebrew v1.1.12
xcode 8.3対応がメインだと思う
scala v2.11.9
release noteが見当たらない。
Digdag EMR
emr>: Amazon Elastic Map Reduce — Digdag 0.9.5 documentation
typeのところから一部抜粋。spark/hive/script/commandが使えると思う
- type: hive script: queries/hive-query.q vars: INPUT: s3://my-bucket/data/ OUTPUT: s3://my-bucket/output/ hiveconf: hive.support.sql11.reserved.keywords: false - type: spark application: spark/pi.scala - type: spark application: s3://my-bucket/spark/hello.py args: [foo, bar] - type: spark application: spark/hello.jar class: com.example.Hello jars: - libhello.jar - s3://td-spark/td-spark-assembly-0.1.jar conf: spark.locality.wait: 5s spark.memory.fraction: 0.5 args: [foo, bar] - type: spark-sql query: spark/query.sql result: s3://my-bucket/results/${session_uuid}/ - type: script script: s3://my-bucket/scripts/hello.sh args: [hello, world] - type: script script: scripts/hello.sh args: [world] - type: command command: echo args: [hello, world]
Hadoop タスクスケジューラー リンク
FIFOスケジューラーとか、フェアスケジューラーとか、ある。
今日からプータローのあなたがこれからサバイブするための備忘録
こんばんは。昨日まで大学生だったけど、就職先が決まらないまま卒業してしまって無職となってしまったあなた。7年前の自分がそうでした。今日は備忘録として、大卒のプータローが定職に就くまでの軌跡と心構えを記そうと思います。
なお、学生の就職活動は非常にナマモノであり世代が違えば状況も対策も大きく変わるため自分がうまくいったことがそのまま他の人に適用できるかどうかはわかりません。フィーリングで内容を咀嚼していただければと思います。
過去の自分と、現在の自分について
今は渋谷のとあるIT企業でエンジニアをやっています。インフラ Hadoop Java Python Scalaなど、いろいろやっています。たぶんいま4社目です。名だたるWebエンジニアに比べれば遥かにヘボいですが、それでもいちおうがんばっています。先月は社内のMVPも取りました。
大学の専攻は国際関係学で、大学を卒業するまでは、Javaの授業を1コマ受けただけでプログラミングには全く関わっていません。そのJavaの授業は、今まで受けた授業のなかでも最上級につまらなかったので、プログラミングなんて二度とすまいと思ったものです。
インターンやサークル活動などもやっていなかったので、世間一般でみても「文系のノースキル」と評される人材であったと思います。
無職への道
そもそも自分は大学院への進学を1年の頃から志望していたのですが、当時は高学歴ワーキングプアというものが流行っており、院に進学してもまともに就職できるのか怪しい状況でした。ましてや文系です。大学の教授すら「院への進学は不幸を生むだけだけだからやめろ」と口を酸っぱくして宣いました。しょうがないので大学4年になる直前で院への進学は諦め、就職することにしました。
ところが学生の就職活動とは恐ろしいもので、うまく行く人は本当にすんなりと就職先が決まるのですが、僕のような要領の悪い人間は全くうまくいきません。自分の頭でいろいろ考えてみたのですが、周りに相談しないまま自分の頭だけでいろいろ考えるものだから思考回路があさっての方向にトチ狂ってしまい、今では考えられないような就職先に内定が決まってしまいます。正直いま考えても、なぜそういう考えに至ったのか理解に苦しみます。どんな企業かは伏せますが、家族に猛反対されました。家族はなんとか説得したものの、卒業寸前にになってひどくやる気がなくなってしまい、結局内定は辞退という形になります。ここで誤算だったのは、単位を全部取得してしまったので卒業してしまったことです。こうして大学を卒業して無職となりました。
なお、当時は知らなかったのですが、就職して本格的にFacebookを始めて大学の同期のプロフィールを見ると、一流企業や官庁へ就職している人が多くてびっくりしました。
友人のすすめ
大学を卒業して晴れて無職となり途方に暮れていた自分に、懇意にしていた大学の同期の友人がプログラミングをやるように勧めてきました。大学の同期なので友人もプログラマーではありません。将来が白紙になった自分を見かねて勧めてきたのだと思います。友人の幼馴染がプログラマーであったというのもあるでしょう。幼馴染のプログラマーからはRubyをやるように勧めてきました。今から考えるとなぜRubyなのかは今ではよくわかりません。大学のJavaの授業は全く面白くなかったのにプログラミングをやろうと思ったのかも不思議です。それでも今の自分にはこれしかないと思っていました。たぶんここで頑張らないと一生まともな生活が出来ないだろうと直感で感じていました。
それで一念発起して本と安いパソコン(AcerのAspire One)を買って勉強を始めました。当時でもプログラミングするには考えられないようなスペックで、しかもWindowsをそのまま使っていたのですが。
ニートのようなヒモ
大学卒業と同時に実家に帰ったのですが、生活費は稼がないといけません。某居酒屋でバイトをしながらプログラミングの勉強をすることにしました。ところがこのバイトが非常に面倒でした。面接して即採用が決まったのですが、いつからバイトが始まるのか一向に連絡が来ません。業を煮やしてこちらから連絡すると、ゴールデンウィークに来るように言われました。最初に面接をしたのが4月です。正直わけがわかりませんでした。ゴールデンウィークに居酒屋に言ってみると、ろくに研修も指導もないまま皿洗いにつっこまれ、わけもわからないまま料理をさせられ、怒鳴られながらバイトをこなす。
ところがシフトを全然入れてもらえないのでこのままいくとこのバイトだけでは月2、3万程度しか稼げません。店長にもっとシフトを入れてくださいとお願いすると、ものすごく嫌そうな顔をして実績を出さないと無理だと言われました。
バイトの人とも話をするのですが、生来の性格もありイマイチ話が噛み合いません。プログラミングの勉強をしている旨をバイトの子(プログラミングはやっていない)に伝えたところ「資格持ってないときついよ」と言われましたが、どうでもいいアドバイスなので無視しました。
怒鳴られるだけの仕事に嫌気がさして、夏の終わりにバイトをやめました。その後も塾講師のバイトをやりましたが、シフトの都合上月の稼ぎは数万で、いちおう稼ぎはあるから厳密にはニートじゃないのですが、まともに収入を稼げてもいないので、もはやヒモでした。
不安が高まっているのか、不安を高めているのか
口を糊することすら出来ないほど雀の涙な収入で実家ぐらしをしながらプログラミングの勉強をしていたわけですが、家にいてもいまいち集中できません。昔からそうなのですが、家にいたら集中できないのです。そこで近所の図書館や公民館へ足を運び勉強をしつづけました。当時もTwitterはありましたが、誰かに教えを請うという発想が全く無かったので、やったことはひたすら読書と本に書いてあるコードの写経です。バイトのない日は朝から晩までひたすら本を読みコードを写経する生活。公共の施設なので、老若男女いろいろな人が往来する中で勉強をすると、ものすごく将来が不安になります。このままここで勉強し続けて将来があるのか激しく不安になるのです。この頃の自分の原動力は焦燥感でした。自分が不安にかられる環境に敢えて身を置くことで、勉強のモチベーションを維持していたのかもしれません。
友人の誘いでベンチャーへ
そういう生活を1年くらいしていたある日、件のプログラミングを勧めてきた友人が自分の会社に就職するよう勧めてきます。彼は大学卒業してすぐ後に仲間を集めて起業していたのです。オンライン英会話サービスをやっている会社なのですが、人手が足りないので僕を誘ってきました。僕自身はゲームプログラマーになりたかったのですが、プログラマーとして定職に就けるならなんでもよかったですし、背に腹は変えられないので、二つ返事で了承しました。重ねて言いますが、当時の僕は収入はあるとはいえほぼ無職です。定職も社会的地位もない人間が、選り好みできる立場にはないのです。ここで失敗したら無職とフリーターをうろうろするだけの暗い人生が待っていることだけは間違いなかったのです。
就職する前にCTOの人と面談をしましたが、その覚悟を伝えました。
必要なことはすべてやること
いちおうプログラマーとして雇われたわけですが、仕事はプログラミングだけではありませんでした。オンライン英会話サービスなので、カスタマーサポートや講師の採用、ビラ配りなどをやりました。就職してから1年間カスタマーサポートはほぼ自分が担当していました。これをやりながら、プログラミングの業務をやっていました。昼はカスタマーサポートの対応をしつつ、プログラミングを朝までやる。たぶん激務だったと思いますが、そんなに苦ではありませんでした。職場が家からものすごく近かったこと。小さい会社だったので飲み会のセッティングをやらなくてもよかったことなどはあると思います。会社以外の知り合いも何人かいましたので、精神的にもそんなに苦ではなかったと思います。
1年間プログラミングを勉強していたとはいえ、実務の開発に必要なノウハウはほとんど勉強していません。具体的にはサーバーインフラまわりや監視、Gitなどです。これらのノウハウの基礎は、手持ちのマシンからWindowsを消し去りUbuntuを入れるOJTで会得しました。社内でちょっとした勉強会はちょこちょこありましたし、勉強会にも足を運びましたが、仕事をしながら、仕事の合間に、必要な知識は独学で勉強しつづけました。ここでダメだったら一生ダメになるであろうと思ったので、背水の陣で臨んでいたと思います。
言われたことはヘボくてもいいから遵守すること
社会人としてもプログラマーとしてもたいへん未熟であったので、上司や先輩からはいろいろなことを言われましたが、CTOには「毎日ブログを書け」と言われました。アウトプットしてフィードバックが得ることと、言語化することで理解度を深めるのが目的です。もちろん最初は続きませんでしたが、最終的には今日までかれこれ6年はブログを毎日続けています。ブログを毎日続けているからかどうかわかりませんが、とりあえず今もプログラマーとして定職に就いています。
ブログを書く人はいっぱいいるでしょうが、それを毎日何年も続けている人間は本当にひとにぎりです。別にPVは求めていません。あればいいかな程度のものです。ブログは自分への備忘録として役になっています。
それは破滅ではないこと
こうして7年を振り返ってみると、自分の半生の半分以上は運とコネに助けられてきたといえるでしょう。友人がプログラミングを勧めてきたこと。友人が起業していたこと。自分を養ってくれる実家があったこと。これらすべてを自分が持っていたことは偶然の産物といえます。しかし運を上げるための行動は運ではありません。最終的な生存や成功は運やコネによるものが大きいのかもしれませんが、生存確率を上げる努力とチャンスをつかむ勇気は必要なのだと思います。何年も同じことを継続してできることは、たぶん自分の武器の一つです。それは他の人には持っていないものだと思っています。
大学を卒業して意図せず無職になってしまうことは破滅ではありません。まだ諦めるには早いです。頼れるものは頼るべきですし、チャンスと思ったら迷わずジャンプするべきです。 あと、ダメだと思ったら無理せず速攻で逃げるべきでもあります。
関係者の皆様へ。僕はまだこうしてプログラマーとして生きております。皆々様ありがとうございました。引き続きどうぞよろしくお願いします。
airflow example
サンプルコード。digdagに比べるとあんまり品揃えはよくない印象。
airflow tutorial memo
なんとなく参考。
なお、from airflow.operators import BashOperator
って書き方は非推奨でairflow2.0から書けなくなるから
from airflow.operators.bash_operator import BashOperator
こっち推奨で。