Установка Apache Cassandra в Unix/Linux

Установка 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» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.