いつもよくわからん仕事をしている人

自分は技術者派遣として働いています。

何度か常駐先は変わりましたが、たまたま大手IT企業の案件に当たり

たまたまそこの案件に長くいることがありました。

やっぱり大手企業なので、派遣で来てる人が多くいろんな会社から来ているところでした。

そこでこれもたまたまなのですが、何度か会話をすることがあり親しくなった人がいました。

とりあえずその人を小平(仮名)さんと呼びます。

 

けっこう博識な小平さん

年齢は40代後半くらいか?と思われますが、年齢不詳です。

会話をしていると中学生のお子さんがいるとは聞いてたので

おそらく40代くらいではないか?と推測しています。

男性のかたです。

 

私はIT業界で働いているので、Facebookgoogleが○○○なプロダクトを出してて・・・

といった業界の最先端の話がとても好きでした。

 

小平さんと会話していると、よく小平さんの方から

そう言う先端の話をしてくれるので、とても話が面白いなと思っていました。

やっぱり経験が長いせいか、「あの○○○が出る前の状況はxxxでねえ」とか

裏側や由来を話してくれるので、とても勉強になるので

へーと尊敬の思いがありました。

 

自分はプログラミング関係を最初にやってたので

当時サーバー関係のことはあまりわかっていませんでした。

 

小平さんは自分の席の近くにいたので

ちょことちょこと質問することがありました。

 

インスタンスってなんなんですかねー」

インスタンスってのは、まあいわゆる実体って意味なんだよ。動いている実体で・・・」

 

・・・ん?、よくわからん。

まあ、自分の知識がなさすぎて理解できないんだろうと思っていました。

 

その時はほんと自分の知識が無いからだと思ってましたが

細かい部分を聞いてみるとモヤっとした回答が多いなあ

と言うことがよくあるなあと感じてました。

 

何やってるか良くわからない小平さん。。。

小平さんはとにかく何やってるのかよくわからない人でした。(汗)

  

小平さんの席の近くを通ってみると、

なんだかいつも技術系のブログやツイッターを見ていました。

 

「ほんと何やってんだろうーな?」と私はいつも思っていました。

 

 

自分のチームではないのですが、自分の会社の別のチームが

パートナーとして使っていました。

そのチームで働いてる同僚に聞いてみると

とにかくドキュメントを出さない人だったのです。。。

 

なんでもサーバー管理の運用を任されたチームで

引き継ぎ前のチームがとても小さく、さらに資料を管理してなかった。

いわゆる属人化してたチームでした。

 

ま そこは良くないとはいえ、運用を任された以上

手探りでも仕様を理解していくべきかと思います。

 

自分だったら、ここまで調べたけどそれ以上はわかんねーよ

かんべんしてね、てへ!とかやっちゃうけど

なんとかかんとかわかる部分までは仕様を調べて

ドキュメント化するべきなんじゃないでしょうか。

 

 

仕様がわからないところから始めるのはしょうがないと思います。

でも自分が調べたものがどんなものかを報告、説明するのに

ドキュメント化は必要でしょう。

 

・・・・でも小平さんは出さなかった。

 

なんだかんだ小平さんは

「いやー元々のサーバーの中身も何もわかんないからねー」

「どう対処すればいいかわからないから、書きようがないよ!」

とか、もっともらしいことを言います。

っと言うかごねます。

 

なのでそのチームのリーダーはしびれを切らしその人を切りました。

と言うかそう言う噂を聞いて、

いつのまにかチームミーティングにいなくなってたので

切ったらしいということがわかりました。

 

 その後の小平さん

 

でフロアを歩いていると驚いてしまったのですが、

またいつのまにか小平さんが別チームで働いていましたwww

 

でやっぱり席の近くを通ってみてみるとhatenaブックマークだか

2chまとめだかの関係のないサイトを見ています。。。

ちょっとならいいんだけど後ろをみるといつも見ています。

 

あんまり参考にならない教訓

 

その人にいろいろ質問をして見たんだけど

技術知識はほんとよく知っているのだ。

だけど回答は的を射ていない。

そう言う人って説明もあいまいで、いわゆる使えない人なんだな。

と思いました。

そう言う予感ってどこかしら的中するものだなとよくわかりました。

 

 

またなんでこんな人がずーっといれるのか不思議でしたが

上述のサーバー管理と言うものが、まだ別の根幹となる部署がまだ使ってるもので

