忘れがちなことを、つらつらと...

俺的備忘録を公開してみるテスト

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

アプリケーションサーバーのインストール

  • javaの開発ツールとOpenSSLをインストール OracleJDKの最新をダウンロードしておく
# 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