1

Я пытаюсь настроить кластер CouchDB с некоторыми малинами Pi для проекта краевых вычислений. Но все, что я делал до сих пор, не увенчалось успехом. Я не работаю с кластером.Настройка CouchDB 2.0 Cluster

Это то, что я сделал: Я последовал за руководство по установке от http://docs.couchdb.org/en/2.0.0/install/unix.html#

в сочетании с: https://medium.com/linagora-engineering/setting-up-a-couchdb-2-cluster-on-centos-7-8cbf32ae619f#.eopseqi4h

  1. Установка зависимостей - работала без ошибок
  2. ./configure - работала без ошибок
  3. make release - работал без Ошибка

  4. После руководства: Добавить CouchDB пользователь:

    adduser --system --no-create-home --shell /bin/bash --group --gecos 
    "CouchDB Administrator" couchdb 
    

    работала без ошибок

  5. mv rel/couchdb /usr/local/ - работала без ошибок

  6. chown -R couchdb:couchdb /usr/local/couchdb - не работает в первую очередь - не любимые темы и couchdb - добавлена ​​группа
  7. изменено имя узла в/usr/local/couchdb/etc/vm.арг: -name n1.couch.local добавил -kernel inet_dist_listen_min 9100 и -kernel inet_dist_listen_max 9200 - не получилось - изменено на CouchDB @ lokalny_host

  8. уставившись дб

    su - couchdb 
    cd /usr/local/couchdb 
    ./bin/couchdb 
    

    -didn't работа для меня в первую очередь, су PW - Ошибка аутентификации - переключился пользователя по sudo su и su - couchdb

  9. дб начинается - работает, но бросает ошибку (проигнорировано ошибку сейчас, потому что БД работает):

    [error] 2017-02-17T12:34:26.672758Z [email protected] emulator ------  
    -- Error in process <0.354.0> on node '[email protected]' with exit 
    value: {database_does_not_exist, 
    [{mem3_shards,load_shards_from_db,"_users", 
    [{file,"src/mem3_shards.erl"},{line,327}]}, 
    {mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"}, 
    {line,315}]},{mem3_shards,load_shards_from_disk... 
    [notice] 2017-02-17T12:34:26.672918Z [email protected] <0.353.0> ---- 
    ---- chttpd_auth_cache changes listener died database_does_not_exist 
    at mem3_shards:load_shards_from_db/6(line:327) <= 
    mem3_shards:load_shards_from_disk/1(line:315) <= 
    mem3_shards:load_shards_from_disk/2(line:331) <= 
    mem3_shards:for_docid/3(line:87) <= fabric_doc_open:go/3(line:38) <= 
    chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:187) <= 
    chttpd_auth_cache:listen_for_changes/1(line:134) 
    
  10. готовили два Raspberry Pi (2 CouchDB узлы) для режима кластера:

    curl -X PUT http://127.0.0.1:5984/_node/[email protected]/ 
    _config/admins/admin -d '"conmonmrp"'` 
    
    • Ответ:

      "-pbkdf2-9ec43ace4195ee45a37773c9dfc2aba9380468cb, cddfb98dd1b2416dea2b53dc9fe9a31b, 10"

    и

    `curl -X PUT http://127.0.0.1:5984/_node/[email protected]/ 
    _config/chttpd/bind_address -d '"0.0.0.0"'` 
    
    • Ответ: "0.0.0.0"

    кажется, что команды были приняты

  11. Пошел на локальном хосте: 5984/_utils/и попытался настройки кластера - введены учетные данные (не изменился IP и порт) и добавил другой узел по IP (сетевой IP, т.е. 10.228.101.210), создал кластер для завершения настройки - fauxton принял это без ошибки.

  12. пытается получить все узлы в кластере с помощью локального хоста: 5984/_membership/Результаты в:

    {"all_nodes":["[email protected]"],"cluster_nodes":  
    ["[email protected]","[email protected]"]}` 
    
  13. пытается добавить базу данных на одном узле и увидеть его на другой не работает

Я действительно новичок в этой вещи CouchDB вообще, но мне нужно запустить этот кластер. Надеюсь, мое описание помогает найти проблему. В целом у меня появилось чувство, что я не могу или не понимаю, что это важно.

С наилучшими пожеланиями из Гамбурга, DE

+0

Я использую Bigcouch, но я думаю, что это то же самое.Вы должны настроить кластеризацию/_membership на порт 5986. Вот как узлы разговаривают друг с другом. 5984 - это передний конец и выглядит просто как обычный диван, независимо от того, что происходит в задней части. – fred

+0

спасибо за ваш ответ. Проблемой было имя -name в xm.args. Я не изменил его, поэтому проблема @localhost была проблемой. После того, как я изменил это, теперь все работает отлично. – bginnHH

ответ

2

После того, как некоторые проблемы с настройкой кластера, друг нашел проблему. Необходимо изменить имя узла в файле /couchdb/etc/vm.args. Поскольку я читаю в другом посте, это незаконно называть его @localhost. Я изменил это на IP-адрес устройства.

После этого все работает отлично для меня сейчас.

+0

Я нахожусь в bigcouch, поэтому может быть немного иначе, но вам не нужно добавлять '@ somedomain'. Couch/Bigcouch работает на Erlang, а Erlang использует EPMD, который автоматически определяет имя домена узлов и добавляет это. Это предполагает, что вы используете режим -sname (короткие имена), который я использую. Если вы не используете имена -sname erlang, вам нужно добавить '@ somedomain'. Если ваш local.ini указывает '-sname', вы используете короткие имена. Если он использует '-name', то он использует длинные имена (например,' @ somedomain') http://erlang.org/doc/reference_manual/distributed.html – fred

+0

Спасибо большое, это сработало! Я ломаю голову над этим в течение последних двух дней. Вы заслуживаете гораздо большего роста :). –

0

Помните также, что при настройке кластера и поиске проблем при добавлении или перезапуске и т. Д. Убедитесь, что ваш «cookie» не имеет пробелов.