よしだのブログ

サブタイトルはありません。

(AWS/EC2) t1.micro はすごくメモリが少ない・・・!!

どうも!
今日は、EC2 に Cloudera をインストールする作業トライしています。いきなりインストール作業に引っかかってしまったのでメモを残しておきます。先に結論をいうと、t1.microにはインストールできないと思っていたほうがいいようです。

作業メモ

cloudera-manager-installer.bin を実行して、インストールを開始し、正常に完了した画面が出たことを確認しました。その後、手順での指定通りの URL にアクセスしても、アクセス出来ない。ポートなどをみても 7180 が開いていない。サービスが死んでいるんじゃないか?という状況です。

$ sudo service cloudera-scm-server status
cloudera-scm-server dead but pid file exists

予想通り起動していませんでした。この後、何度 start をしても同じ状態に戻りました。 念のため、iptables を停止して起動しても状況は変わりません。ポートも開きません。pid ファイルが残っている・・・?

$ sudo less /var/log/cloudera-scm-server/cloudera-scm-server.log

基本通りログをチェック・・・してもこれといって何も出ていませんでした。というわけで、ぐぐって見たところ以下の様な記事を発見!

cloudera-scm-server Process killed Automatically - Grokbase

ブログの記事に従い dmesg を実行。

$ dmesg
・・・(前略)
Out of memory: Kill process 1579 (java) score 853 or sacrifice child
Killed process 1579, UID 498, (java) total-vm:3263228kB, anon-rss:514432kB, file-rss:436kB

死んでるジャーン!Out of memory だってよ!上記の記事のスレッドを読み進めていくと、cloudera-scm-server はデフォルトで 2GB 使うと書いてあります。なんと。。

$ free
             total       used       free     shared    buffers     cached
Mem:        604484     108160     496324          0       7972      43548
-/+ buffers/cache:      56640     547844
Swap:            0          0          0

メモリ 600MB しかない。そりゃ落ちるわ。(笑)

# less /etc/default/cloudera-scm-server

念のため、記事の言っていることが正しいか、設定ファイルを確認します。

#
# Specify any command line arguments for the Cloudera SCM Server here.
#

CMF_SERVER_ARGS=""

#
# Locate the JDBC driver jar file.
#
# The default value is the default system mysql driver on RHEL/CentOS/Ubuntu
#

export CMF_JDBC_DRIVER_JAR="/usr/share/java/mysql-connector-java.jar"

#
# Java Options.
#
# Default value sets Java maximum heap size to 2GB, and Java maximum permanent
# generation size to 256MB.
#

export CMF_JAVA_OPTS="-Xmx2G -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp"

HEAP のマキシマム -Xmx が 2GB になっています。。。

まとめ

t1.micro は 600MB しかメモリが無いので、Cloudera はインストールすら出来ません。その他、メモリを食うアプリケーションは動かすのが難しいでしょう。Cloudera のインストール手順を紹介している以下のエントリーでも m1.large (メモリ 7.5GB) を使用しているので、多めがいいのでしょう。

Cloudera Manager + EC2 で Mahout を5分(ぐらい)で動かす - Qiita

あー、お金かかるわー。

Hadoop 第3版

Hadoop 第3版