夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Apache Spark on Mesos の環境構築(その1

こんにちは。

では、準備も整った(?)ということで、Apache SparkをMesos環境上に構築して動作させる・・・
ということをやっていこうと思います。

http://spark.incubator.apache.org/docs/latest/running-on-mesos.html
のページを読んでみると、Mesos上からApache Sparkを実行するには以下の手順が必要だそうです。

  1. Apache Mesosクラスタの構築
  2. Apache SparkをMesosクラスタからアクセス可能なストレージ(例:HDFSAmazon S3)に配置
  3. Apache Sparkの起動

Mesosがどこまで何を管理するかが微妙なのですが、とりあえずHDFS等のストレージ系の
ものについてはMesos管理ではない・・・ということなんでしょう。
クラスタマネージャ、という名前がついている関係上Mesosがどこまでカバーするのが微妙に分かりにくいのが厄介なところですね。

とまぁ、それも実際やってみないとわからないため、構築してみます。

1. 構築する前提環境

今回構築するマシンの構成は以下です。

また、各マシンのスペックは以下の通り。
■ホストマシン

CPU                 : Core i7 3770K
Memory              : 32GB
HDD                 : 2TB
VMWare ESXi Version : 5.1.0

仮想マシン(mesos1、mesos2、mesos3)

CPUコア数           : 2
Memory              : 8GB
HDD                 : 200GB
OS                  : CentOS6.4 64bit(Basic Server)

・・・正直、クラスタマネージャという位置づけのプロダクトを動作させるには非常に心もとない性能ですが、
実際どうしようもなければ他の対処を考えます^^;

2. 下準備

まず、下準備として以下の3つはやっておきます。
必要ないかもしれませんが、後で不要にはまらないためにするために。

  1. hostsへの各ホストのアドレス追記
  2. iptables停止
  3. selinux停止

3. Mesosの前提パッケージインストール

http://mesos.apache.org/gettingstarted/ のページに従い、前提パッケージをインストールします。
端的に言うとビルドを行うためのツールをインストールする必要がある・・・という形になります。
あと、ページにあるインストールだけだと足りなかったため、インストールパッケージは追加になっています。

# yum install python26-devel python-devel
# yum install cppunit-devel
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install libunwind-devel
# yum install gcc-c++
# yum install java-1.7.0-openjdk-devel
# yum install zlib-devel libz*
# yum install libcurl*

4. Mesosのインストール

では、Mesosのダウンロードとビルドを行います。
尚、これでMesos Web UIとZooKeeper(3.3.4)も一緒にインストールされるため、
外部ZooKeeperを使用する場合は別途設定が必要そうです。

# wget http://ftp.tsukuba.wide.ad.jp/software/apache/mesos/0.13.0/mesos-0.13.0.tar.gz
# tar xvzf mesos-0.13.0.tar.gz
# cd mesos-0.13.0
# ./configure
# make

makeコマンドはマシンのスペックにもよりますが、かなり時間がかかります。
#今回の場合、20分近くかかった

ともあれ、これでとりあえずMesos自体のインストールまでは完了です。
次回実際にプロセスを立ち上げて、どういう構成になっているかを確認してみます。