《分布式数据库原理及应用》
实验报告
实验10:redis与hbase安装
一、实验目的
1.掌握redis与hbase的特点。
2.掌握redis与hbase的安装。
二、实验环境
操作系统自定
三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果)
实验内容:
1.梳理mongodb,neo4j,memcache,redis,hbase的异同
2.完成redis的安装与测试
3.完成hbase的安装与测试
实验步骤:
1.梳理mongodb,neo4j,memcache,redis,hbase的异同
Redis
所用语言:C/C++ 特点:运行异常快使用许可: BSD
协议:类 Telnet 有硬盘存储支持的内存数据库
Master-slave复制
虽然采用简单数据或以键值索引的哈希表,但也支持复杂操作。
Redis支持事务,支持哈希表,支持排序sets,支持队列(阻塞/非阻塞),支持将数据设置成过期数据(类似快速缓冲区设计)
Pub/Sub允许用户实现消息机制。
最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。
Master-slave复制:如果同一时刻只有一台服务器处理所有的复制请求,这被称为Master-slave复制,通常应用在需要提供高可用性的服务器集群。
MongoDB
所用语言:C++ 特点:保留了SQL一些友好的特性(查询,索引)
使用许可: AGPL(发起者: Apache)协议: Custom binary( BSON)
Master/slave复制(支持自动错误恢复,使用 sets 复制)内建分片机制
支持javascript表达式查询可在服务器端执行任意的 javascript函数 update-in-place支持比CouchDB更好。
在数据存储时采用内存到文件映射对性能的关注超过对功能的要求建议最好打开日志功能(参数–journal)
最佳应用场景:适用于需要动态查询支持;需要使用索引而不是 map/reduce功能;需要对
大数据库有性能要求;需要使用 CouchDB但因为数据改变太频繁而占满内存的应用程序。
Memcache
特点:协议简单基于libevent的事件处理内置内存存储方式memcached不互相通信的分布式
最佳应用场景:适用于需要低延迟数据访问,高并发支持以及高可用性的应用程序,例如:低延迟数据访问比如以广告为目标的应用,高并发的 web 应用比如网络游戏。
Neo4j
所用语言:Java 特点:基于关系的图形数据库使用许可:GPL,其中一些特性使用AGPL/商业许可协议: HTTP/REST(或嵌入在 Java中)
可独立使用或嵌入到 Java应用程序图形的节点和边都可以带有元数据
很好的自带web管理功能使用多种算法支持路径搜索
使用键值和关系进行索引为读操作进行优化
支持事务(用 Java api)使用 Gremlin图形遍历语言
支持 Groovy脚本支持在线备份,高级监控及高可靠性支持使用 AGPL/商业许可
最佳应用场景:适用于图形一类数据。
这是 Neo4j与其他nosql数据库的最显著区别。
例如:社会关系,公共交通网络,地图及网络拓谱。
HBase
所用语言:Java 特点:支持数十亿行X上百万列使用许可: Apache
协议:HTTP/REST (支持 Thrift,见编注4)在 BigTable之后建模
采用分布式架构 Map/reduce 对实时查询进行优化高性能 Thrift网关
通过在server端扫描及过滤实现对查询操作预判支持 XML, Protobuf, 和binary的HTTP Cascading, hive, and pig source and sink modules 基于 Jruby( JIRB)的shell 对配置改变和较小的升级都会重新回滚不会出现单点故障
堪比MySQL的随机访问性能
最佳应用场景:适用于偏好BigTable:)并且需要对大数据进行随机、实时访问的场合。
例如: Facebook消息数据库。
2.完成redis的安装与测试
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
3完成hbase的安装与测试
安装hbase:
简单测试操作:
1.创建表:create ‘表名’,‘列族’
2.表的管理/列表查看表:list
查看表结构:describe‘表名’
3.插入数据:put ‘表名’,‘rowkey’,‘列族:列’,‘值’全局扫描:scan '表名'
4.查询某行数据:get ‘表名’,‘rowkey’
查询表中数据行数:count ‘表名’
5.删除行中的某列:delete ‘表名’,‘rowkey’,‘列族:列’
6. 添加列族:alter ‘表名’,NAME=>'second'
四、实验总结(每项不少于20字)
存在问题:在安装redis的时容易出现错误;在安装HBase时,语句错误时会自动退出数据库。
解决方法:反复尝试,查找错误所在,请求同学的帮助,具体原因网络查找理解。
收获:学会redis的安装和hbase的安装与测试,学会了redis及HBase数据库的一些基本操作。
五、教师批语。