Clouderaで作るデータ分析環境

wyukawaさんがデータ分析環境について書いていましたが、全部 CDH を使えば実現可能なので便乗して書いておこうと思います。

1. ETL 処理

CDH なら以下のツールがあります。

ちなみに wyukawa さんが言及している Luigi ですが、中身は単なる Hadoop Streaming なので、今からこれを使うぐらいなら上のツールから選択した方がいいと個人的には思います。

2. ジョブ管理

全部 Oozie でできます。

ジョブネット

Oozie ワークフローがジョブネットに相当するもので、これにより Sqoop でデータをロードして Hive で変換処理、失敗したらメールを送信、などの処理をまとめておくことができます。
Oozie 単体だと xml でワークフローを記述しなければいけないので少々面倒ですが、Hue を使えば Web ブラウザからドラッグアンドドロップで簡単にワークフローを書くことができます。

f:id:shiumachi:20140507070328p:plain

日付を指定してのジョブ実行

Oozie コーディネータを使えば日時を指定してのワークフローのスケジューリングが可能です。毎週日曜の午前4時に実行、毎月1日0時に実行などの指定はもちろん、cron と同じような書式でのスケジューリングも可能です。さらに同時実行数の指定や、キューにたまったときに FIFO にするのか LIFO にするのか、あるいは最新のスケジュールのみを実行するのかなど細かく指定することができます。


f:id:shiumachi:20140507070718p:plain


Web からのジョブの削除

できます。


認証機構

Kerberos 認証があります。

3. 集計結果格納用の RDBMS

計算に時間がかかって困るぐらいに RDBMS が肥大化するほどのデータがあるのなら普通に Hadoop 上で保存しておけばいいと思います。多分 Impala をそのまま実行した方が速いです。

4. アドホック分析

Hue を使えば上記の処理も全部ひっくるめて Web UI できます。

5. 分析用クエリ

CDH なら Impala があります。Hue から Impala を使う人もいれば、BI ツールから JDBC 経由で Impala につなぎにいく人もいます。

Cloudera Impala の本の日本語版もオライリーから無料でリリースされています


デモビデオはこちら

おまけ: Hue を試してみたい!

Hue は上記の他に色々できます。

http://demo.gethue.com/ にアクセスすれば、Hue のデモを触ることができます。まだリリースしたばかりのベータ版なので、Impala でのクエリ実行や検索結果の閲覧、Oozieワークフローの実行ぐらいしかできませんが、どんな感じか理解するためにとりあえず触ってみるものとしては十分でしょう。

デモ以上に試してみたいけどクラスタまでは作りたくないという人はクイックスタートVMを使うといいでしょう。CDH5のコンポーネント一式がVMに収まっています。


Hue の公式サイトはこちら

プログラマ向けMacの不要なファイルを削除するためのコマンド

git や homebrew などに言及しているので「プログラマ向け」と書いてますが、別にプログラマじゃなくても人によっては有用と思います。

現在のドライブ使用量の確認

コマンドじゃないけど、グラフィカルに全体の使用量とその内訳をみたい場合はGrandPerspectiveというソフトが便利。

ドライブ全体
$ df -h
現在のディレクトリ以下の合計サイズ
$ du -sh
現在のパス以下の全ディレクトリを容量順にソート

ファイル数が多いとそこそこ時間がかかる。

$ du | sort -n
現在のディレクトリの全ファイルを容量順にソート
$ ls -lShr

ファイルの圧縮

現在のディレクトリの全ログファイルを gzip 圧縮
$ for file in `ls *.log*`; do 
gzip -c ${file} > ${file}.gz
done

キャッシュや古いファイルなどの削除

※実行は自己責任で。

Mavenリポジトリを削除
$ rm -rf ~/.m2/repository
Git の不要なオブジェクトを削除
$ git gc
homebrew でインストールしたファイルの古いバージョンを削除
$ brew cleanup

brew cleanup -n で dry-run 実行できるので、まずはこちらを実行した方がいい。
パッケージを最新版にしていないと cleanup できないので、普通は brew doctor → brew update → brew upgrade → brew cleanup とする流れになる。
全部のパッケージを一斉にアップデートして古いバージョンを削除するのはリスクがあるので十分注意すること。
慎重に実行するのであれば brew <コマンド> <パッケージ名> などで一つづつ作業していった方がいい。

最終手段

個人情報を巡る政府と企業の関係

前回の記事で紹介した、The Economistの政府対企業の特集の記事の1つに、個人情報関連の記事があったのでこれも要約してみました。


個人情報関係の情報を追いかけている人にとっては目新しい内容ではないですが、「政府と企業」という特集の中でわざわざ一つの記事として扱っていることから、The Economist もこの問題が非常に重要だという認識なのでしょう。


