Cassandra数据库从入门到精通系列之一:认识Cassandra数据库

Posted 最笨的羊羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cassandra数据库从入门到精通系列之一:认识Cassandra数据库相关的知识,希望对你有一定的参考价值。

Cassandra数据库从入门到精通系列之一:认识Cassandra数据库

Cassandra集群搭建的详细步骤可以参考博主下面这篇博客:

一、Cassandra数据库介绍

Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。 其主要功能比Dynamo (分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。

二、下载Cassandra数据库地址

最新版本的Cassandra数据库是Cassandra4系列

三、Cassandra数据库官网

四、Cassandra数据库的特点

  • 弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。
  • 始终基于架构 - Cassandra没有单点故障,它可以连续用于不能承担故障的关键业务应用程序。
  • 快速线性性能 - Cassandra是线性可扩展性的,即它为你增加集群中的节点数量增加你的吞吐量。因此,保持一个快速的响应时间。
  • 灵活的数据存储 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构。
  • 便捷的数据分发 - Cassandra通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。
  • 事务支持 - Cassandra支持属性,如原子性,一致性,隔离和持久性(ACID)。
  • 快速写入 - Cassandra被设计为在廉价的商品硬件上运行。 它执行快速写入,并可以存储数百TB的数据,而不牺牲读取效率。

五、Cassandra数据库特征

  • 特征
  • 数据写入操作密集
  • 数据修改操作很少
  • 通过主键查询
  • 需要对数据进行分区存储

六、Cassandra数据库应用场景举例

  • 存储日志型数据
  • 类似物联网的海量数据
  • 对数据进行跟踪

从零开始系列-Caffe从入门到精通之一 环境搭建

先介绍下电脑软硬件情况吧:

处理器:Intel? Core? i5-2450M CPU @ 2.50GHz × 4

内存:4G

操作系统:Ubuntu Kylin(优麒麟) 16.04 LTS 64位

 

下面就是详细的安装过程(使用CPU,不使用GPU):

点击这里查看原文。


第一步:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
....

解决办法:
ps  aux看有没有相关进程在运行,运气好的话也许等一会就好了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?

解决办法:
sudo apt-get update
重新sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


第二步

这里使用OpenBLAS
sudo apt-get install libopenblas-dev

第三步

下载caffe
git clone https://github.com/bvlc/caffe.git


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
提示git尚未安装。

解决办法:
sudo apt-get install git
重新git clone https://github.com/bvlc/caffe.git
(注意国内下载有些慢,需要等一些时间)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

第四步

修改配置文件


cd caffe
mv Makefile.config.example Makefile.config

打开Makefile.config文件

# CPU_ONLY := 1
改为
CPU_ONLY := 1


# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := atlas
改为
BLAS := open

 

第五步

开始编译(加速编译)

 

make -j
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:

有错误,发现第一个问题与boost有关。

解决办法:
sudo apt-get install --no-install-recommends libboost-all-dev
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

再次 make -j
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
./include/caffe/util/db_lmdb.hpp:8:18: fatal error: lmdb.h: 没有那个文件或目录

解决办法:
sudo apt-get install liblmdb-dev
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

再次 make -j
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
src/caffe/layers/hdf5_output_layer.cpp:3:18: fatal error: hdf5.h: 没有那个文件或目录

解决办法:
将Makefile.config中的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
改为
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

再次 make -j
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
tools/caffe.cpp:6:27: fatal error: gflags/gflags.h: 没有那个文件或目录

解决办法:
sudo apt-get install libgflags-dev
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

再次 make -j
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
./include/caffe/util/math_functions.hpp:7:26: fatal error: glog/logging.h: 没有那个文件或目录

解决办法:
sudo apt-get install libgoogle-glog-dev
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

再次 make -j

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

出现问题:

编译过程中死机了。

解决办法:

强制关机重启,不使用-j选项了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

执行 make

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出现问题:
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
/usr/bin/ld: 找不到 -lhdf5_hl
/usr/bin/ld: 找不到 -lhdf5
collect2: error: ld returned 1 exit status
Makefile:572: recipe for target ‘.build_release/lib/libcaffe.so.1.0.0‘ failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1

解决办法:
sudo find / -name libhdf5.so
find: `/run/user/1000/gvfs‘: 权限不够
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so

于是将Makefile.config中的
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
改为
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/lib /usr/lib
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再次make
OK成功!

下一篇我们一起来运行手写体数字识别例程。

作者: bigdata大数据

出处: http://www.cnblogs.com/bigdata01/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。 如有问题, 可邮件咨询。

以上是关于Cassandra数据库从入门到精通系列之一:认识Cassandra数据库的主要内容,如果未能解决你的问题,请参考以下文章

ROS从入门到精通系列-- Action

ROS从入门到精通系列-- Action

云开发系列课程让你从入门到精通快速上手Serverless和云开发技术

ROS从入门到精通系列(二十五)--常用ROS工具合集- 2. GazeboRvizMoveit

ROS从入门到精通系列(二十五)--常用ROS工具合集- 2. GazeboRvizMoveit

ROS从入门到精通系列(二十五)--常用ROS工具合集- 2. GazeboRvizMoveit