steelwool_oxide

slog

2013年11月

30 11月

Hadoop オペレーションを買ってみました



スチールです。11/27に待望のHadoop オペレーションが発売されたのでさっそくぱらぱらと読んでみました。
オライリーの紹介文に

本書はHadoopの管理と運用に焦点を当てた本です。Hadoopのクラスタ計画から、認証、リソース管理、またクラスタのメンテナンス、モニタリング、バックアップとリカバリなど、Hadoopを使う際に必要なトピックについて網羅しています。

とあるように、 管理と運用に焦点があたっておりますが、1~5章は実際に構築、運用する前に読んでおきたい内容がたっぷり書いてあります。本書が出る前だとインストールなんかは、Hadoop徹底入門が鉄板かなーという感じでしたが、これから構築したりなんて方はHadoop オペレーション(特に4章 Hadoopクラスタの計画)も読んでおきたい感じです。

個人的には現状絶賛運用中なので10章のモニタリングとか読んでおきたい感じで、余裕のあるときに9章のトラブルシューティングとか目を通していざというときに備えておきたいと思います。

付録Aのプロパティ一覧は、あれこれ調べてる時なんかに、非推奨前のプロパティ名行き当たって、さて現環境だとどうなんだという際にうれしいですね。(Hadoop公式にもあるけど)

付録B、C、Dは日本語版に新たに追加された項目で、Cloudera Managerの紹介と、Hueの紹介、そしてNameNode HAのアーキテクチャと動作の詳細です。特に付録Dは勉強になりました。付録B読むとCloudera Manager欲しくなります、はい。
付録CのHueはすでに導入しておりますが、大変便利に使っております。まだフルに使いこなせてない感じですが。

そんなわけで、後半6章以降は辞書的に使っていきたいので、象本とかより分厚くはないですがカジュアルに持ち運ぶには重たいのでPDF版の登場が待たれます。
(象本第三版はちょっと前にPDF版出ましたね!)

象本、徹底入門に続いて、Hadoopを運用する人はぜひ職場やおうちに揃えておきたい一冊です。

24 11月

radikoを録音したmp3にid3タグ埋め込んでGoogle Play Musicへアップロードする



スチールです。
ちょっと前(3ヶ月くらい?)にRaspberry Piを購入して、radikoをせっせと録音しております。
録音したファイルの取り扱いをどうしようかなぁと考えていたんですが、個人的に一番しっくりきた方法をご紹介。
(いままで毎回scpで手元に持ってきてて、面倒だったので)

普段からGoogle Play Music使っていて、そこに自動でアップロードできたらよいなぁなんて思っていたのですが、アップロードするMusic ManagerはWindowsかMacか一部のLinuxのみ対応みたいで、Raspbianでは無理そうでした。
最近たまたま検索していたら、どうやら非公式ではありますがPythonからアップロードできるgmusicapiというライブラリがあったので使ってみたらサクッといけたのです。

そういえばまだ米国のみらしいですが、Google Play MusicのiOS版もやっと登場したらしいですね。
登録とかもろもろは「Google Play Music 日本 登録」とかでググってもらえるといいのではと思います。

さて、gmusicapiの簡単な使い方は以下です。
 

簡単ですね。
Raspberry Piだとメモリがきついのか、MemoryErrorが出るときがありますが一応ちゃんとファイルはアップロードされているようです。

ちなみに
mm.perform_oauth()
の部分は、一度認証してしまえばOKです。$HOME/.config/gmusicapi/oauth.cred に認証情報のファイルができているはずです。

これでOKっちゃOKなんですが、せっかくなので、ラジオ名やアートワークを設定したくなってきますよね?
こちらもPythonでeyeD3というID3を編集する便利ライブラリがあったので使ってみました。



こちらも簡単ですね。アルバムアートがpngとかなら、audio_file.tag.images.set()の第3引数のmimeを適当に変えてあげるといいかと思います。 

ちなみに、gmusicapiとeyeD3はpipなりeasy_installなりでインストールできます。

