Ibisを使ってみた(1)

Ibisリリース

本日、Ibis (アイビス=トキ)という、100%オープンソースのPythonのプロジェクトが公開されました。


IbisはPython用の新しい分析フレームワークです。また、実行エンジンにはImpalaなど利用することができます。PandasなどのPython用の分析フレームワークは便利に使うことができますが、大規模にスケールしないという問題がありました。Ibisを使うことで、ユーザーはHadoopのような大規模スケールの環境で利用できるようになり、さらに実行エンジンにImpalaを使うことで、高速に処理を行うことができるようになります。
IbisはPandasを開発したWes McKinneyが開発に関わっていることもあり、Pandasをお使いの方には使いやすいフレームワークになりそうですね。

(Cloudera社のブログより画像を引用)
http://blog.cloudera.com/blog/2015/07/ibis-on-impala-python-at-scale-for-data-science/
https://github.com/cloudera/ibis

セットアップ

まずは何はともあれセットアップして使ってみましょう。以下の手順に従いセットアップしていきます。(セットアップした環境はMacです)
http://docs.ibis-project.org/getting-started.html
この手順では、VirtualBoxの仮想マシンを利用してチュートリアルを行うことができます。事前にVirtualBoxのインストールしておくのをお忘れなく。

仮想マシンのイメージ取得とブートストラップ

手順に従いコマンドを実行します。

curl -s https://raw.githubusercontent.com/cloudera/ibis-notebooks/master/setup/bootstrap.sh | bash

[code]
kernel023:ibis kawasaki$ curl -s https://raw.githubusercontent.com/cloudera/ibis-notebooks/master/setup/bootstrap.sh | bash
Cloning into ‘ibis-notebooks’…
remote: Counting objects: 218, done.
remote: Total 218 (delta 0), reused 0 (delta 0), pack-reused 218
Receiving objects: 100% (218/218), 128.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (126/126), done.
Checking connectivity… done.
~/work/private/ibis/ibis-notebooks ~/work/private/ibis
~/work/private/ibis/ibis-notebooks/setup ~/work/private/ibis/ibis-notebooks ~/work/private/ibis
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Interface ‘vboxnet0’ was successfully created
VBoxManage: error: DHCP server already exists
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Interpreting /Users/kawasaki/work/private/ibis/ibis-notebooks/setup/ibis-demo.ova…
OK.
Disks:  vmdisk1    68719476736    -1    http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized    ibis-demo-disk1.vmdk    -1    -1    
Virtual system 0:
 0: Suggested OS type: "RedHat_64"
    (change with "–vsys 0 –ostype <type>"; use "list ostypes" to list all possible values)
 1: VM name specified with –vmname: "ibis-demo"
 2: Vendor (ignored): Cloudera Inc.
 3: ProductUrl (ignored): https://github.com/cloudera/ibis
 4: VendorUrl (ignored): http://www.cloudera.com
 5: No. of CPUs specified with –cpus: 2
 6: Guest memory specified with –memory: 8192 MB
 7: Network adapter: orig NAT, config 3, extra slot=0;type=NAT
 8: CD-ROM
    (disable with "–vsys 0 –unit 8 –ignore")
 9: IDE controller, type PIIX4
    (disable with "–vsys 0 –unit 9 –ignore")
10: IDE controller, type PIIX4
    (disable with "–vsys 0 –unit 10 –ignore")
11: Hard disk image: source image=ibis-demo-disk1.vmdk, target path=/Users/kawasaki/VirtualBox VMs/ibis-demo/ibis-demo-disk1.vmdk, controller=9;channel=0
    (change target path with "–vsys 0 –unit 11 –disk path";
    disable with "–vsys 0 –unit 11 –ignore")
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Successfully imported the appliance.
Waiting for VM "ibis-demo" to power on…
VM "ibis-demo" has been successfully started.
Wait until services become available.
Updating the /etc/hosts file requires sudo rights.
Password:
=========================================================================
Cloudera Quickstart VM installed successfully
To continue:
  – Make sure Anaconda Python is in your Path
  – source setup/ibis-env.sh
 Then run ‘ipython notebook’ from the ibis-notebooks directory
