
Установка Apache Cassandra в Unix/Linux
Apache Cassandra — это распределённая noSQL система для управления БД которая позволяет создавать высоко- нагруженные и масштабируемые, а так же надежные хранилища больших массивов с данными в виде хэшей. Данный проект, в свое время разрабатывался в компании Facebook ( до 2009 года), после чего был передан на разработку и поддержку Apache Software Foundation которая и продолжает развитие Cassandra. Данное ПО используют такие гиганты как Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Apple и Twitter.
Установка Apache Cassandra в Unix/Linux
Чтобы использовать Cassandra для своих целей, для начала стоит установить JAVA. Я приводил несколько толковых статей по этой теме:
Установка JAVA (JDK) на CentOS/RHEL/Fedora
Установка JAVA 9 (JDK9) на Debian/Ubuntu/LinuxMint
Установка Java на Debian/Ubuntu/Mint
Узнать размер Java Heap Memory Size
Установка переменных JAVA_HOME / PATH в Linux
Устанавливаем java и переходим к установке Apache Cassandra.
Установка Apache Cassandra на CentOS/Fedora/RedHat
Имеется несколько способов установить данное программное обеспечение.
-===СПОСОБ 1 — использование apache cassandra репозитория ===-
Создаем репо-файл:
# vim /etc/yum.repos.d/cassandra.repo
Прописываем:
[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS
Устанавливаем:
# sudo yum install cassandra -y
Запустить можно так:
# service cassandra start
Или, если используете CentOS 7, то выполняем:
# systemctl start cassandra
Добавляем в автозагрузку ОС:
# chkconfig cassandra on
Для CentOS 7, используем:
# systemctl enable cassandra
Установка завершена.
-===СПОСОБ 2 — использование datastax репозитория===-
Создаем репо-файл:
# vim /etc/yum.repos.d/datastax.repo
И прописываем в него:
[datastax] name = DataStax Repo for Apache Cassandra baseurl = http://rpm.datastax.com/community enabled = 1 gpgcheck = 0
Легко можно изменить baseurl на более новый ( если есть необходимость использовать самое новое ПО):
baseurl = http://rpm.datastax.com/datastax-ddc/3.9
Это как пример того что можно сделать! (Но тогда нужно выполнить установку следующим образом — yum install datastax-ddc)
Смотрим какие версии Cassandra имеются в репозитории:
# yum list dsc2*
И получаем:
dsc20.noarch 2.0.17-1 datastax dsc21.noarch 2.1.15-1 datastax dsc22.noarch 2.2.8-1 datastax
PS: Чтобы увидеть все версии ПО, выполните:
$ yum list dsc*
Так же, я установлю вспомогательные утилиты, чтобы увидеть поддержку, выполните:
$ yum list cassandra*-tools
И так, последняя версия в репозитории — 3.0 и выполняем установку:
# yum install dsc30 cassandra30-tools -y
Запускаем кассандру:
# service cassandra start Starting Cassandra: OK
Или, если используете CentOS 7, то выполняем:
# systemctl start cassandra
Добавляем в автозагрузку ОС:
# chkconfig cassandra on
Для CentOS 7, используем:
# systemctl enable cassandra
Установка завершена. Как настроить и как использовать, я расскажу ниже.
Для удаления, используем:
# yum remove dsc30 cassandra30-tools -y
Настройка Apache Cassandra
И так:
- Каталог с конфигурациями, находится — /etc/cassandra/
- Каталог с данными — /var/lib/cassandra
- Каталос с логами — /var/log/cassandra/
-===СПОСОБ 3 — использование готового ПО===-
Смотрим раздел — Установка Apache Cassandra на другие Unix/Linux
-===СПОСОБ 4 — использование исходного кода ===-
Используем исходный код который можно получить:
$ git clone http://git-wip-us.apache.org/repos/asf/cassandra.git
Инструкция по сборке будет в репозитории.
Установка Apache Cassandra на Debian/Ubuntu
Имеется несколько способов установить данное программное обеспечение.
-===СПОСОБ 1 — использование apache cassandra репозитория ===-
И так, добавляем репозиторий:
# echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
Добавьте ключи хранилища Apache Cassandra можно так:
$ curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
Обновляем репу:
# apt-get update
И выполняем установку:
$ sudo apt-get install cassandra
-===СПОСОБ 2 — использование datastax репозитория===-
И так, добавляем репозиторий:
$ echo "deb http://debian.datastax.com/community stable main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
Добавляем ключ для DataStax репозитория:
$ curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -
Выполняем обновление репозитория:
# apt-get update -y
И выполняем установку:
# apt-get install dsc22=2.2.8-1 cassandra=2.2.8
PS: Как по мне, лучшее решение, — это использовать репозиторий от официального сайта:
$ echo "deb http://www.apache.org/dist/cassandra/debian 310x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
Добавим ключ для Apache Cassandra репозитория:
$ curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
Загружаем ключ:
# apt-key adv --keyserver pool.sks-keyservers.net --recv-key A278B781FE4B2BDA
Обновляем репозиотрий и устанавливаем кассандру:
# apt-get update -y && apt-get install cassandra -y
Поскольку, Debian автоматически запустет службу Cassandra, вы должны остановить сервер и очистить данные:
# service cassandra stop
И, удаляем все данные:
# rm -rf /var/lib/cassandra/data/system/*
И запускаем заново:
# service cassandra start
Чтобы добавить Cassandra в автозапуск ОС, используем команду:
# update-rc.d cassandra defaults
Установка завершена. Как настроить и как использовать, я расскажу ниже.
-===СПОСОБ 3 — использование готового ПО===-
Смотрим раздел — Установка Apache Cassandra на другие Unix/Linux
-===СПОСОБ 4 — использование исходного кода ===-
Используем исходный код который можно получить:
$ git clone http://git-wip-us.apache.org/repos/asf/cassandra.git
Инструкция по сборке будет в репозитории.
Установка Apache Cassandra в Mac OS X
Для начала, подключаем ( устанавливаем) homebrew:
Установка brew на Mac OS X
Для поиска пакетов, используем:
$ brew search cassandra
У меня получился следующий вывод:
cassandra cassandra@2.1 cassandra@2.2
Для установки используем:
$ brew install cassandra
Установка Apache Cassandra на другие Unix/Linux
-===СПОСОБ 1 — использование исходного кода===-
Используем исходный код который можно получить:
$ git clone http://git-wip-us.apache.org/repos/asf/cassandra.git
Инструкция по сборке будет в репозитории.
-===СПОСОБ 1 — использование исходного кода в архиве===-
Скачиваем утилиту:
# cd /usr/local/src && wget http://apache.cp.if.ua/cassandra/3.10/apache-cassandra-3.10-bin.tar.gz
Распакуем архив:
# tar -zxvf apache-cassandra-3.10-bin.tar.gz
Перемещаем содержимое папки:
# mv /usr/local/src/apache-cassandra-3.10 /usr/local/cassandra
Пропишем переменное окружение, для этого открываем:
# vim ~/.bash_profile
И приводим к виду:
export JAVA_HOME=/usr/java/jdk1.8.0_121/ export JRE_HOME=/usr/java/jdk1.8.0_121/jre export CASSANDRA_HOME=/usr/local/cassandra export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:/usr/bin/usr/local/bin:$CASSANDRA_HOME/bin
Настройка Apache Cassandra
Отредактируем файл:
# vim /usr/local/cassandra/conf/cassandra.yaml
После проверки конфигурации эти значения будут установлены в указанные каталоги.
- data_file_directories «/var/lib/cassandra/data»
- commitlog_directory «/var/lib/cassandra/commitlog»
- saved_caches_directory «/var/lib/cassandra/saved_caches»
Создаем папки:
# mkdir /var/lib/cassandra && mkdir /var/log/cassandra
И выставляем права на папки:
# chown -R $USER:$GROUP /var/lib/cassandra && chown -R $USER:$GROUP /var/log/cassandra
Или дайте права на чтение-запись:
# chmod 777 /var/lib/cassandra && chmod 777 /var/log/cassandra
Для запуска, используем команду:
# cassandra -f
Вот и все.
Использование Apache Cassandra в Unix/Linux
Пару минут ждём, пока запустится – и проверяем:
# cqlsh
Получил ошибку:
No appropriate python interpreter found. - Cassandra
Исправлением служит следующее:
Обновить Python до последней версии или как скомпилировать python из исходников
PS: Нужно установить или обновить питон до python2.7! До этого я пробовал 3.4-3.6 версии и они вообще не работали.
Меняем версию python:
Переключить версию python в Unix/Linux
Получил ошибку:
Python Cassandra driver not installed, or not on PYTHONPATH. You might try "pip install cassandra-driver".
Говорится что нужно установить драйвер:
# pip install cassandra-driver cqlsh
PS: Если нет утилиты PIP, выполняем установку:
Установка pip/setuptools/wheel в Unix/Linux
проверяем статус:
# nodetool status
Получаем вывод:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 136.36 KB 256 100.0% ddd50508-a0b1-47b9-922c-50c2fb99e389 rack1
Заходим в оболочку:
$ cqlsh
Вывод:
root@debian:~# cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 2.2.8 | CQL spec 3.3.1 | Native protocol v4] Use HELP for help. cqlsh>
PS: До этого, я получил ошибку:
Connection error: ('Unable to connect to any servers', {'127.0.0.1': error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")})
Исправлением служило:
# vim /etc/cassandra/cassandra-env.sh
Ищем строку:
# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"
Меняем на:
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"
После чего:
# service cassandra restart
И, можно посмотреть сами ошибки:
# cassandra
Собственно, — это решило мою проблему!
Опробуем данную БД:
cqlsh> describe tables; Keyspace system_traces ---------------------- events sessions Keyspace system_auth -------------------- resource_role_permissons_index role_permissions role_members roles Keyspace system --------------- available_ranges size_estimates schema_usertypes compactions_in_progress range_xfers peers paxos schema_aggregates schema_keyspaces schema_triggers batchlog schema_columnfamilies schema_columns sstable_activity schema_functions local "IndexInfo" peer_events compaction_history hints Keyspace system_distributed --------------------------- repair_history parent_repair_history cqlsh>
Вот и все, тема «Установка Apache Cassandra в Unix/Linux» завершена.