Статьи

Как быстро запустить кластер Cassandra на Amazon EC2

Примечание куратора: это сообщение с 2011 года, поэтому прокомментируйте, если увидите какие-либо детали, которые необходимо обновить!

Сегодняшнее рабочее место

Если вы читали мой предыдущий пост « Map-Reduce With Ruby Using Hadoop », то вы будете знать, что запустить кластер Hadoop действительно просто, когда вы используете Whirr. Даже не имея ssh’ing на машинах в облаке, вы можете запустить кластер и взаимодействовать с ним. В этом посте я покажу вам, что запустить кластер Cassandra на Amazon EC2 также просто.

Установить Whirr

Я пройду через настройку Whirr довольно быстро. Все необходимые вам команды находятся здесь, но если вы хотите более подробного объяснения, тогда смотрите мой другой пост « Map-Reduce With Ruby Using Hadoop ».

Я предполагаю, что у вас установлен Homebrew .

sudo brew update
sudo brew install maven
mkdir ~/src/cloudera
cd ~/src/cloudera
wget http://archive.cloudera.com/cdh/3/whirr-0.1.0+23.tar.gz
tar -xvzf whirr-0.1.0+23.tar.gz
cd whirr-0.1.0+23
mvn clean install
mvn package -Ppackage

Будьте терпеливы с вышеизложенным. Существует много для установки, так что это займет некоторое время. Maven устанавливает много зависимостей, если вы используете его впервые.

Хорошая новость заключается в том, что с этого момента вы можете легко запускать кластер Amazon EC2 для Cassandra или Hadoop, если хотите.

Конфигурационный файл Whirr

Нам нужно будет сделать файл конфигурации для Whirr, чтобы сообщить ему, что мы хотим запустить кластер Cassandra с 3 узлами. Если вы храбры, терпеливы и у вас есть деньги, то вы можете так же легко запустить кластер из 100 узлов (если это так, оставьте комментарий — могут быть призы!).

Вам нужно будет создать файл cassandra.properties со следующим содержимым…

whirr.service-name=cassandra
whirr.cluster-name=mycassandracluster
whirr.instance-templates=3 cassandra
whirr.provider=ec2
whirr.identity=<YOUR_AMAZON_EC2_ACCESS_KEY_ID_GOES_HERE>
whirr.credential=<YOUR_AMAZON_EC2_SECRET_ACCESS_KEY_GOES_HERE>
whirr.private-key-file=${sys:user.home}/.ssh/id_rsa

Замените очевидные поля идентификатором ключа доступа Amazon EC2 и секретным ключом доступа Amazon EC2.

Запустите свой кластер

Теперь вы готовы запустить свой кластер Cassandra. Просто используйте следующую команду и будьте готовы подождать 5-10 минут, пока Amazon собирает ваши машины. Это время является переменным. Иногда Amazon быстрый, иногда не такой быстрый.

bin/whirr launch-cluster --config cassandra.properties


Launching mycassandracluster cluster
Configuring template
Starting 3 node(s)
Nodes started: [[id=us-east-1/i-13f25e7f, providerId=i-13f25e7f, tag=mycassandracluster, name=null, location=[id=us-east-1d, scope=ZONE, description=us-east-1d, parent=us-east-1], uri=null, imageId=us-east-1/ami-74f0061d, os=[name=null, family=amzn-linux, version=2010.11.1-beta, arch=paravirtual, is64Bit=true, description=amazon/amzn-ami-2010.11.1-beta.x86_64-ebs], userMetadata={}, state=RUNNING, privateAddresses=[10.204.99.163], publicAddresses=[50.16.155.106], hardware=[id=t1.micro, providerId=t1.micro, name=t1.micro, processors=[[cores=1.0, speed=1.0]], ram=630, volumes=[[id=vol-1657d47e, type=SAN, size=null, device=/dev/sda1, durable=true, isBootDevice=true]], supportsImage=hasRootDeviceType(ebs)]], [id=us-east-1/i-17f25e7b, providerId=i-17f25e7b, tag=mycassandracluster, name=null, location=[id=us-east-1d, scope=ZONE, description=us-east-1d, parent=us-east-1], uri=null, imageId=us-east-1/ami-74f0061d, os=[name=null, family=amzn-linux, version=2010.11.1-beta, arch=paravirtual, is64Bit=true, description=amazon/amzn-ami-2010.11.1-beta.x86_64-ebs], userMetadata={}, state=RUNNING, privateAddresses=[10.117.43.129], publicAddresses=[50.16.85.79], hardware=[id=t1.micro, providerId=t1.micro, name=t1.micro, processors=[[cores=1.0, speed=1.0]], ram=630, volumes=[[id=vol-1457d47c, type=SAN, size=null, device=/dev/sda1, durable=true, isBootDevice=true]], supportsImage=hasRootDeviceType(ebs)]], [id=us-east-1/i-11f25e7d, providerId=i-11f25e7d, tag=mycassandracluster, name=null, location=[id=us-east-1d, scope=ZONE, description=us-east-1d, parent=us-east-1], uri=null, imageId=us-east-1/ami-74f0061d, os=[name=null, family=amzn-linux, version=2010.11.1-beta, arch=paravirtual, is64Bit=true, description=amazon/amzn-ami-2010.11.1-beta.x86_64-ebs], userMetadata={}, state=RUNNING, privateAddresses=[10.117.46.170], publicAddresses=[184.73.100.203], hardware=[id=t1.micro, providerId=t1.micro, name=t1.micro, processors=[[cores=1.0, speed=1.0]], ram=630, volumes=[[id=vol-e857d480, type=SAN, size=null, device=/dev/sda1, durable=true, isBootDevice=true]], supportsImage=hasRootDeviceType(ebs)]]]
Authorizing firewall
Running configuration script
Completed launch of mycassandracluster
Started cluster of 3 instances
Cluster{instances=[Instance{roles=[cassandra], publicAddress=/50.16.85.79, privateAddress=/10.117.43.129}, Instance{roles=[cassandra], publicAddress=/50.16.155.106, privateAddress=/10.204.99.163}, Instance{roles=[cassandra], publicAddress=/184.73.100.203, privateAddress=/10.117.46.170}], configuration={}}

Теперь у вас есть собственный кластер Cassandra, работающий в облаке. Не так сложно, эй!

Подключиться из Ruby

Я буду следовать этому посту с пошаговым руководством о том, как вы можете взаимодействовать с вашим новым кластером из приложения Ruby On Rails. Я рекомендую подписаться на RSS-канал, чтобы получать обновления блога.

Отключить кластер

Вот как вы можете отключить свой кластер.

bin/whirr destroy-cluster --config cassandra.properties

Destroying mycassandracluster cluster
Cluster mycassandracluster destroyed

Вывод

Whirr позволяет легко запускать и останавливать кластер Cassandra в облаке, не покидая комфорт вашего ноутбука. То, что вы будете делать с этим кластером, зависит от вас, но я дам вам несколько идей о том, что вы могли бы сделать в будущих публикациях.