~/work/private/ibis/ibis-notebooks ~/work/private/ibis
kernel023:ibis kawasaki$ cd ibis-notebooks/
kernel023:ibis-notebooks kawasaki$ ls
./        .git/        README.md    setup/        tpch/
../        .gitignore    basic-tutorial/    testing/
kernel023:ibis-notebooks kawasaki$
[/code]
セットアップが終わると VirtualBox が開始し、下記のようにibis-demo という名前の仮想マシンが起動します。
ibis_vmこの仮想マシンではHDFSやYARN、Impalaが動作していますが、間接的に利用するので直接ログインする必要はありません。そのまま放置しておきましょう。

Anacondaのインストール

手元のMacにAnaconda (Python) をインストールします。
anaconda
インストールが終わったら、環境変数を設定します。 今回は/anacondaにセットアップしました。
インストールが終わったら、ibis-framework をインストールします。
[code]
kernel023:ibis-notebooks kawasaki$ export ANACONDA_HOME=/anaconda
kernel023:ibis-notebooks kawasaki$ export PATH=$ANACONDA_HOME/bin:$PATH
kernel023:ibis-notebooks kawasaki$ pip install ibis-framework
You are using pip version 7.0.3, however version 7.1.0 is available.
You should consider upgrading via the ‘pip install –upgrade pip’ command.
Collecting ibis-framework
Downloading ibis-framework-0.3.0.tar.gz (230kB)
100% |████████████████████████████████| 233kB 790kB/s
Requirement already satisfied (use –upgrade to upgrade): pytest in /anaconda/lib/python2.7/site-packages (from ibis-framework)
Requirement already satisfied (use –upgrade to upgrade): numpy>=1.7.0 in /anaconda/lib/python2.7/site-packages (from ibis-framework)
Requirement already satisfied (use –upgrade to upgrade): pandas>=0.12.0 in /anaconda/lib/python2.7/site-packages (from ibis-framework)
Collecting impyla>=0.9.1 (from ibis-framework)
Downloading impyla-0.10.0.tar.gz (173kB)
100% |████████████████████████████████| 176kB 1.2MB/s
(略)
Running setup.py install for ibis-framework
Successfully installed argparse-1.3.0 docopt-0.6.2 hdfs-1.2.1 ibis-framework-0.3.0 impyla-0.10.0 kerberos-1.1.1 protobuf-2.6.1 psutil-0.6.1 requests-kerberos-0.7.0 snakebite-2.5.5 thrift-0.9.2
kernel023:ibis-notebooks kawasaki$
[/code]
スクリプトを実行し、ノートブックを起動します。
[code]
$ source setup/ibis-env.sh
Preparing environment for Cloudera quickstart VM
Tatsuo-no-MacBook-Pro:ibis-notebooks kawasaki$ ipython notebook
[I 20:08:23.472 NotebookApp] Created profile dir: u’/Users/kawasaki/.ipython/profile_default’
[I 20:08:23.478 NotebookApp] Writing notebook server cookie secret to /Users/kawasaki/.ipython/profile_default/security/notebook_cookie_secret
[I 20:08:23.482 NotebookApp] Using MathJax from CDN: https://cdn.mathjax.org/mathjax/latest/MathJax.js
[I 20:08:23.989 NotebookApp] Serving notebooks from local directory: /Users/kawasaki/work/private/ibis/ibis-notebooks
[I 20:08:23.989 NotebookApp] 0 active kernels
[I 20:08:23.990 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 20:08:23.990 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[/code]
しばらくすると、ブラウザ上でノートブックが開始します。
notebook
無事にセットアップできました。次回はノートブックで用意されているチュートリアルを使ってみましょう。
 

コメント