Rate this post
nn1. Руководство по установке Cassandrann1.1. О серверахnnИмеется 5 серверов в диапазоне IP адресов 192.168.1.200-204. 192.168.1.200-201 — seedsnn1.2. Установка JREnn1.2.1. Создание каталога для javan

mkdir -p /opt/java

1.2.2. Загрузить jre из http://oracle.com и скопировать на серверn

scp jre* user@host:/opt/java/

1.2.3. Распаковка архиваn

cd /opt/java ; tar xvzf jre*tar.gz

1.2.4. Создание ссылок в /usr/binn

update-alternatives --install "/usr/bin/java" "java" /opt/java/jre1.8.0_77/bin/java 1 update-alternatives --set java /opt/java/jre1.8.0_77/bin/java

1.3. Установка Java Native Access (JNA)n

# https://github.com/java-native-access/jna cd /usr/share/java && wget
# https://github.com/java-native-access/jna cd /usr/share/java && wget

1.4. Установка libjemallocn

apt-get install libjemalloc1

1.5. Установка Cassandrann1.5.1. Необходимо отключить swap в fstab иn

swapoff -a

1.5.2. Необходимо, чтоб имя хоста разрешалось либо через DNS, либо через /etc/hostsn

# cat /etc/hostsn127.0.0.1           localhostn127.0.1.1           cassandra-node2

1.5.3. Добавление пользователя для Cassandra nn nn

n

n

adduser cassandra

1.5.4. Загрузка Cassandra из http://cassandra.apache.orgn

su - cassandranmkdir -p cassandra/3.4 && cd cassandra/3.4nwget http://apache.javapipe.com/cassandra/3.4/apache-cassandra-3.4-bin.tar.gz

1.5.5. Распаковка архиваn

tar xzvf apache-cassandra-3.4-bin.tar.gz

1.5.6. Создание ссылки на исполняемый файл JNAn

 ln -s /usr/share/java/jna-4.2.2.jar /home/cassandra/cassandra/3.4/apache-cassandra-3.4/lib/jna.jar

1.5.7. Настройка лимитов /etc/security/limits.confnnЭти настройки можно сделать исходя из аппаратных возможностей сервера, но стартовый скрипт Cassandra сам выделяет память, исходя из её количества.n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

cassandra soft memlock unlimited
cassandra hard memlock unlimited
cassandra soft nproc unlimited
cassandra hard nproc unlimited

n1.5.8. Редактируем ~/cassandra/3.4/apache-cassandra-3.4/conf/cassandra.yamln

cluster_name: 'My Cassandra Cluster' num_tokens: 256nnseed_provider:n-  class_name: org.apache.cassandra.locator.SimpleSeedProvider nparameters:n-  seeds: "192.168.1.200,192.168.1.201"nendpoint_snitch: GossipingPropertyFileSnitch nauthenticator: PasswordAuthenticatornnrpc_address: 0.0.0.0nn#  Эти настройки индивидуальные для каждого сервераnlisten_address: 192.168.1.200 nbroadcast_rpc_address: 192.168.1.200nn#  Настройка каталогов.ndata_file_directories:n- /var/lib/cassandra/datanncommitlog_directory: /var/lib/cassandra/commitlog nsaved_caches_directory: /var/lib/cassandra/saved_cachesnhints_directory: /var/lib/cassandra/hints

1.5.9. Создание каталогов для данных и журналов nn nn

n

n

# mkdir -v /var/{lib,log}/cassandra && chown -v cassandra:cassandra /var/ {lib,log}/cassandra

1.5.10. Редактирование ~cassandra/3.4/apache-cassandra-3.4/conf/logback.xmlnnВозможно, есть другой способ. Заменить все строкиn

 ${cassandra.logdir}

наn

 /var/log/cassandra

Закомментировав эту строку можно отключить DEBUG логn

 <!--         <appender-ref ref="ASYNCDEBUGLOG" />  -->

1.5.11. Редактирование ~cassandra/3.4/apache-cassandra-3.4/conf/cassandra-env.shn

JVM_OPTS="$JVM_OPTS -Xloggc:/var/log/cassandra/gc.log"nJVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"nLOCAL_JMX=nonJVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"

1.6. Проверяем запуск Cassandra и смотрим выводn

 ~/cassandra/3.4/apache-cassandra-3.4$ ./bin/cassandra -f

1.7. Используемые портыn

TCP:7000 - Gossip(междунодовые коммуникации), открыть порт в файерволле для подсети кластераnTCP:7199 - JMX(Java Management)nTCP:9160 - Thrift(взаимодействие с внешними приложениями и фреймворками)

1.8. Запуск Cassandra через systemdnn1.8.1. Делаем ссылку на каталог с исполняемыми файламиnnЭто делается, чтоб не вводить длинные пути. Можно так же добавить в PATHn

cassandra@debian:~$ ln -s /home/cassandra/cassandra/3.4/apache-cassandra-3.4/bin ./

1.8.2. Конфигурация для автоматического создания каталога pid файлаn

cat /etc/tmpfiles.d/cassandra.confnd   /var/run/cassandra   0755 cassandra cassandra

1.8.3. Запуск systemd-tmpfiles nn nn

n

n

#  env SYSTEMD_LOG_LEVEL=debug systemd-tmpfiles --create cassandra.conf /var/run/cassandra created successfully.n#  ls -ld /var/run/cassandrandrwxr-xr-x 2 cassandra cassandra 60 Apr 12 00:45 /var/run/cassandra

1.8.4. Создание systemd конфигурации для запуска демона — cassandra.servicenn

nn1.8.5. Проверка запускаn

# service cassandra startn# service cassandra statusn● cassandra.service - Cassandra databasenLoaded: loaded (/lib/systemd/system/cassandra.service; enabled)nActive: active (running) since Tue 2016-04-12 01:35:14 EEST; 33s agonProcess: 3938 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry INT/15/TERM/15 --pidfile /var/run/cassandra/cassandra.pid (code=exited, status=0/SUCCESS)nMain PID: 4049 (java)nCGroup: /system.slice/cassandra.servicen└─4049 java -Xloggc:/var/log/cassandra/gc.log -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+Hea...n# service cassandra stopn# service cassandra statusn● cassandra.service - Cassandra databasenLoaded: loaded (/lib/systemd/system/cassandra.service; enabled)nActive: failed (Result: exit-code) since Tue 2016-04-12 01:36:51 EEST; 11s agonProcess: 4188 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry INT/15/TERM/15 --pidfile /var/run/cassandra/cassandra.pid (code=exited, status=0/SUCCESS)nProcess: 4049 ExecStart=/home/cassandra/bin/cassandra -p /var/run/cassandra/cassandra.pid -E /var/log/cassandra/errors.log (code=exited, status=143)nMain PID: 4049 (code=exited, status=143)

1.8.6. Включение сервиса и его запускnn nn

n

n

 #  systemctl enable cassandra.servicenn#  service cassandra start

cassandra6nn n

Предоставляем услуги по созданию отказоустойчивых систем, а также их администрированию, дополнительная информация через раздел Контакты.