翻訳ではないので結構省略したり別の表現に変えたりしています。
興味のある人は原文を読みましょう。


原文: http://www.economist.com/news/special-report/21596668-governments-relationship-tech-sector-hideously-complicated-looking-both-ways

インターネットは、かつてないほどの偉大な個人情報バンクを生み出した。
多くの人々は、初めはインターネット上で買い物をするのを嫌がっていたが、今ではすっかり慣れてしまい、自分の好き嫌いや、写真、名前、友達の詳細をソーシャルメディアに公開するまでになった。
このようなデータはターゲティングのようなマーケティングを行いたい企業にとっては非常に貴重である。技術の進歩のおかげで、企業はどのような傾向をもつ人でも見つけ出すことができる。


しかし、誰がデータの安全性に責任を持つべきか、そしてデータの用途に制限をつけるべきかどうかという重要な問題も生まれてきた。
インターネット黎明期に政府はこの問題に注目したことがあったが、最近の欧州における新しい法律のドラフトはその当時に比べてはるかに重く厳しい内容である。
この法律の対象となる全ての企業は、概算で8万ユーロはかかるデータ保護担当官を任命しなければならなくなる。
5000点以下の個人情報しか扱わない会社は免除されるものの、たとえ小さな顧客メーリングリストでさえこの制限を超えてしまうだろう。
ドイツでは、16の州それぞれが独自のデータ保護の理事会を持っていて、それぞれ別の法律を施行している。バイエルン州では全てのwebサイトはユーザが匿名のままでいることを許容しなければいけないが、これはFacebookのユーザにとっては問題である。自分の名前でログインしないといけないからだ。


政府はこうした問題に対し、消費者の権利を示す一方、安全保障のために企業がデータを提供することも期待している。
さらにはメールや電話なども直接監視している。こうしたデータはテロリストや脱税を監視するのに便利ではあるが、反体制派を監視することもできる。
また、データを盗み出されるリスクもある。この問題についての議論はスノーデン事件によって激化することとなった。
国家が信用できないのであれば、民間企業もまた信用できない。
民間企業の中にはサイバー攻撃を受けたり何らかの事故によって大量の顧客情報を流出した企業もある。
企業は信用の失墜とブランドイメージの毀損を避けるため、こうした問題を解決する必要がある。
また、企業は政府からの情報公開の要請に歩み寄ろうとしている。
Appleは昨年31組織もの政府機関から情報の要求を受けたことを公開した。その大半は米国政府である。


(原文には2013年上半期の先進諸国政府による、主要webサービスGoogleAppleなど、への情報開示要求についての表がある)


インターネットが人々の生活により深く浸透するにつれ、このような問題は急激に重要になっていき、多くの疑問を生み出すことになる。
Twitterのようなサービスプロバイダは攻撃的なメッセージに対して責任を持つべきなのだろうか?
オンラインでの児童虐待に対し、それらの懸念されるサイトの多くがオフショアで運営されていることを鑑みたとき、何ができるだろうか?


インターネットはグローバリゼーションの究極の事例である。
常に新しくサイトがどんどん生まれていくインターネットを監視するのは非常に困難である。
そして反政府主義者から企業の名前に傷をつけたい不満のある消費者まで、誰もが武器として使用することができる。


インターネットとは、言論の自由、プライバシーの権利、そしてイノベーションの自由などの異なる原理が衝突する場所である。
これらの原理のトレードオフはそれぞれの国や個人によって話し合われなければならないが、相互接続した世界では誰もが満足のいく答えは出ないだろう。

The Economist で企業対政府についての特集

The Economist の2月20日号で、企業対政府についての特集がありました。

以下、ざっと要約してみました。自分なりの解釈も入ってるので、原文にない情報が含まれている可能性があります。

正しく引用したい場合は原文を参照してください。

企業と政府の関係は敵対的になりつつある。しかし、両サイドとも互いを必要としている。


米国政府はセオドア・ルーズベルトの時代から、強くなっていく企業を制限していくような流れを作っていった。
こうした敵対的な雰囲気は増加の一方をたどるが、しかしあまりに強い制約は経済の活性化を阻害するため、政府は企業を必要以上に圧迫できない。
一方で企業も政府を必要としている。政府は、法システムや基本的な安全保障だけではなく、企業の根幹をなす労働者を教育したり、交通などの社会インフラを整えたりしてくれる。
それだけでなく、インターネットや人工衛星など、企業が商用製品を作るのに必要な多くの科学的研究を行ったりもする。
多くの業界において、政府は主要顧客でもある。防衛産業は典型例であるが、製薬業界なども国民厚生サービスなどが大手の顧客である。建設業界も政府の活動に強く依存している。


もしかすると、現在一番厄介な関係はハイテク産業と政府かもしれない。企業の顧客の一部が、政府がその企業のデータにアクセスしたり、企業のデータの使い方に制限をかけることに不安を感じている。
企業は顧客の側に立つのか、それとも政府の側に立つのか?