廃棄したいけど廃棄できないもので、持て余してたものでした。

なので仕事としては存在する、だからまあ業務歴が長いし

小平さんにやってもらおうか、みたいなことを上は考えてたようで

小平さんの存在理由がありました。

 

属人化する仕事はよくないのだけれども

その時は、そういう生存戦略もあるのだなと思い

なりたくは無いけどしたたかな生き方も必要なんだと感じました。

 

 

また ドキュメントが全てでは無いですが

自分のやった仕事をドキュメント化するというのは

証拠としても、説明としてもとても大事なことなんだなと

よく理解できた経験でした。

 

 

小平さんは今どうしてるか全くわかりませんが

ふと思い出してしまいます。

 

 

文字列数字をint型数値リストに変換

config に数値を書いておいて、その数値リストを使いたい場合があります。

そこで取得した文字列数字をsplitで分割しても、単なる「string」の数字のリストになってしまうんですよね。

 

でどうしよっかなと、俺の性能が良くない頭で考えてしまうと

それぞれの値についてtype変換すればいいじゃん!と考えてしまいます。

(こんな感じ、int("3")とか)

 

これは結構スマートではありません。

 

こう言う時には map を使います。

 

こんな感じです。

 

文字列数字をint型リストにする

 

うまく行きましたね。

 

あ 良く探したらこのgitにも書いてありましたね。

 

github.com

 

↑このページの最後のコードでわざわざlistを使ってるのはなんでだろうな

mapの返却値はlistだしなあ。

 

わからーん!

「Learning YARN」を読んでみた

 

Learning Yarn

Learning Yarn

 

 

今回はYARN関連の本を読んでみました。

Hadoopとは直接関係ないんだけど、業務でちょこちょこYARNを使ってるので
上長にお願いし、購入してもらいました。(6000円もするのに)ありがとうございますー


で、これなんですが、やっとこさとこ読んでみて
けっこう内容がいい!というものにやっと巡り合いました。


いかんせん自分はYARNの開発とかプラグインをいじることはしてないので
これは使える!とかは無かったのですが、中盤のチャプターで
状態遷移の解説が詳しく書いてあり、ここはかなり使える内容なんじゃないのかと思いました。

オープンソースを使ってると、プログラムの裏側はどういう思想で動いてるんだよー
っとアーキテクチャーを理解したい場面がこれまで何度かあったので
裏側の理解にはかなり役に立ちます。


内容としては

  • MapReduce ver.1 と ver.2 の違い
  • Hadoop-YARNクラスターの構築
  • YARNのライフサイクル管理 (状態遷移はここのチャプター)
  • YARNアプリケーションの書き方
  • コンポーネント紹介
  • RESTサービス
  • YARNのスケジューリング方法
  • YARNのセキュリティ
  • YARNでリアルタイム処理(Spark, Storm,などを使う)

こんな感じの内容でした。


最近Hadoopクラスターでアプリケーションを実行するのに
Dockerが使われるようです。そのDockerを制御するのがYARNでやれる(?)
そうです。(まちがってたらごめんなさい)
たしかYARNと似たプロダクトMesosがそんな感じだった気がする。

今後HadoopクラスターでSpark使う時にこの本は役立つかもなあ。


感想として、うーんやっぱりPACKTの本は当たりだった。

(後述)
あれ、ちょっと調べてみるとスケジュールツールには
kubernetesかMesosがよく使われてるみたいなんだな。
YARNはあまりつかわないのかな。
要調査だな。いつかね、いつか。。。。

logging formatで定義に無いものを書く方法

以前のブログでlogging.propertyの書き方を書いていました。

 

suganoo.hatenablog.com

 

※logging.propertyだかlogging.confだか、どっちが適切な表現なのかはここでは置いておく。

 

logging.confを書いている時に、あれこんなことできないかなと悩みました。

  • ログにホスト名、ユーザー名入れられないかな?
  • ログの区切りはスペースじゃなくてタブで区切りたいな。

で、loggingのドキュメントを読んでも、あれ?ホスト名とかユーザー名って無いんですよね。

タブの区切り方も書いてない。(ように見える)
へーへー

https://docs.python.jp/3/library/logging.html#logrecord-attributes

 


んーっとどうしたものか、隠しコマンド的なものもないのかなと苦慮した挙句
一つの解決策を得た。


なんとLogRecord属性って自分でも定義できるんですね!!

 

