Cassandra选择了无中心的P2P架构,网络中的所有节点都是对等的,它们构成了一个环,节点之间通过Gossip协议每秒钟和至多三个节点交换一次数据,这样每个节点都拥有其它所有节点的信息,包括位置、状态等。为了保证数据交换的准确性,所有的节点必须使用同一份集群列表,这样的节点又被称作seed节点。
本文将使用3台虚拟机搭建集群:
10.153.54.192
10.153.54.193
10.153.54.194
jdk:jdk1.8.0_161
cassandra:cassandra-3.11
搭建Java运行环境
解压jdk
tar zxvf /usr/local/jdk-8u161-linux-x64.tar.gz -C /usr/java/
配置jdk环境变量文件/etc/profile
[root@indics local]
[root@indics local]
[root@indics local]
[root@indics local]
[root@indics local]
[root@indics local]
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
安装Cassandra
解压cassandra,后改名为apache-cassandra-prod
[root@indics-api-08 apache-cassandra-prod]
total 544
drwxr-xr-x 2 root root 4096 Jan 7 2014 bin
-rw-r--r-- 1 root root 4832 Dec 9 2020 CASSANDRA-14092.txt
-rw-r--r-- 1 root root 370550 Dec 9 2020 CHANGES.txt
drwxr-xr-x 3 root root 4096 Nov 4 13:29 conf
-rw-r--r-- 1 root root 17986 Feb 3 2021 createks.cql
-rw-r--r-- 1 root root 1834 Feb 3 2021 createks.sh
drwxr-xr-x 5 root root 45 Nov 3 22:00 data
drwxr-xr-x 4 root root 42 May 19 15:41 doc
drwxr-xr-x 2 root root 29 May 19 15:41 interface
drwxr-xr-x 3 root root 4096 May 19 15:41 javadoc
drwxr-xr-x 4 root root 4096 May 19 15:41 lib
-rw-r--r-- 1 root root 11609 Dec 9 2020 LICENSE.txt
drwxr-xr-x 2 root root 62 Nov 3 22:00 logs
-rw-r--r-- 1 root root 113742 Dec 9 2020 NEWS.txt
-rw-r--r-- 1 root root 2811 Dec 9 2020 NOTICE.txt
drwxr-xr-x 3 root root 90 May 19 15:41 pylib
drwxr-xr-x 4 root root 4096 May 19 15:41 tools
[root@indics-api-08 apache-cassandra-prod]
修改cassandra配置文件 conf/cassandra.yaml
集群名称
修改集群名称:cluster_name: Cassandra-cluster’
cluster_name: 'Cassandra-cluster'
数据存储目录
如果不设置的话,默认在环境变量的目录下;如果设置目录,该目录一定要存在。
data_file_directories:
- /data/cassandra/data
提交日志目录
commitlog_directory:
- /data/cassandra/commitlog
saved_caches_directory: /data/cassandra/saved_caches
种子节点
种子节点可配置多节点,中间使用逗号隔开,这里使用 10.153.58.192作为种子节点。
seeds: “10.153.58.192”
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "10.153.58.192"
监听地址
配置为当前服务器ip,rpc_address 和 listen_address一样填写当前服务器ip
listen_address: 10.153.58.192
broadcast_address: 10.153.58.192
rpc_address: 10.153.58.192
broadcast_rpc_address: 10.153.58.192
修改jvm大小 conf/jvm.options
根据当前虚机内存修改
-Xms16G
-Xmx16G
配置cassandra环境变量
vim /etc/profile 添加如下
export CASSANDRA_HOME=/data/cassandra
export PATH=$PATH:$JAVA_HOME/bin:$CASSANDRA_HOME/bin:$SYS_SH/bin
export CQLSH_HOST=10.153.58.192
export CQLSH_PORT=9042
./bin/cassaandra -R
18506, 2634169534074999810, 6612719922021534274, -155944934675188714, -2282493852026041530, 6819625517287130096, 3740837535780110746, -7957261670897522845
, 6505751970006179508, -2904834925817926177, 640442872803290314, 515424423439039065, 6018733852448069840, 1990018211401316014, 3186329496090899774, -21652
36144781541727, -6855626646116936353, -5623251552321159850, 2267332447098900413, -7470125253475170004, -4883715623609663199, 8722750050957098252, 41806530
509965111, 7878202023969703432, 2520689853196645755, 8494522861940088094, -9101028288156420668, -1048198256013426364, 2391692976693317011, 837978868054880
9953, 1678335333329287801, 3120837699696315172, 1375302753675295701, 7551493173302415488, -1282663208532909192, -5855948155734809093, 8120945662497963406,
-2276913016968066643, 2763958832628515411, -8287891182085877261, 1240633823749746019, 4615851547350441986, 3920831583868429363, -1152390796799615052, -44
7582189623056030, -9157698641132676856, 2923533489760496581, -8542723200433815784, 3287763223116597434, -4316416827454696059, 1134866204684812797, 6673325
653943387230, -4032952297351746456, -1015563868884020482, -2558922024917606340, 6738258407875866252, -2452219687274339974, -646258590599762657, 2621500792
343827990, 849352837624378067, -7985833353498175490, 7350025920274563380, 8996914469682605993, 7751010979326527336, 3433409965412539974, 10650013122835065
08, -8477913348162693286, 1844808214862049478, -4763867388504512345, 5076421201406909889, 4181096181277293461, 3692591647422336797, -2659235142433405396,
5642688194882881166, 5545174181701136922, 5206090484278254058, -2887920926776382631, 2725829207837714672, -8523962104108150722, 4884656965625494082, -9208
293335690690853, -1730939643175634646, -2386460598382340816, 8467463405740643069, 7878554426732827545, -8469755931982633482, 2300473992712988179, -3135572
009036119130, 3020697346159414176, 994836380702900086, -3310819899005358309, 8767314907118743215, -7290495770357446002, -300889276369525275, -190546882504
7896052, -1963347047251061621, -547353654746782933, -2480096603881258471, 7859670493616723409, 434555178269532281, 2492275572859771035, -46743798388799465
20, -7616362614301461788, -7543999509392275954, -2506762804356195264, -6749688044689476512, 5667995576862543844, 4679787675464932702, -3629840514393877711
, 5286737603051878897, -8652984319953046856, 5386525969511421400, -2920322377409788407, 5186325316905785534, 5535516924953793636, 5840851054824218411, 615
7873393114362324, -7003929806696429094, 3721465152441497029, -4555916000028518796, -2110341114204473790, 8925319565271216679, 1600661181621756239, 7552803
832482312550, -3857389259965497295, 3245806889285645243, 1601671475677832408, -4993514195311085670, 6475099582098616485, 4410853712192196017, 443667005253
7343134]
INFO [main] 2021-11-03 22:01:01,908 StorageService.java:1521 - JOINING: sleeping 30000 ms for pending range setup
INFO [main] 2021-11-03 22:01:31,908 StorageService.java:1521 - JOINING: Starting to bootstrap...
INFO [main] 2021-11-03 22:01:32,089 StreamResultFuture.java:90 - [Stream
INFO [StreamConnectionEstablisher:1] 2021-11-03 22:01:32,092 StreamSession.java:267 - [Stream
o /10.153.58.193
INFO [StreamConnectionEstablisher:1] 2021-11-03 22:01:32,098 StreamCoordinator.java:270 - [Stream
stream session with /10.153.58.193
INFO [STREAM-IN-/10.153.58.193:7000] 2021-11-03 22:01:32,191 StreamResultFuture.java:187 - [Stream
0.153.58.193 is complete
INFO [StreamConnectionEstablisher:2] 2021-11-03 22:01:32,206 StreamSession.java:267 - [Stream
o /10.153.58.192
待所有节点启动完成后, 使用 ./bin/nodetool status 命令查看各个节点状态
[root@indics-api-08 bin]
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 10.153.58.193 618.82 KiB 256 33.8% d9de5ed2-3f50-4e6a-a473-d487461d69ba rack1
UN 10.153.58.192 1023.64 KiB 256 31.1% e362a33b-6948-40b4-b411-8c46081ce943 rack1
UN 10.153.58.194 1.39 MiB 256 35.1% c892f966-e7cb-42c6-801b-213233ea16e0 rack1
至此Cassandra集群搭建完毕。
若出现如下问题
nodetool status
nodetool: Failed to connect to ‘127.0.0.1:7199’ - URISyntaxException: ‘Malformed IPv6 address at index 7: rmi://[127.0.0.1]:7199’.
JDK改进的IPv6地址解析存在问题,JDK回退到原来行为,输入以下指令:
nodetool -Dcom.sun.jndi.rmiURLParsing=legacy status
1.Cassandra介绍Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据。NoSQl数据库分为4大类,Key-value类型、列存储型、文档类型、图形(Graph)等,而Cassandra为列存储型。Cassandra的特点:弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。数据存储灵活 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可
cassandra集群隔段时间出现rt飙高的问题,带来的影响就是请求cassandra短时间内出现大量超时,这个问题发生已经达到了平均两周一次的频率,已经影响到正常业务了。而出现这些问题的原因主要有以下3点:当初设计表的时候partitionkey设计的不是很合理,当数据量上去(最大的单表行数达到百亿级)之后,出现了一些数据量比较大的partition。单partition最多的数据量达到了上百万行(cassandra不支持mysql的limit
m,n的查询),当查询这
java.net.URISyntaxException: Malformed IPv6 address at index 9: https://[lvzhou-at.h3c.com:31443]/v3/ant/oasishealth
at java.net.URI$Parser.fail(Unknown Source)
at java.net.UR...
今天做客户端想服务端提交信息的时候,报出了如标题所显示的方法
方法以及参数如下:
输入的参数为:http://192.168.1.173:8080/Api/petinfo/petinfo?flag=adopt&json=[{"pettype":"100","petname":"ge"}]
public static InputStream getInputStreamFromUrl(...
使用ftp将apache-cassandra-3.11.8-bin.tar.gz压缩包传输到program文件夹
apache-cassandra-3.11.8: 下载地址
或链接:https://pan.baidu.com/s/1KO_C2x2nDa3QE
cstar是用于命令行的Apache Cassandra集群编排工具。
为什么不简单地使用Ansible或Fabric?
Ansible没有以拓扑感知方式运行事物所需的原语。 可以将C *群集分成多个组,这些组可以安全地并行执行,并且可以一次运行一个组。 但是,除非在每个主机上运行该作业所需的时间几乎完全相同,否则这样的解决方案将以大大降低的并行度运行,更不用说它会太笨拙而无法使用。
不幸的是,Fabric不是线程安全的,因此存在相同类型的限制。 Fabric允许一个人在多台机器上并行运行作业,但与Ansible组的限制类似。 可能同时使用织物和芹菜来完成所需的操作,但这是一个非常复杂的解决方案。
假定所有涉及的机器都是某种类似于UNIX的系统,例如OS X或Linux。 运行cstar的机器必须具有python3,Cassandra主机必须具有Bourne样式的外壳。
Docker上的Cassandra
这是图像和脚本的集合,可帮助您在Docker容器中运行Cassandra。 这些映像非常适合为测试和开发目的提供临时的Cassandra拓扑。
目前支持:
单个Cassandra节点
运行工具的客户端容器,例如cqlsh,nodetool等。
多节点集群-在单个Docker主机上运行
使用OpsCenter监视的群集
如果您想提供帮助,请与我联系,和/或向我发送拉取请求。
Docker的最新版本-请参见
验证docker命令是否有效。 例如,尝试运行“ docker ps”。
构建cassandra和opscenter图像(可选)
./cassandra/build.sh
./opscenter/build.sh
最后一步是可选的,因为如果您还没有Docker,Docker会自动从提取图像。 构建过程需要Internet连
查询了一下没有使用代理
查询是否使用代理:git config --global http.proxy
取消代理:git config --global --unset http.proxy
查看代理依旧存在
$ env|grep -I proxy
http_proxy=127.0.0.1:58895
https_p
cassandra是当下流行的nosql数据库,基于google big table的理论。
这篇文章主要是记录自己搭建cassandra集群的过程,更重要的是监控系统的搭建过程,对这种基础设施来说,没有监控就是裸奔,裸奔就相当与定时炸弹。
1. 集群搭建:
system-info: ubuntu16.04
这里采用de
IPv4地址已接近枯竭,被誉为下一代互联网技术的IPv6成为新的“全球互联网门牌号”,它可以让地球上的每一粒沙子都拥有地址。当下,各国都在加速推进下一代互联网的部署,工信部也互联网服务商提出了IPv6改造的要求,国内的各大互联网厂商都在进行着IPv6的改造,IPv6的改造已迫在眉睫。
那么部署在阿里云容器服务上的应用如何暴露提...
一、Cassandra单节点安装一,Cassandra特点
1,分布式数据存储系统:每个节点都会存放部分数据的一个副本,如果一个节点down掉,另一个副本会相应请求
2,无中心架构:没有节点会承担特殊的管理任务,所有节点功能完全一样,不存在单点失效的问题
3,弹性水平扩展
4,可调节的一致性:数据一致性和性能二者不可兼得,这属于大数据环境下普遍存在的问题,需要做出取舍
5,无schema
当前版本:apache-cassandra-3.0.24,CentOS7,jdk1.8
1. 声明
当前内容主要为本人记录搭建apache cassandra集群,并测试向集群中添加keyspace
主要内容:
搭建集群环境
测试向集群环境中插入keyspace