设置CouchDB 2.0群集

时间:2017-02-17 13:14:34

标签: installation couchdb cluster-computing raspbian couchdb-2.0

我正在尝试使用一些Raspberry Pi为边缘计算项目设置CouchDB集群。但直到现在我所做的一切都没有成功。我没有让群集正常工作。

这就是我所做的: 我按照设置指南进行操作 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.args中的节点名称:-name n1.couch.local添加了-kernel inet_dist_listen_min 9100 -kernel inet_dist_listen_max 9200 - 没有工作 - 已更改回到couchdb @ localhost

  8. 盯着db

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

    -didn首先为我工作,su pw - 身份验证失败 - 由sudo susu - couchdb

  9. 切换用户
  10. db starts - 运行,但抛出错误(暂时忽略错误,因为db正在运行):

    [error] 2017-02-17T12:34:26.672758Z couchdb@localhost emulator ------    
    -- Error in process <0.354.0> on node 'couchdb@localhost' 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 couchdb@localhost <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)
    
  11. 为群集模式准备了两个Raspberry Pi(2个CouchDB节点):

    curl -X PUT http://127.0.0.1:5984/_node/couchdb@localhost/
    _config/admins/admin -d '"conmonmrp"'` 
    
    • 回答:

      &#34; -pbkdf2-9ec43ace4195ee45a37773c9dfc2aba9380468cb, cddfb98dd1b2416dea2b53dc9fe9a31b,10&#34;

    `curl -X PUT http://127.0.0.1:5984/_node/couchdb@localhost/
    _config/chttpd/bind_address -d '"0.0.0.0"'` 
    
    • 回答:"0.0.0.0"

    似乎已接受命令

  12. 访问localhost:5984 / _utils /并尝试设置群集输入的凭据(未更改IP和端口)并通过IP添加另一个节点(网络IP,即10.228.101.210),创建群集以完成设置 - fauxton接受了没有错误。

  13. 尝试通过localhost获取群集中的所有节点:5984 / _membership /结果:

    {"all_nodes":["couchdb@localhost"],"cluster_nodes":     
    ["couchdb@10.228.101.210","couchdb@localhost"]}`
    
  14. 尝试在一个节点上添加数据库并在另一个节点上看到它并不起作用

  15. 我根本不熟悉那个CouchDB,但我需要让这个集群运行起来。我希望,我的描述有助于找到问题所在。总而言之,我有这种感觉,我错过了或者误解了一个重要的观点。

    来自德国汉堡的致以最诚挚的问候

2 个答案:

答案 0 :(得分:3)

在设置群集时出现问题后,一位朋友发现了问题。有必要在/couchdb/etc/vm.args文件中更改节点的名称。正如我在另一篇文章中所读到的,将它命名为@localhost是违法的。我将其更改为设备的IP地址。

在那之后,现在一切正常。

答案 1 :(得分:1)

还要记住,在设置群集并在添加或重新启动时发现问题等时......请确保您的“cookie”没有空格。