logging.infoのパラメータにextraというパラメータがあって、
そこに独自定義したdictionary を渡してやると、

なんとそのままformatに定義した変数が入れ替わる!

 

タブも同じように渡してやって、区切りをタブにすることができました。


やったー すごいすっきりした。

 

ユーザー定義のLogRecord属性

【globals()の使い方】文字列のクラス名からインスタンス生成する

こんな処理をするスクリプトを作っていました。

  • ログをダウンロードして
  • ログパースして
  • webサーバーにアップロード

このログをパースする処理なんだけど、ダウンロード/アップロードは変わらない。

ログの種類がある程度決まってるから、実行する時にログパースするクラスだけを変えて

パース処理できないかなーと考えてました。

 

つまり実行時に指定する文字列クラス名からインスタンス生成できないかなーと考えてました。

したら、ありました。 globals() を使うそうです。

 

【globals()】文字列からクラス生成する

 

globals() でimportしたクラスを全部把握してるんですね。

そこからクラス名を取得してインスタンス生成すると。

んーうまくいきそうだ。

「Hadoop Security」を読んで見た

 

Hadoop Security

Hadoop Security

 

もう一冊Hadoop関連の本を読んでみました。

Hadoopを運用した場合、たいていの場合はいろんな部署からアクセスが来ると思います。

そういう場合にアクセス制限が必要だなーと思ってたのでセキュリティーの本を読みました。

 

ですが、、、

この本もまた、それほど面白くなかった。。。

自分の実力が足りてなかったんでしょう。

 

内容として、うろ覚えなんですが

  • kerberos認証使える
  • keberosで、データ単位、ジョブ単位、でアクセス制限できる。
  • keberosでアプリケーション単位でも制限できる
  • あとは、アプリケーションごとの説明(だったと思う)

感想として、kerberosがけっこう使えそう、で細かい単位で

制限かけられそうなんだなーってことがわかった。

 

でもこれもあんまり面白くなかったのでザザーっと読み飛ばしてしまいました。

 

面白くなかった理由としては

Pigとかなんやらのアプリってほんとに業務で使ってる人いるの?

っていうアプリの説明がちょこちょこと出て来てしまったので、興味を失ってしまいました。 

 

 

kerberos認証の書籍ってあんまりなかったので

概要をわかるためにはよかったかな。

 

 うーんまた、面白くなかった系の感想になってしまった。。。

これもまた日本円にすると6000円近くしたんだがなあ(会社購入だけど)

やばい!PACKTで$10セールやってるぞ!英語できなくても買ってみろ!

www.packtpub.com

たまたま PACKTのサイト見てたら、なんか$10セールをやってる。

こここ、これは!と思って、いくつかポチってしまいました。

 

f:id:suganoo:20170918231233p:plain

まあ、あと数時間で終わってしまうようですけどね....。(2017/09/18 23:00現在)

 

自分はどちらかというと、PACKTの本が好きです。

調べたことないんですが、たまたまなのか、O'ReillyよりPACKTの本の方が

いい本出してるなと感じることがあります。

 

買った本はこれ

www.packtpub.com

これはもともとインプレス社から出てる「Python機械学習プログラミング....」の翻訳元の本。 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 これは本当に読みたいなと思ってたんだけど、4000円は高いなと思って躊躇してました。

 

 2つ目はこれ

www.packtpub.com

これもこの翻訳元の本、これも4000円近くして買いあぐねてました。

Deep Learning Javaプログラミング 深層学習の理論と実装 (impress top gear)

Deep Learning Javaプログラミング 深層学習の理論と実装 (impress top gear)

 

 

 

3つ目はこれ TensorFlow関係の本

www.packtpub.com

これも翻訳元がこの本 

TensorFlow機械学習クックブック Pythonベースの活用レシピ60+ (impress top gear)

TensorFlow機械学習クックブック Pythonベースの活用レシピ60+ (impress top gear)

 

 

4つ目はこれ kerasの本

www.packtpub.com

 

今回は機械学習Deep Learningに興味があったので、それ関係を買ってみました。

4つ合わせても4400円くらいでした。

うーん安い、自分の嫌いな電子書籍版といえど、これは安くてお買い得でした。

 

これから読むのが大変ですけどね、まあ、読むかどうかわからないけど

買うことが大事なんですよ!(汗)あはは

 

 

これに限らないことなんですが、技術書は高いなーと思った時に

洋書版を探してみると、かなりお買い得に買えることがありますよー