Raspberry Piなんかでradikoを録音する場合、cronにスクリプトを登録するんじゃないかと思いますが、その最後に上記2つを組み合わせてあげれば録りおわった後勝手に登録されて、素敵なradiko視聴ライフを送れますね!

肝心の録音部分を忘れておりましたが、radiko自体の録音はこちらの記事を参考にしました。

23 11月

「秋のエンジニアぶつかり稽古 2013」に行ってきました



今日は「秋のエンジニアぶつかり稽古 2013」に行ってきました。
ざっくりとどんな内容だったかといいますと、「好意ゆえの怒りで吉高由里子がカン拡張されて子供が5人できてめでたい」中、ぶつかり稽古が始まった、という感じです。何を言ってるのかわかりませんが僕もわかりません。

開催中の異空間な感じはtwitterの#ぶつかり稽古を見るとよく分かるんじゃないかと思います。 

で、内容ですが、まずはじめに、「俺の本気を見せるプレゼンタイム」ということで、4名の方が各々の本気を見せるという内容です。


・吉高由里子と僕 by @hisaichi5518

吉高由里子が好きすぎてふさわしい男(バンドマン=クリエイター=Webクリエイター)になるために色々作ったという話。
好きすぎて吉高由里子ドメインまでとってしまったようで、そちらに作品が紹介されています。
動機と内容はともかく、「クリエイターになるって言っても作りたいものないし」→「まず自分のほしいものから作り始める」→「誰かが反応してくれる」、という流れはとてもいいなと思いました。


勤労と感謝とプログラム by @r7kamura

好意ゆえの怒りで、好きだけど、イケてないなーと思うものをカッとなって一日で作り変えて行った話。
「エンジニアは界隈にはもっとモチベーションが必要で、モチベーションがあればなんでも作れる」、「みんな本気出そう、本気出すとフロー状態になって覚えてないことも多いしいいじゃないか」という感じでしょうか。スライドで紹介されていた、家の設計を共有して3dプリンタで家作れんじゃね、というwikihouseがモチベーションの境地な感じ。

あとr7kamuraさんイケメンですね。

先の吉高由里子さんの件とモチベーション大事、というところでつながりそうな感じですが、そうなると新しい吉高由里子さんが生み出される可能性があるのでこれ以上考えるのはやめておこうと思います。


すべてが@__kanになる by @hiratara

同僚である@__kanさんが好きすぎてうっかり拡張してしまった、という話ではなく、最近流行りのカン拡張のお話。みなさん圏論をご存知という前提で大変本気な発表でした(よくわかっていない)。
スライドにある圏論の基礎という本読んだらわかるのでしょうか(不安)。



・文系学部卒アラフォーエンジニアが本気で理系大学生やってる話 by @gosukenator

ペパボでテクニカルマネージャーをやりつつ、お子さん5人を育て、大学にも通ってるぜというパワフルなお話。

話を聞いていてちょっと大学の授業を復習しに行ってみたいなという気持ちにはなりましたが、多分本気で通わないとこういうの続きませんよねぇ、とか思ったり。

学生になると学割が聞いて、Amazon StudentとかGithubとかお得なこともあるみたいですね。


・中入り(休憩)

2連続でこの動画が流れて狂気に包まれました



・魂のぶつかり稽古 by @kentaro , @__kan

本日の発端でもありメインイベントでもある、魂のぶつかり稽古。
内容は、本気でぶつかるとケガをするので、あんちぽさんがテストを書いて、それを満たすコードをkanさんが書くというかわいがり仕様ペアプロ稽古です。 ライブでコード書くの緊張しそうだなぁ(実際にkanさんも言ってた)

ペアプロの様子はこんなかんじで、机の周りがちょっぴり土俵ライクです。



ペアプロはwemuxという、複数人で端末を共有できるtmuxのラッパーをpair modeで使用してました。wemux知らなかったので、あとで見てみようと思います。

