1.前言
项目中,使用cassandra存储海量数据。例如,每个5秒上传的路况信息。使用传统的mysql数据库存储,过去一个月,数据量上亿,按设备编号,加时间范围查询,出现大量的慢查询。这样的数据插入后不会修改,应用中只会查询。
2.使用场景
一款分布式的结构化数据存储方案(NoSql数据库),存储结构比Key-Value数据库(像Redis)更丰富,但是比Document数据库(如Mongodb)支持度有限;适合做数据分析或数据仓库这类需要迅速查找且数据量大的应用。
3.简单实用
(1).linux上,从官网(https://cassandra.apache.org/)下载 tar.gz包。解压tar包。
命令: tar -zxvf apache.cassandra.2.1.18-bin.tar.gz
运行需要jdk环境。最好安装jdk1.7以上。配置jdk环境变量。(详细)
(2).配置文件是conf目录下,cassandra.yml文件,不修改。到bin目录,启动服务器。
命令:./cassandra -f
同时屏幕上加载配置,lib的jar包等一系列的信息。
最下方显示
CQL clients on /0.0.0.0:9042
thirft service to /0.0.0.0:9160
说明服务启动成功。
(3).客户端连接建立表:
在bin目录下,./cassandra-cli则进入
创建数据库:
create keyspace picture with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = {replication_factor:1};
在单个节点上创建了一个数据库。
创建表:
create column family t_common_list with column_type = 'Standard'
and key_validation_class = 'LongType' /*id*/
and comparator = 'Int32Type' /*imageType*/
and default_validation_class = 'AsciiType' /*url*/;
4.从其他服务器上使用java程勋连接,连接被拒绝。
首先想到防火墙,没有开通9160端口。关闭防火墙了。(systemctl stop firewalld ->更多)
防火墙关闭了,还是连接被拒绝。
5.配置文件修改 conf/cassandra.yml
listen_address从localhost改为服务器ip
rpc_address从localhost改为0.0.0.0 ,同时broadcast_address为服务器ip
这样程序连接,操作数据正常 为什么这样设置,可参考。