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

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$ 

セットアップが終わると VirtualBox が開始し、下記のようにibis-demo という名前の仮想マシンが起動します。

ibis_vmこの仮想マシンではHDFSやYARN、Impalaが動作していますが、間接的に利用するので直接ログインする必要はありません。そのまま放置しておきましょう。

Anacondaのインストール

手元のMacにAnaconda (Python) をインストールします。

anaconda

インストールが終わったら、環境変数を設定します。 今回は/anacondaにセットアップしました。

インストールが終わったら、ibis-framework をインストールします。


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$

スクリプトを実行し、ノートブックを起動します。


$ 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).

しばらくすると、ブラウザ上でノートブックが開始します。

notebook

無事にセットアップできました。次回はノートブックで用意されているチュートリアルを使ってみましょう。

 

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)