Author Archive

Добавление новой ноды в Chef Server

knife bootstrap {{address}} --ssh-user {{user}} --ssh-password '{{password}}' --sudo --use-sudo-password --node-name node1

From your workstation, run this command to bootstrap your node. Replace {{address}} with your remote node’s external address, {{user}} with your username, and {{password}} with your password.

Удаленный запуск chef-client

knife ssh 'name:mynode' 'sudo chef-client'

Docker: создание локального репозитория образов

Если есть зоопарт контейнеров и нужно постоянно запускать новые, то не мешало бы иметь какой то прокси, чтоб каждый раз не тягать их из интернета
Запускаем свой Registry

docker run -d \
    -e STANDALONE=false \
    -e MIRROR_SOURCE=https://registry-1.docker.io \
    -e MIRROR_SOURCE_INDEX=https://index.docker.io \
    -p 5000:5000 \
    registry

Правим настройки клиентов в /etc/default/docker

--registry-mirror=http://<my-docker-mirror-host>

Docker: установка в Ubuntu/Mint

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы
Ставим на Linux Mint 17.2

wget -qO- https://get.docker.com/ | sh

Поставит все само
Read more

Hadoop: OutOfMemory при запуске hadoop-balancer

При запуске балансера он вылетает через десяток секунд с ошибкой

2015-07-16 11:55:13,271 WARN org.apache.hadoop.hdfs.server.balancer.Dispatcher: Dispatcher thread failed
java.lang.OutOfMemoryError: unable to create new native thread

Read more

Hadoop – балансировка распределения блоков по кластеру

Балансировка блоков
Новые узлы могут быть напрямую доабвлены в кластер. На новом узле должна быть установлена та же версия Hadoop с той же конфигурацией, как в кластере (conf/hadoop-site.xml). Запуск демона DataNode заставит соединиться с NameNode и присоединиться к кластеру. (Также новый узел должен быть добавлен в файл slaves на главном сервере, чтобы сообщить мастеру, как вызвать команды на базе скрипта на новый узел.)
Но изначально у нового DataNode нет в себе данных; и поэтому свободное место зависит от существующих узлов. Новые файлы будут храниться на новом DataNode в дополнение к уже существующим, но для оптимального использования хранилище должно быть равномерно сбалансировано между всеми узлами.
Этого можно достичь с автоматическим инструментом балансировки от Hadoop. Класс Balancer будет разумно распределять блоки между узлами для достижения равномерного распределения блоков, начиная с определенного отправного пункта, выражая значение в процентах. (По умолчанию — 10%) Меньшее процентное содержание делает узлы более равномерно сбалансированными, но может потребовать больше времени на достижение этого состояния. Идеальная балансировка (0%) нежелательна к применению.
Скрипт балансировки может быть запущен путем старта bin/start-balancer.sh в каталоге Hadoop. Скрипт может обеспечить начало балансирующего процентного содержания, используя параметр -threshold ; например, bin/start-balancer.sh -threshold 5. Балансировщик автоматически закроется, когда достигнет своей цели, или когда случится ошибка, или когда не сможет найти больше перемещаемых блоков для улучшения баланса. Также балансировщик может быть безопасно выключен администратором, через запуск bin/stop-balancer.sh.
Скрипт балансировки может быть запущен когда никто больше не использует кластер (скажем, ночью), но также может быть запущен в модели «online», когда выполняется много иных задач. Чтобы предотвратить использование процессом ребалансировки всей ширины канала, тем самым значительно снижая производительность других процессов кластера, параметр конфигурации dfs.balance.bandwidthPerSec может использоваться для ограничения числа байт в секунду, которые может выделять каждый узел на восстановление равновесия.

HDFS: указание количества реплик

Для изменения количества реплик файла или каталога можно воспользоваться такой командой

hadoop fs -setrep -R 3 /dir/

где
-R – рекурсивно
3 – количество реплик(копий)
/dir/ – каталог, можно указать файл

Ищем отличия в двух xml файлах

diff -Bw <(xmllint --c14n server.xml) <( xmllint --c14n server.xml2 )

Chef : invalid number of arguments in “server_name” directive in

Edit /etc/chef-server/chef-server.rb and add these lines (create the file if it doesn’t exist):

server_name = "THE PUBLIC IP OF YOUR INSTANCE"
api_fqdn server_name
nginx['url'] = "https://#{server_name}"
nginx['server_name'] = server_name
lb['fqdn'] = server_name
bookshelf['vip'] = server_name

After:

chef-server-ctl reconfigure

XML парсер на Ruby

Парсить XML можно с помощью библиотеки Nokogiri
http://www.nokogiri.org/tutorials/searching_a_xml_html_document.html
Ставим Ruby-dev

aptitude install ruby-dev
wget http://production.cf.rubygems.org/rubygems/rubygems-1.5.0.tgz
tar xvf rubygems-1.5.0.tgz
cd rubygems-1.5.0
sudo ruby setup.rb
gem install optparse-command

А после Nokogiri
gem install nokogiri

HAProxy с поддержкой SSL

Поддержка SSL появилась в HAProxy 1.5
Эта версия для Ubuntu/Debian доступна с такого репозитория

sudo apt-add-repository ppa:vbernat/haproxy-1.5
 
sudo apt-get update
 
sudo apt-get install haproxy

java.lang.OutOfMemoryError: Java heap space

В Tomcat7:

cat /etc/init.d/tomcat7
.....
if [ -z "$JAVA_OPTS" ]; then
	JAVA_OPTS="-Djava.awt.headless=true -Xmx2048M -Xms1024M"
fi
......