Примечание куратора: это сообщение с 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 в облаке, не покидая комфорт вашего ноутбука. То, что вы будете делать с этим кластером, зависит от вас, но я дам вам несколько идей о том, что вы могли бы сделать в будущих публикациях.