年末の流れ
ここ数日いろいろあったのですが、日記を書くのも雑になってしまったので、軽く書いておきます。
大学で講義しました
電気通信大学で一コマ、Hadoopのインストールの演習をしました。準備不足などもあり至らないところも多かったと思います。やはり事前準備大事ですね。。
Miix2 8が壊れた
ネットにもよく報告上がってるようですが、タッチパネルが効かなくなりました。Bluetoothでキーボードやマウスは繋がるので、寝床ノートかなぁ。しかしX220もあるんだけど。
そのかわりにClide 9を買いました。iPad mini相当だと思って買いましたが、一回り大きいですね。
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=showyou0b-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=B00TGD0YNA" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
A16になりました
数ヶ月駅メモに浮気してたんですが、最近久々に始めてなんとか年内に16まで上がりました。最近は毎日30分歩いているので、そのついでにプレイしています。
Dockerでshmmaxが小さい云々対策
Docker 1.0 でDBを動かすときの共有メモリの設定 - No way!
など昨年書かれているのだけど、どうも今のバージョンはdocker -d -e lxcしてlxc-driverを使っても、kernel.shmmaxが変更できない。OSはUbuntu14.04LTS+docker1.6.2。
もしかしたらDockerのアップデートで直るかもしれないけど、下記のスレッドを参考にして直した。
A change went into Linux kernel V3.16 which fixes this. Previously, the shared memory allocated to containers was hard-coded to 32 MB, and now it's set much higher.
.Ubuntu14.04のkernelは3.13だったので*1、
apt-get install linux-image-generic-lts-vivid
としてkernelのバージョンを上げて対応した。
ちなみになぜshmmaxが上がらないと困るかというと・・それは今度。
しかし数か月後にはこの記事役に立たなくなってそうだなぁ。。。
*1:当然あとで変わりそうだけど
Spark + Jupyter notebook起動
ネットにいろいろ情報転がってるけど、Spark 1.5.1, Jupyterバージョン不明だと、
IPYTHON_OPTS="notebook" ./bin/pyspark
じゃないと繋がらない気が(--profileが効かない)
Greenplum DatabaseがOSSで公開されたのでビルドしてみた
Greenplum Databaseとは?
雑に言うと並列動作するPostgreSQL8.2です。Pivotal社の製品ですがソースが公開されました。
Pivotal、高速データ分析が可能なデータベース「Greenplum Database」をオープンソースとしてリリース:CodeZine(コードジン)
今年もあと三ヶ月なので3ヶ月でやりたいことを書いておく
最近は朝起きるのが辛いのと、家に帰宅してから新しいことを学ぶ余裕もない感じに忙しく、すっかりダメ人間と化している。
今週で10月に入るので、意識低くともできるとこからやっていきたいと思う。
- 英語 本来は英会話スクールに行こうと思ったが、仕事の方が忙しく行く余力もない
- データ分析周り データ分析基盤は嫌というほど触ってるが、その上の分析の仕事はなかなか触れてないので慣らしてみたい
- 新規情報収集 論文とかも読めてないので、数本読むようにする。
参考:EMNLPが10月末に行われるようで - 実装 上で読んだものを血肉化するために実装できないか?
あとPyconJPは今年は関われてないですが、結構データ系も継続して採択されてるような感じなので、聞きにいきたいかなぁ。今年はデータサイエンティスト協会のシンポジウム(http://www.datascientist.or.jp/symp/2015/)もあるし、他にもいろいろ調整せねば・・
Ambari + EC2 spot instanceでHadoopクラスタを30分で作る
軽い事前準備はいりますが、Ambariを使うと複数台のHadoopクラスタを30分くらいで一気に作ることができます。
タイトルではEC2 spot instanceとか書いてますが、単にマシン大量に用意しているだけなんで別にAzureとかGCEでも他のIaaSでもいけるかもしれません。またここではHDP使ってますが同じくAmbari使ってるPivotalHDもいけるはずです。
ドキュメント
細かい設定は後ほど書きますが、Ambari-server入れたマシンとSELinuxとか切ったイメージは用意しておく必要はあります。あとセキュリティの設定もしておく必要があります。
んで、インスタンスをspotで大量作成。こんなことしなくてもm3.xlargeとかを少量建てたほうが効率いいでしょうけど。
建ちました。
Ambari-serverマシン立ちあげて、ログインします。
インストールするHDPのバージョンを選びます。URLの空欄は、HDPのRPMを入れた内部IPを入れています。s3をrpmリポジトリにするのもいいかもしれません。
インストール先を入力します。例によって各マシンの内部IPです。今回30個Spot建てたので30個分IP貼っつけてます。
インストールするコンポーネントを選びます。この前にHBaseとか、OozieとかSparkを選択する画面があります。
Hiveは管理用のパスワードが必要なので、入れています。
インストールを進めます。あとは勝手にNamenodeやDatanodeをインストールしていきます。
インストールが終わりました。実際インストール自体は30分くらいなのですが、今回はSpotの価格が安くていくつかインスタンスが落とされたため、価格を再設定して立てなおしたりしましたのでもっと時間がかかっています。
セットアップが終わったら結果が表示されます。今回はセットアップ自体は22分で出来ています。
30台のクラスターが並んでいます。
Map=20でPIのサンプルを回したときの結果です。
使い終わったら、各インスタンスをterminateします。ディスク自体はEBSで残しておくこともできますが、再度インスタンス作るときに内部IPが変わるのでその辺別途設定がいるかと思います。Blueprintとか使って作りなおした方が速いかもしれませんが、まだBlueprintを把握してないのでそれはこの次。あとAmbari-serverは
$ ambari-server stop
$ ambari-server reset
すると再度初期セットアップに戻ります。
というわけで、Ambariを使って素早くHadoopクラスタを作る方法について書きました。ただ大規模計算をしたいならEMRを使った方がいいかもしれませんが、一度Hadoopクラスタを複数台でいじってみたいって人にはいいかもしれません。
後日やる気が出たら詳しい設定方法について書いていきます。
EC2にsshキーで入れなくなった件
久々に新規でインスタンスを建てたのだけど、作成したのが公開鍵で入れず、毎回root@ec2-なんとか’s password:と聞かれる。ちなみに公開鍵は新規での作成と手持ちの公開鍵の両方使用。手元の鍵のpermissionは設定済み。
原因判明。OSのイメージが古いからっぽい。。。マイAMI作りなおしかこれ。。