もう一つの複雑な問題は、企業と政府の両方によって市民に提供される福利厚生である。例えば、多くの政府は産休を拡大することを要求しているが、これは大企業には実現できても、中小企業にとっては実現がより困難なことである。有権者は税金の増加を嫌がるので、政治家は企業負担で福利厚生の向上を行おうとする。


大企業は政府とうまく付き合っていく必要があることを認める一方、政府は一部の大企業、例えば航空会社などを他国の買収から保護するなど優遇措置をとっている。


このレポートでは富裕国における企業と国家の関係について報告する。税金の役割、規制、競争についての政策、ハイテク産業がなぜ特別なのか、ロビー活動などについて議論する。


ここ最近、企業対政府という構図について特に興味を持っていたので、このレポートは非常に興味深いものでした。
多国籍企業は金銭的にも入手できる情報量も平均的な国家を上回っていて、しかも地理的制約が非常に緩いため、いずれ企業は国家を凌駕するのではと思っているのですが、やはりそう簡単にはいかないようですね。

Confluenceの稟議書機能を使う

Confluenceには稟議書というブループリントがあります。
何らかの意思決定をしなければいけないときに、議論をするためのページを作るためのテンプレートですが、地味に便利です。

意思決定に必要な情報が多い場合、チャットだけではそうした情報を正しく把握しながら議論するのが困難なので、私のチームでは稟議書ブループリントを活用しています。

以下のような情報を入力して作成しています。

  • ページタイトル
    • 「◯◯するかどうか」「◯◯の対処方法」など、意思決定に対する質問形式で作成する
  • 背景
    • 「◯◯するかどうかを決定するにはいくつかの問題について検討する必要がある」「◯◯の対処方法にはいくつかある」などの概要を書く
  • 選択肢とメリット・デメリット
    • 「選択肢1: 実行する」という形でいくつかの選択肢を並べ、それぞれについてメリット・デメリットを記載する。
  • 論点
    • 選択をするにあたって、どの部分が論点になるのかをまとめておく。


意思決定に参加する人はコメント欄で以下のような形式で入力していきます。

選択肢1に賛成。なぜなら、(以下論点についてのの主張を説明)


もちろん、議論の中で新たな選択肢や論点、それに既存の選択肢や論点の不備などが出てきますので、その都度説明を修正していきます。


注意点は2つ。

  • 意思決定するまでもないことについて、周囲からの承認を得るためだけにするような稟議は無駄なので上げない
  • 関係者以外は意思決定の場に呼ばない

2013年面白かった本

今年面白かった本をあげてみました。
専門書は省いています。
あとここに紹介してない本でも面白い本はたくさんあったのですが、さすがに全部は書ききれないので一部にとどめます。

果て無き渇望

本当にいい本でした。私が果て無き渇望アドベントカレンダーに参加したことからも、どれだけこの本に感銘を受けたか分かるでしょう。(アドベントカレンダーの記事)

文庫 果てなき渇望 (草思社文庫)

文庫 果てなき渇望 (草思社文庫)

カラシニコフ

先日亡くなったばかりのカラシニコフですが、製作者ではなくAK-47カラシニコフ銃によって引き起こされている様々な問題(アフリカの少年兵など)を書いたノンフィクション。
カラシニコフがなぜ広まったのか、広まったことでどういう問題が起きているのかなどが書かれています。
実はこの本を読むまで、カラシニコフって第二次大戦中に開発された銃だと思ってました……。

カラシニコフ

カラシニコフ

なぜデザインなのか?

デザインとは何か、ものづくりとは何かということについて語る、原研哉と阿部雅世の対談。
こう書くと芸術の話ばかりにように思うかもしれませんが、ほぼ全ての仕事してる人に役に立つ話だと思います。
大抵の人は、何らかの成果物を出すことを仕事に求められますからね。

頭の中にあるイメージを外に出す、感じたことを外に出すということを、抵抗なくスムーズにできるのがドローイングでありスケッチなんです。
「自分がしでかしてしまうこと」に対して、平気になれること。
(p.23)

なぜデザインなのか。

なぜデザインなのか。

東京至極のレストラン2013年版

やはりこれは外せません。とにかく私のツイートまとめを読んでください。

東京 至極のレストラン 2013年版 (SEIBIDO MOOK)

東京 至極のレストラン 2013年版 (SEIBIDO MOOK)

ロボット兵士の戦争

単に「ロボットが戦争で使われているんですよ」で終わるのではなく、ロボットが戦争に必要とされるようになった経緯、ロボットの投入によりどう戦争が変わるか、それも戦場だけでなく戦争を行う政府、戦争を「観戦」する一般市民などがどう変わるか、ロボット兵団の指揮官に求められるスキル、戦時国際法の変化などについて書かれています。
分厚いですが読み応えはあります。

