雑記帳

ソフトを中心に雑記を書いてる割とすぐ転職したい人。コメント貰えると私が喜びます。

IPython NotebookでApache-Sparkを動かす

背景

ビッグデータとかリアルタイム解析とかデータマイニングとか機械学習とか、皆が面白そうにブログ書いてたり話してたりしてるから興味あるんですよ。面白そうなんですよ。 で、個人的に興味があって調べていますというただそれだけです。 下手の横好き以下なので、何をいまさらレベルのことをやりながら楽しんでます。 ※ 前回の投稿と同じです

やること

IPython NotebookでApache-Sparkを動貸せるように設定するだけです。 ググれば色々出てくるけど自分の近くに置いておきたいのでメモ。 さっき知ったけど、sparkの1.2.0が出てたので既に微妙に古い。 けどどうせ同じで大丈夫と思ってる。

前提

  • PCローカルで動かすこと
  • IPython Notebookが起動出来ること

環境

手順

1. Sparkをダウンロードしてきてどっかにコピーする、もしくはインストールする

f:id:fkei:20141221000403p:plain

Homebrewでインストールすると/usr/local/Cellar/apache-spark/1.1.1に置かれるご様子。

2. 環境変数SPARK_HOMEを設定する
export SPARK_HOME="sparkを解凍したフォルダ"
3. IPythonのプロファイルを作る
$ ipython profile create pyspark
4. IPython環境のプロファイルのstartup/00-pyspark-setup.pyを編集する
#coding:utf-8
import os
import sys

os.environ['SPARK_HOME'] = '/usr/local/Cellar/apache-spark/1.1.1'
spark_home = os.environ.get('SPARK_HOME', None)
if not spark_home:
    raise ValueError('SPARK_HOME environment variable is not set')
sys.path.insert(0, os.path.join(spark_home, 'libexec/python'))
sys.path.insert(0, os.path.join(spark_home, 'libexec/python/lib/py4j-0.8.2.1-src.zip'))
execfile(os.path.join(spark_home, 'libexec/python/pyspark/shell.py'))

私の環境では設定ファイルは~/.ipython/profile_pysparkにあります。
py4j-0.8.2.1-src.zipはバージョンによって違うから書き換えましょう。
Windowsではユーザフォルダあたりにあった気がします。

5. 起動してみる
$ ipython notebook --profile=pyspark
6. なんか動いてる感じです。いえ〜い!

f:id:fkei:20141221000530p:plain

参考

http://blog.cloudera.com/blog/2014/08/how-to-use-ipython-notebook-with-apache-spark/

Code for Japan Summit 2014に行ってきた

ちょうど1年位前のオープンソースカンファレンスの時に聞いて気になっていたCode for Japanの第1回全体集会みたいなのものに参加してきました。 これです。

PCのメモ書きを大体コピペしました。間違ってたらごめんなさい。

そもそもCode for Japanって何?

一言で言うとみんなでまちづくり@ITを推進する団体です。 メインサイトの説明をそのまま使わせて頂くと以下のような説明になりますね。

市民参加型のコミュニティ運営を通じて、地域の課題を解決するためのアイディアを考え、
テクノロジーを活用して公共サービスの開発や運営を支援していく活動

参加セッション

キーノート

20分くらい遅刻したので最初分かりません。

  • オープニングトーク

    • 代表挨拶とかCodeforJapanな動画とか
  • パートナーTalk@Google

  • キーノートスピーチ

    • 4年前から活動しているCode for Americaの話

      • 失敗も成功も教えてやるぜと言ってくれてた
  • パートナートーク

  • キーノートスピーチ

    • SIXの取り組み(インターナビとか)

Brigade Showcase

  • ブリゲードって何?

    • Code for Japanに参加しているコミュニティのうち公認のもの
  • 活動実績 以下のようなものを作ったらしい。

    • 石川県の金沢市ではゴミ捨てガイドアプリ5374.jpを作ってオープンソース
    • 福島県会津では消防団向けに消火栓マップアプリを作って実用化
    • 滋賀県ではびわ湖花火大会用にアプリをたくさん作ったらしい
    • 千葉県の流山市ではママさんたちが頑張ってるらしい
    • その他色々(書ききれないので)

震災復興

* イノベーション東北@Google

    * まだ復興進んでないところもたくさんあるよ。でも頑張ってる人いるよ。という話。

* イトナブ@石巻

    * 石巻でエンジニア1000人育てるぜ!という話

* CivicTechでハックしたい@浪江

    * Code for Japanの強力を得てサービス維持費の改善が出来ましたという話
    * 避難民にタブレットを配ってさあどうしようという話

LT

* 台風リアルタイムマップすげーって話とか

懇親会

* ありがとうございました
* まずは郡山とか会津の集会には参加してみたいなぁ
* Code for Iwakiはどうなってるんだろうか?

感想

オープンガバメントとかそっち系への興味が大本だったけど、それ以外の方が今は楽しそうな感じだね。
というか皆何やら楽しそうに活動しているのが良い。
俺みたいな引きこもり予備軍エンジニアが社会に出て何かをするには良い機会なので参加して社会的な人間になりたい所。。。
活動は始まって間もないものばかりだけど、徐々に実績が積まれて来ているので数年後には活躍しているかもしれない。
石巻のイトナブの話のように、教育絡みの話は個人的には大好き。(直接子供が好きかは微妙)
流山で子どもたちにやった「みんなの秘密基地教えてよ」という話は自分の考え方を広げてくれたので良かった。

思いとか願いとか

営利目的じゃない理由でみんなで「ワーーーッ」ってやる活動は個人的に好みなのでこういう活動はやりたい。
別に自分の技術を他の人に提供するのはなんの抵抗もない。
けど、それを単に要求されるだけなのは嫌だ。
技術がある人だけで何かをすると現場を知らずに作って適当なものが出来てしまう。
事情を知っている人だけで作ると、技術的に簡単なことでも選択することができなくなる。
そういうジレンマを無くしていけるような活動に成長すると良いなぁ。

Apache Kafkaを使い始めてみた

背景

ビッグデータとかリアルタイム解析とかデータマイニングとか機械学習とか、皆が面白そうにブログ書いてたり話してたりしてるから興味あるんですよ。 面白そうなんですよ。で、個人的に興味があって調べていますというお話です。 昨今、仕事上でもそういったデータを扱うことを求められているけれど、残念ながら組織自体がそのレベルに達していない感じなので、業務の中で直接扱うケースに達するのはまだまだ時間がかかりそうですがね。

※ちなみに使い始めた段階(つい数日前)では、Kafkaが何をするための道具なのか知りませんでした

参考

Kindle書籍でこんなのがあって、

Apache Kafka入門

Apache Kafka入門

GWくらいに買ったはずなのにiPadの中で肥やしになっていたので夏休みの自由研究がてら触ってみようかと。 ほら日本語ですよ日本語。

続きを読む

非常に簡単にJenkinsを使ってみるテスト

MacBookAirの左Shiftキーが壊れて打ちづらいなと思いながらブログ書いてました。

オープンソース継続的インテグレーション(CI)ツールJenkinsを簡単に触ってみたました。 ずっと前(4年くらい前)から気になってたけど、使い方がイマイチ分からなかったので勉強し始めました。

続きを読む