第11周 海量数据与列式数据库Cassandra,第11周cassandra
Cassandra
Cassandra的含义 由Facebook开发,后被捐献给Apache基金会,成为开源软件 以Amazon Dynamo为最初的模仿对象,结合Google Big Table基于列族的数据模型,可以称为Dynamo 2.0 支持无中心的分布式设计,不存在单点问题,所有节点功能完全一样 在不间断服务的情况下可弹性扩展或收缩规模 高可用,支持热替换故障节点,支持多数据中心 可调节的一致性 面向行?还是面向列? 官网:http://cassandra.apache.org 参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html?pagename=docs&version=1.2&file=index#cassandra/cli_using/use_index_col_t.htmlcassandra安装
#安装jdk # tar zxf jdk-7u9-linux-i586.tar.gz # mv ./jdk1.7.0_09/ /usr/ [root@linux cassandra]# cd [root@linux ~]# vi .bash_profile JAVA_HOME=/usr/jdk1.7.0_09 CLASSPATH=.:$JAVA_HOME/lib/tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH # java -version # java # javac#安装cassandra # tar zxf apache-cassandra-2.0.3-bin.tar.gz # mv apache-cassandra-2.0.3 cassandra # cd cassandra/ # mkdir -p data commitlog saved_caches #cd conf/ 修改cassandra.yaml配置文件 data_file_directories: - /nosql/cassandra/cassandra/data commitlog_directory: /nosql/cassandra/cassandra/commitlog saved_caches_directory: /nosql/cassandra/cassandra/saved_caches 修改log4j-server.properties log4j.appender.R.File= /nosql/cassandra/cassandra/commitlog/system.log
#启动cassandra [root@linux bin]# pwd /nosql/cassandra/cassandra/bin [root@linux bin]# ./cassandra -f #-f :是不放到后台去运行,方便做实验看日志输出。
#测试cassandra [root@linux bin]# pwd /nosql/cassandra/cassandra/bin [root@linux bin]# ./cassandra-cli Connected to: "Test Cluster" on 127.0.0.1/9160 Welcome to Cassandra CLI version 2.0.3 The CLI is deprecated and will be removed in Cassandra 3.0. Consider migrating to cqlsh. CQL is fully backwards compatible with Thrift data; see http://www.datastax.com/dev/blog/thrift-to-cql3 Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit. [default@unknown] ?
数据模型
集群(cluster) Keyspaces ——集群是keyspace的容器,Keyspace是数据的最外层容器(类似Oracle的表空间概念)。 列族 ——Keyspace是列族的容器,列族类似于Oracle中的表,列族需要在keyspace中预先定义。 列 ——列是最基本的数据结构单元,列不需要预先定义。[default@unknown] create keyspace zhang_sp; ##创建keyspace 29ac08c0-a3b5-3d95-bfc2-14c86a3d5263 [default@unknown] show keyspaces; Keyspace: zhang_sp: Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy Durable Writes: true Options: [datacenter1:1] Column Families: [default@unknown] use zhang_sp; Authenticated to keyspace: zhang_sp [default@zhang_sp] create column family test_clu ; ##创建列族 1c418137-d55d-395f-bb92-89a1b8885ad3 [default@zhang_sp] show schema; [default@zhang_sp] drop column family test_clu; 29ac08c0-a3b5-3d95-bfc2-14c86a3d5263 [default@zhang_sp] create column family test_clu ##修改字符集 ... with column_type = 'Standard' ... and comparator = 'UTF8Type' ... and default_validation_class = 'UTF8Type' ... and key_validation_class = 'UTF8Type'; e23dcea5-1be9-335a-a695-cc5e3ad16bc9 [default@zhang_sp] set test_clu['zhangsan'][age]=28; ##插入行 Value inserted. Elapsed time: 79 msec(s). [default@zhang_sp] set test_clu['zhangsan'][phone]=34567; Value inserted. Elapsed time: 3.6 msec(s). [default@zhang_sp] get test_clu['zhangsan']; ##查询 => (name=age, value=28, timestamp=1388069357905000) => (name=phone, value=34567, timestamp=1388069563742000) Returned 2 results. Elapsed time: 5.51 msec(s). [default@zhang_sp] list test_clu; ##列出所有行 Using default limit of 100 Using default cell limit of 100 ------------------- RowKey: zhangsan => (name=age, value=28, timestamp=1388069357905000) => (name=phone, value=34567, timestamp=1388069563742000) 1 Row Returned. Elapsed time: 333 msec(s).
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。