cassandra 集群

    xiaoxiao2022-06-23  30

    总结一下。 过程很艰难,回头看又发现很简单。 百度和谷歌永远是最好的老师。 感谢网友提供的很多资料。 自己也总结一下。 环境说明。 先试验两台机器。 比如内网IP为192.168.1.2 和 192.168.1.4 在.2上装好后 编辑配置文件

    #种子监听 - seeds: "192.168.1.4,192.168.1.2" 本机的IP地址 listen_address: 192.168.1.2

    参考网上一段

    num_tokens:256 - seeds: "192.168.1.10,192.168.1.9" listen_address: 192.168.1.10 (此处集群不能用localhost,可以设置为空,可能会出错,最好配置与hostname绑定的ip地址) rpc_address: (参考文档设置为0.0.0.0,本文设置为空,如果设置为0.0.0.0,还需要broadcast_rpc_address配置一个值) endpoint_snitch: SimpleSnitch (不用修改,默认即可)

    配置好后启动下试试正常不。参考上篇Cassandra入门

    清除数据文件。rm -rf {path}/cassandra/data/system/* Cassandra安装路径下比如说我的 /usr/local/apache-cassandra-3.7/data/data/system

    拷贝文件到其他节点 注意改文件所有者和读写权限

    scp -r root@host:/目录 /目标目录

    此处 是拷贝到.4的机器上 编辑配置文件

    vim /usr/local/apache-cassandra-3.7/conf/cassandra.yaml #改为本机IP地址 - seeds: "192.168.1.4" listen_address: 192.168.1.4

    检查集群状态

    cd /usr/local/apache-cassandra-3.7/ bin/nodetool status

    如下图有两个节点了。

    在每台机器上检查都是一样的!

    这里关键是配置文件怎么配的问题。 种子节点里配所有集群的IP信息 ,监听自己的IP 其他节点里seeds里配自己的IP 监听自己的IP 如以下这段 种子节点配置

    - seeds: "节点IP1,节点ip2......节点IPN" listen_address: 自己的IP

    其他节点配置

    - seeds: "自己的IP" listen_address: 自己的IP

    注意如果是联通云服务器需要在控制台放行端口7000-9999

    启动 不能像单机时直接启动。 后面需要加上IP地址,如: 在192.168.1.2上可以这样

    bin/cqlsh 192.168.1.4

    再加一台机器试试看

    清空.4机器上Cassandra的数据文件

    rm -rf /usr/local/apache-cassandra-3.7/data/* 保留data 文件即保留/usr/local/apache-cassandra-3.7/data/data 貌似这个文件没有启动会报错 忘记了删除时保留文件命令。直接全部删除再重建的。再改所有者和读写权限 chown cassandra:cassandra data

    从.4拷贝文件到.5机器上 scp -r root@192.168.1.4:/usr/local/apache-cassandra-3.7/ /usr/local/ 确认后会要求输入.4机器的密码

    编辑配置文件修改如下

    - seeds: "192.168.1.5" listen_address: 192.168.1.5

    种子节点监听中添加.5机器

    - seeds: "192.168.1.4,192.168.1.2,192.168.1.5"

    关掉所有机器Cassandra。启动种子节点.2 再启动.4 最后启动.5 网上说顺序没关系

    完全启动后效果如下图 .2和.4机器上提示了.5已经启动。 .2机器上

    .4机器上 .5机器上

    至此安装完成!

    下一步测试性能

    ps:常用操作

    启动 cd /usr/local/apache-cassandra-3.7/ ./cassandra -f 停止 Cassandra: $ ps -ef | grep cassandra $ sudo kill pid 查看集群信息 bin/nodetool status

    参考资料 http://www.2cto.com/database/201508/439291.html http://www.cnblogs.com/valleylord/p/3661991.html http://www.dataguru.cn/thread-509826-1-1.html http://docs.datastax.com/en/cassandra/2.1/cassandra/initialize/initializeSingleDS.html http://www.oschina.net/question/82993_63619

    ———————2017年6月28日16:27:15——————————– 今天再一次装这个cassandra集群的时候遇到一些问题,感觉很有必要记录一下!

    环境:联通云主机

    其实我一直不太清楚的是 种子节点 这个概念 之前尝试主节点上配置所有机器ip 如下配置假设 .2的为主节点

    - seeds: "192.168.1.2,192.168.1.4,192.168.1.5,192.168.1.15"

    然后在其他机器上配置seeds的时候单独配置该机器的 如在.4机器上配的

    - seeds: "192.168.1.4"

    文章上半部分就是这么配的。

    刚实践到 其实配好这个为所有机器的ip,其他机器上不用改这个seeds。只改listen_address和rpc_address为当前机器的ip就可以。 这里也有一个疑问以后新增的机器在这个ip列表里面肯定没有。 所以怀疑只配当前机器ip也是可以的。

    这个地方折腾了好久。浪费了很多时间,希望对阅读这篇文章的童鞋有帮助。 网上有些教程说 改其他节点的seeds为主节点的ip其实是不对的。这样会报错类似 Unable to gossip with any seeds 搜了一下这个错误是说 seed 的ip要和 listen_addres匹配

    其实真正关键的地方是下面防火墙的问题。

    测试的时候 .4和.5主机能看到集群。但是.2和.15的主机死活看不到。后来这折腾了一下联通云后台端口,怀疑是否有端口没打开。才意识到防火墙可能没关。所以两条 service iptables stop 的命令后再重启cassandra。我看到了期待的一幕!心情是激动的!

    注:我每次重启之前都删掉了所有机器下数据文件

    rm -rf /usr/local/apache-cassandra-3.7/data/data/system/*
    转载请注明原文地址: https://ju.6miu.com/read-1123493.html

    最新回复(0)