AWS EMR上でGiraphを動かそう
Version
- Hadoop 1.0.3
- Giraph 1.0
ローカル設定
mvnがなかったら入れる。versionが表示されれば良し。
$ mvn -version Apache Maven 3.2.2 Maven home: /path/to/maven Java version: 1.6.0_65, vendor: Apple Inc. Java home: /path/to/java Default locale: ja_JP, platform encoding: SJIS OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
ビルド
http://giraph.apache.org/Apache Download Mirrors
Giraph1.0を手に入れ解凍。Giraphディレクトリに移動。ビルド。
mvn package -P hadoop_1.0 -Dhadoop.version=1.0.3 -DskipTests
AWSの設定
- S3でログフォルダを作成する
- EC2でkeypairを作成する
EMRの設定
Create Cluster
- Cluster Configuration [S3ログフォルダを指定]
- Software Configuration [AMI version 2.4.7を選択] (Hadoop 1.0.3であれば良いはず)
- Hardware Configuration [Master,Core m1.small : 一台] (例)
- Security and Access [EC2 key pairで先に作ったkeyparを選択] (SSHするのに必要)
- IAM Roles [EC2 instance profile : Proceed without roleを選択]
- Bootstrap Actions [Configure Hadoop : Configure and Add]
--mapred-key-value mapreduce.job.counters.limit=1200 --mapred-key-value mapred.tasktracker.map.tasks.maximum=8 --mapred-key-value mapred.map.tasks=4
- 他はいじらずにCreate
Master public DNSをメモする
SSH
ビルドしたGiraphを圧縮してSCP(本当はS3にあげていたものをSSHして解凍すべきっぽい)
$scp -i yourkeypair.pem giraph.tar.gz hadoop@[Master public DNS]:
SSHしてPageRankBenchmarkを実行
$ ssh hadoop@[Master public DNS] -i yourkeypair.pem Welcome to Amazon Elastic MapReduce running Hadoop and Debian/Squeeze. ip-:~ $ tar zxvf giraph.tar.gz ip-:~ $ hadoop jar giraph/giraph-examples/target/giraph-examples-1.0.0-for-hadoop-1.0.3-jar-with-dependencies.jar org.apache.giraph.benchmark.PageRankBenchmark -e 1 -s 3 -v -V 50 -w 1
近々ShortestPathのサンプルでどれだけスケールするか試してみる。