CentOS 6.5 に intra-mart Accel Platform をインストールしたときのメモ
なんか、マニュアル見ててよくわかんないところを忘れないようにメモっとくテスト(作成中...)
前提条件
- CentOS 6.5 を minimal Desktop でインストールしておく。
- 以下、rootで作業
EPELリポジトリの追加と開発ツールのインストール
# rpm -ihv http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum update # yum groupinstall 'Development tools'
PostgreSQLのインストールと設定
- インストール&初期化と起動設定
# rpm -i http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm # yum install postgresql93-server postgresql93-contrib # service postgresql-9.3 initdb # chkconfig postgresql-9.3 on # service postgresql-9.3 start
- ローカル接続を認証なしにする
# vi /var/lib/pgsql/9.3/data/pg_hba.conf 一部抜粋 # "local" is for Unix domain socket connections only local all all trust ← 変更 # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
- 設定の再読み込み
# service postgresql-9.3 reload
- ユーザー作成
# createuser -a -d -U postgres -P imart 新しいロールのパスワード: もう一度入力してください:
- パスワード認証に変更する
# vi /var/lib/pgsql/9.3/data/pg_hba.conf 一部抜粋 # "local" is for Unix domain socket connections only local all all password ← 変更 # IPv4 local connections: host all all 127.0.0.1/32 password ← 変更 # IPv6 local connections: host all all ::1/128 ident
- 設定の再読み込み
# service postgresql-9.3 reload
- データベースの作成
# createdb -E UTF8 -O imart -U imart iap_db
アプリケーションサーバーのインストール
# yum remove java-1.6.0-openjdk # yum remove java-1.7.0-openjdk # rpm -ivh jdk-8u5-linux-x64.rpm # vi /etc/profile ----- 最後に追記 # Oracle JDK export JAVA_HOME=/usr/java/default export PATH=$PATH:$JAVA_HOME/bin ----- # . /etc/profile # yum install openssl openssl-devel
- resinのインストール
# wget http://www.caucho.com/download/resin-pro-4.0.37.tar.gz # tar zxvf resin-pro-4.0.37.tar.gz # cd resin-pro-4.0.37 # ./configure --prefix=/var/lib/resin --enable-64bit # make install
- jdbcドライバーのインストール
# cd /var/lib/resin/lib # wget http://jdbc.postgresql.org/download/postgresql-9.3-1101.jdbc4.jar
- ポートを80に変更
# vi /var/lib/resin/conf/resin.properties 一部抜粋(変更前) # Use overrides for individual server control, for example: app-0.http : 8081 app.http : 8080 # app.https : 8443 web.http : 8080 # web.https : 8443 一部抜粋(変更後) # Use overrides for individual server control, for example: app-0.http : 8081 app.http : 80 # app.https : 443 web.http : 80 # web.https : 443
- resin-adminアカウントの設定
# /var/lib/resin/bin/resinctl generate-password admin admin admin_user : admin admin_password : {SSHA}NZH00SIqXZTqIS8e+MtAXl9ZdqZJvHhv ↑出力結果をコピペ # vi /var/lib/resin/conf/resin.properties 一部抜粋 # Access to /resin-admin and remote CLI is password restricted. # Use "resinctl generate-password" and copy/paste here to set the admin admin_user : admin admin_password : {SSHA}NZH00SIqXZTqIS8e+MtAXl9ZdqZJvHhv
- 最大Heapサイズを変更する。 デフォルトだと256mで起動するが、セットアップ時にHeapエラーになるので変更する。
# vi /var/lib/resin/conf/resin.properties 一部抜粋 # Arg passed directly to the JVM jvm_args : -Xmx1024m -XX:MaxPermSize=256m # jvm_mode : -server # Local URLs for the watchdog to check to ensure the server is up,
solrのインストール
# cd # wget http://www.intra-mart.jp/download/product/iap/im_contents_search/solr_setup.zip # mkdir solr # cd solr # unzip ../solr_setup.zip # ./setup.sh # ./setup.sh resin # cp -r dist/resin/resin/* /var/lib/resin/ # vi /var/lib/resin/conf/resin.xml dist/resin/env-entry.txtの内容を</resin>の前に追記 ----- <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>./solr</env-entry-value> </env-entry> -----
- 起動設定
# service resin start # chkconfig resin on
cassandraのインストールと起動設定
# cd # wget http://archive.apache.org/dist/cassandra/1.1.12/apache-cassandra-1.1.12-bin.tar.gz # tar zxvf apache-cassandra-1.1.12-bin.tar.gz # mkdir -p /var/log/cassandra # mkdir -p /var/lib/cassandra # mkdir -p /opt/cassandra # cp -r apache-cassandra-1.1.12/* /opt/cassandra/ # vi /etc/init.d/cassandra ----- #!/bin/bash # chkconfig: 2345 99 01 # description: Cassandra . /etc/rc.d/init.d/functions CASSANDRA_HOME=/opt/cassandra CASSANDRA_BIN=$CASSANDRA_HOME/bin/cassandra CASSANDRA_NODETOOL=$CASSANDRA_HOME/bin/nodetool CASSANDRA_LOG=/var/log/cassandra/cassandra.log CASSANDRA_PID=/var/run/cassandra.pid CASSANDRA_LOCK=/var/lock/subsys/cassandra PROGRAM="cassandra" if [ ! -f $CASSANDRA_BIN ]; then echo "File not found: $CASSANDRA_BIN" exit 1 fi RETVAL=0 start() { if [ -f $CASSANDRA_PID ] && checkpid `cat $CASSANDRA_PID`; then echo "Cassandra is already running." exit 0 fi echo -n $"Starting $PROGRAM: " daemon $CASSANDRA_BIN -p $CASSANDRA_PID >> $CASSANDRA_LOG 2>&1 usleep 500000 RETVAL=$? if [ $RETVAL -eq 0 ]; then touch $CASSANDRA_LOCK echo_success else echo_failure fi echo return $RETVAL } stop() { if [ ! -f $CASSANDRA_PID ]; then echo "Cassandra is already stopped." exit 0 fi echo -n $"Stopping $PROGRAM: " $CASSANDRA_NODETOOL -h 127.0.0.1 decommission if kill `cat $CASSANDRA_PID`; then RETVAL=0 rm -f $CASSANDRA_LOCK echo_success else RETVAL=1 echo_failure fi echo [ $RETVAL = 0 ] } status_fn() { if [ -f $CASSANDRA_PID ] && checkpid `cat $CASSANDRA_PID`; then echo "Cassandra is running." exit 0 else echo "Cassandra is stopped." exit 1 fi } case "$1" in start) start ;; stop) stop ;; status) status_fn ;; restart) stop start ;; *) echo $"Usage: $PROGRAM {start|stop|restart|status}" RETVAL=3 esac exit $RETVAL ----- # chmod +x /etc/init.d/cassandra
ちなみに、このまま動かすと、
# /opt/cassandra/bin/cassandra -f xss = -ea -javaagent:/opt/cassandra/bin/../lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms934M -Xmx934M -Xmn200M -XX:+HeapDumpOnOutOfMemoryError -Xss180k The stack size specified is too small, Specify at least 228k Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
みたいな感じでスタックサイズが小さいとしかられたので228kに変更
# vi /opt/cassandra/conf/cassandra-env.sh ----- if [ "`uname`" = "Linux" ] ; then # reduce the per-thread stack size to minimize the impact of Thrift # thread-per-client. (Best practice is for client connections to # be pooled anyway.) Only do so on Linux where it is known to be # supported. # u34 and greater need 180k JVM_OPTS="$JVM_OPTS -Xss228k" ← ここ fi ----- # service cassandra start #chkconfig cassandra on
imartのデプロイ
warはIM社のあれで作る。
# /var/lib/resin/bin/resinctl deploy imart.war