コードはperlで、力士インスタンスを作って、勝ち星管理と、取組表を表示するような内容でした。変数が$self, $aiteっていうのすごく新感覚でしたね。
(途中、$kachiboshi, $makeboshiという変数に対して「$shiroboshi, $kuroboshiがいいんじゃないか」というツッコミを入れて、どっちが勝だっけ?という混乱を招いてしまい申し訳なく思います。ちなみにツッコんでおいて、ぼくも白と黒、どっちが勝ちかわかっていませんでした。重ねてお詫びします。)

時間切れ間際、焦って変数名が$foo, $barになったのも、あー、あるあるな感じで見ててすごく楽しかったです。
30分って短すぎじゃ?と思いまして、実際短かったですが、逆に緊張感があって、ちょうどいいのかもしれないですね。1時間だと見てるだけじゃちょっと長いかもしれないですし。


とまぁ、そんなわけで、一体どんなイベントになるんだろうと思っていましたが、ぶつかり稽古面白かったので、2014年春場所あたりを期待したいと思います。企画してくださった、ペパボさんありがとうございました!
(そんなペパボさんが「ペパボの教科書」という本を出すそうですよ!)

ではでは。
16 11月

「GitHub トレーニングチームから学ぶ Git の内部構造」&「GitHub DrinkUp」に行ってきました



スチールです。

11/15の「GitHub トレーニングチームから学ぶ Git の内部構造」とその後のGitHub DrinkUpに行ってきました。場所はYahoo!Japanさんで、ミッドタウンがクリスマス全開で辛い感じでした。

スピーカーはGitHubのMatthew McCullough(@matthewmccul)さんで、今回はGitHub、というよりはGitって実際コマンド打った時何が起こっているのかという内部構造を解説するような感じです。

時間は17:30スタートで大体20:00くらいまでお話して、最後に大質問会という感じ(途中にもちょいちょい 質問タイムがありました)。ちなみに質問するとOctocatシールもらえた感じです。質問はMatthewさんと、同じくGitHubのJohn Britton(@johndbritton)さんもこたえてくれました。

で、肝心の内容なんですが、勉強会中にOrgaChemさんがものすごいスピードでまとめられていて、しかもほぼ網羅している感じです。

内容は先ほどのgistに任せつつ、個人的な感想ですが、今まで仕事、プライベートでgit使っている中、割とチケット単位や実装単位でまとまるまでコミットしないことが多かったんですが、
git reset --hard origin/master
と実行しても
git reflog
には履歴が残っていて、コミットのハッシュから、
git reset HASH
なりしてあげればそこまで戻れるという。 
なので一旦試しに改変してみて納得できなければresetでなかったことにしてもいいし、やっぱり戻ることもできるので、細かくコミットしてあげるのが大事なのかなと思いました(冒頭でMatthewさんも、コミットしまくれ、ブランチ作りまくれって言ってた気がする)。これでまた1つgitが怖くない感じになりました。やったね!
(とはいえ仕事とかだともうちょいコミットログきれいにしたいとかあると思うので、それはある程度の粒度でrebaseするなりしてあげればいいんじゃないかなと。)
あとgit showってあんまり使ってなかったんですが大変便利だとわかったので、忘れないうちに積極的に使っていきたい感じでした。

DrinkUpですが、GitHubのお二方はずっと囲まれていてDrinkどころじゃない感じだったんですが、僕はというとYahooな方とか、近くの席の方とあれこれお話していました。仕事で使っているツールの話(GitHub含め)とか。

今回のGitHubのイベントは、本日の東京の会を皮切りに、大阪や名古屋でも開催されるそうです。
Connpassとかで検索してみると良いのかな?)
スライドを交えて聞くとよりわかりやすいですし、英語も聞き取りやすかったです。gitだけでなく、githubのことも質問できるので、近くで開催される方は是非参加されてみては。
(プレゼンはシェルでの操作を録画したものを使っていたので説明もスムーズで、Air Sketchというアプリで図解してみたりと、本当にわかりやすかったです)

あ、あと会場で配ってたgitチートシートもらいました。どこかに貼っておこうかな。

98ad4922.g
 
13 11月

Cloudera World Tokyo 2013にいってきました

0dc2fae4.g