ロボット兵士の戦争

ロボット兵士の戦争



援デリの少女たち

現代の援助交際「援デリ」についてのノンフィクション。こういう話が苦手な人は読まない方がいいです。
拠点を持たずにマクドナルドなどにたむろし、足のつかない携帯電話一つで組織的に「援助交際」を行う人達の話。社会の闇が描かれています。

援デリの少女たち

援デリの少女たち

ビッグデータの正体

仕事に関係のある本を紹介するつもりはなかったのですが、この本だけは例外。
著者は 2010年2月 に The Economist でビッグデータ特集を書いた人です。
この特集こそ、世界にビッグデータブームの火をつけた特集であり、私がこの業界に足を踏み入れることになったきっかけの特集です。その時の感想記事はこちら

本の中身も素晴らしく、きちんと本質をとらえた内容でした。
「ビッグデータって何?」って人はまずこの本を読みましょう。

ビッグデータの正体 情報の産業革命が世界のすべてを変える

ビッグデータの正体 情報の産業革命が世界のすべてを変える

鬱ごはん

今年のベストコミックです。
このマンガがすごい!2014」の第9位にオンノジがランクインした施川ユウキですが、私はこちらの作品の方が好きです。

就職浪人兼フリーターの鬱野たけしが、日々食べる食事について語っていくという話。こう書くと孤独のグルメに似ているように聞こえますが、孤独のグルメはどことなくかっこよさが見えるのに対し、こちらはひたすら孤独。また、出てくる食べ物が基本的にまずそうです。色々な意味で食べ物系の常識を覆してます。鬱野自身「何を食べてもおいしく感じない」と言っています。


表現が非常に秀逸で、この描写は一度クセになったらやめられません。

私が好きな話は、松屋の豚焼肉定食の話です。
就職浪人の状態を「毎朝、堕ちていく飛行機の中で目が覚める気分だ」と思いながら松屋に入り、豚焼肉定食を頼みます。そして出されてきた料理を「堕ちていく飛行機で出される機内食だ」と表現します。

初めて読んだときは本当にすごい表現だなと思いました。

興味があれば是非読んでほしい一冊です。

声に出して読みたい「果て無き渇望」名文10選

果て無き渇望アドベントカレンダー、15日目担当の shiumachi です。
本書の概要についてはymotongpooの素晴らしい記事があるのでそちらに譲ります。
ここでは、私が個人的に気に入っているフレーズをピックアップして紹介します。
トレーニング前に読むと元気が出る、そんな名文を拾ってきました。


「だれだって、トレーニングさえすればこんな身体になれます」
(果て無き渇望 p.11)

「いいですか、僕の言いつけを守ってください。ひとつは本気になってやること。ふたつは継続すること。三つ目は合理的に正しいトレーニングをすること。これさえ守れば、たとえ週二回でも必ず筋肉はつきます。あなたもいつかはこうなります」
(果て無き渇望 p.13)

運動生理学には「ルーの三原則」と呼ばれるものがある。筋肉は使うと発達する、使わないと衰える、使い過ぎても衰えるというものだ。
(果て無き渇望 p.346)

「いつも、トレーニングしている自分と別の自分がいるんです。そいつが、もう一回できるだろう、もう一回挙げてみろって応援してくれるんですよ」
(果て無き渇望 p.81)

ボディビルダーにとって減量や家族の犠牲、食事の苦労、社会性のなさなどは、それだけ自分がトレーニングに没頭しているという勲章ですよ。突き詰めれば自慢話なんです
(果てなき渇望 p.65)

「ボディビルダーにとって、筋肉がもたらしてくれる最大の意義は、自信ではないでしょうか」
(果て無き渇望 p.69)

自分の将来がどうこうとか、そんな先のことは考えてもいないし、考えられない。考えちゃうような人は、その時点で負けね
(果て無き渇望 p.134)

ボディビルにとってステロイド剤というのは、原爆みたいなものなんです
(果て無き渇望 p.257)

ボディビルは数学の方程式を解くのに似ている。正しいやりかたで順序だてて解析すると、必ず正解にたどりつく。
(果て無き渇望 p.246)

「自分はただひたすらに大きくなりたい。天から与えられた身体を、自分の意志の力で変えていく。筋肉を一センチ肥大させることで自分が神に近づけるわけではありませんが、少なくとも自分の肉体という小宇宙を創造することができる。たとえ後遺症が襲ってきてもかまわない。どんな手段を使っても、限りなく肥大した筋肉を手に入れたい。ただ、それだけなんです」
(果て無き渇望 p.229)

文庫 果てなき渇望 (草思社文庫)

文庫 果てなき渇望 (草思社文庫)