だいぶ日がたってしまったのですが、先週木曜の11月7日、Cloudera World Tokyo 2013に行ってきました。
写真はお土産のClouderaカステラ。

僕が聞いてきたセッションは以下です。(全セッションはこちら。講演資料も一部リンクあるようです)
  • CDH最新情報
  • Hadoopデータプラットフォーム
  • SQLで実現するバッチ処理とストリーム処理
  • Hadoopの運用
  • Hadoop コミュニティと YARN の現状
とまぁ、Clouderaの中の人のセッションを半分以上選びました。
というのもCDH5がどうなるのかなぁというのがすごく気になっていたので。

一つ一つのセッション書くのはつらいのでざっくりと。

CDH 5はHadoop 2.2も出たということで、やっとYARNが「製品レベル」 になりました。
(製品レベルになる前になんでCDH 4に入っていたんだろうって感じではあるんですが)
Resouce ManagerのHAはもちろん大注目なんですが、ImpalaもResouce Manager上で管理できるようになったりと、Cloudera自体もかなりYARNに本腰入れてきた感じがします。

一応職場の環境でもImpalaは利用しているんですが、ちょっとはしゃいだ感じのクエリを投げるとMapReduceなタスクとリソース食い合って、監視しているGangliaが真っ赤に染まってこっちの顔は真っ青になるなんてことがあったんですが、これが解消されるだろうというのはとても大きいです。

今のところCDH 5はβ1ということなんですが、早めに開発環境の方でアップデートの手順を整えてもいいかななんてチームでは話しておりまして、採用する気満々な感じです。

また、Clouderaさん一推しのCloudera Managerなんですが、これは話を聞けば聞くほど使ってみたい感じがしますね。ちなみに無料版のStandardがあるので、試しに開発環境で使ってみたことあるんですが、確かに構築がめちゃくちゃ簡単です。
Cloudera Managerを使うと基本的にすべての運用がManager経由になって、設定ファイルの場所が通常と違うパスに置かれて管理されるみたいでManager外から他のツールを組み合わせて運用しようとするとちょっとつらくなるかなという感想です。もともと日頃の運用はpuppetやcapistranoなんかで構築済みだったため、Standardであれば、今の環境でもいいかなぁということで、お試しで終わった感じです。

ただ、Enterprise版だと話は違って、Clouderaのノウハウがぐっと詰まった感じで、これさえ入れればOKな感じがやばいです。一発でアップデート、一発で前のバージョンにロールバックとかパないですね。 あと監査機能とか、リソース制限の管理も大変便利そうです。
おいくらするのか気になります。

ちなみに去年は参加していないので、去年がどういう空気感だったかわからないんですが、今年のセッションを聞いていて思ったのは、一部の分析担当、ログ担当だけが、構築されたクラスタのデータにさわるのではなく、多くの人がデータに触れて、活用していくかにものすごいスポットがあたっていたような気がしました。
(嶋内さんの第二セッションの話がまさにそんなかんじでしたが)

tagomoris氏のNorikraとか見てるとSQLを通じて、みんながデータに触れられるようにするプラットフォームを構築するような話でしたし、Impala推しな感じとかもそういうことなんでしょうね。スポンサーコーナーでちょっとみせてもらったTableauも、SQLではないですが、アプローチとしては同じような感じでしょうか。
そして、データを安全にさわれるようにリソース管理や認証、監査の強化があると(SentryとかHueとか、そしてCloudera Manager)。
参加したセッションの裏で、Yahoo Japanのセッションもそういう話だったみたいですね。

そういえば去年くらいに同僚のやなしーが「経営者もSQL書けないとオワコン」とかそんな感じのこと言ってたなぁなんて言うのを思い出し、本格的に環境整ってきたんだなと改めて思ったり。

一応、社内でもHueからHiveやImpalaさわれるような環境は構築してるんですが、 LDAP認証をつけたくらいで、リソース管理も甘いので、本格的にガンガン使われると落ちるかもというまだまだなステータスなので、運用者としてはみんなが使えるっていうレベルまでまず持って行かないといかんですね。