rocksDB 安装问题简单介绍

前一段时间准备测试rocksdb,按照帖子和官网的例子,在安装过程中遇到一些问题。这里给出的是在Ubuntu下安装python使用的版本。

首先,要感谢这些帖子对我的帮助:

1:http://tech.uc.cn/?p=2592

2:http://bigkun.me/2014/01/22/rocksdb%E7%AC%AC%E4%B8%80%E7%AF%87%EF%BC%9A%E5%AE%89%E8%A3%85/

3:http://askubuntu.com/questions/312173/installing-gflags-12-04

4:http://blog.itpub.net/16582684/viewspace-1253841/

5:http://pyrocksdb.readthedocs.org/en/latest/installation.html

这里大部分代码来自链接5和链接4

第一步:必须更新Ubuntu的G++和GCC至4.7 以上( 有C++11支持 )

给出一个例子(http://lonelyprogram.blog.51cto.com/6246243/1355259)

a.更新gcc,不必卸掉原先的gcc

sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-4.8sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

b.升级g++

apt-get install g++-4.8

c.查看版本

gcc --version
g++ --version

第二步:安装必要的一些库如(build-essential libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev)

apt-get install build-essential
apt-get install libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev

这里需要特别说明一下如何安装gflags

http://askubuntu.com/questions/312173/installing-gflags-12-04  这个帖子里已有详细介绍,可以操作,这里不做重复。

第三步:下载安装rocksDB  这里是从github上复制安装

git clone https://github.com/facebook/rocksdb.git
cd rocksdb

之后,需要对rocksdb中的一些文件进行修改

vi Makefile
将这一行 OPT += -O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer
修改为 OPT += -O2 -lrt -fno-omit-frame-pointer -momit-leaf-frame-pointer

在~/.bashrc中增加 export LD_PRELOAD=/lib/x86_64-linux-gnu/librt.so.1,并使变量生效source ~/.bashrc
(这两步用于解决这个问题 " undefined symbol: clock_gettime")
sudo git checkout 2.8.fb

sudo make shared_lib
修改环境变量,头文件库和链接库以及路径(直接在终端输入即可)
$ export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:`pwd`/include
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`
$ export LIBRARY_PATH=${LIBRARY_PATH}:`pwd`

指定用户权限,创建数据库(shuren是用户名)

cd ..
sudo chown shuren:shuren rocksdb -Rf
cd rocksdb

进行接下来三步操作,解决这个问题 “ Fatal error: rocksdb/slice.h: No such file or directory "

sudo cp librocksdb.so /usr/local/lib
sudo mkdir -p /usr/local/include/rocksdb/
sudo cp -r ./include/* /usr/local/include/

上面,数据库安装就成功了

第四步:安装pyrocksdb()

$ apt-get install python-virtualenv python-dev
$ virtualenv pyrocks_test
$ cd pyrocks_test
$ . bin/active(这句我好像没有执行,但官网给出,就贴上吧)
$ pip install "Cython>=0.20"
$ pip install git+git://github.com/stephan-hof/pyrocksdb.git

这样pyrocksdb安装成功,对数据库进行一下测试

[email protected]:/u01/rocksdb$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import rocksdb
>>> db = rocksdb.DB("test.db", rocksdb.Options(create_if_missing=True))
>>> db.put(b"key1", b"v1")
>>> db.put(b"key2", b"v2")
>>> db.get(b"key1")
‘v1‘
>>>del db

最后一句是关闭连接。

如此,你就可以基本使用数据库,具体的详细操作参见http://pyrocksdb.readthedocs.org/en/latest/tutorial/index.html

时间: 2024-10-11 17:39:15

rocksDB 安装问题简单介绍的相关文章

Postman安装与简单介绍

Postman简介 Postman是一个 Chrome 扩展,能提供强大的 Web API HTTP 请求调试功能.Postman能够发送任何类型的http请求,支持GET/PUT/POST/DELETE等,请求头中可以附带任何数量的headers信息.Postman支持不同的认证机制(basic,digest,OAuth);Postman非常简单易用,通过填写URL.header.body等就可以发送一个请求,这对于我们平时做一些简单的测试是够用的.Postman有一个"集合"功能,

moogodb 安装及简单介绍

1,安装Moogodb 因为是windows 64位操作系统,直接到官网上下载.msi文件,下载完成后点击安装,点击同意协议之后,出现下面的对话框, Choose Setup Type, 就是选择安装类型,complete,表示完整安装,它会直接把文件安装到c:下,Custom 表示定制安装,我们可以选择我们想要安装到的地方,选择Custom 点击next, 然后在弹出的对话框底部有location, 点击它右边的Browse..按钮选择路径,注意一定选一个空文件夹路径,它就会安装到这个空文件夹

MongoDB(1)--简单介绍以及安装

前段时间接触了NoSql类型的数据库redis,当时是作为缓存server使用的.那么从这篇博客開始学习还有一个非常出名的NoSql数据库:MongoDb.只是眼下还没有在开发其中使用.一步一步来吧. 简单介绍 MongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库. 是非关系型数据库其中功能最丰富.最像关系数据库的. MongoDB由C++编写,其名字来源于"humongous"这个单词,其宗旨在于处理大量数据. MongoDB能够执行在Windows.unix.OS

TensorFlow简单介绍和在centos上的安装

##tensorflow简单介绍: TensorFlow? is an open source software library for numerical computation using data flow graphs.https://www.tensorflow.org/TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图

Android NDK 简单介绍、工具安装、环境配置

NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. * NDK提供了一系列的工具,帮助开发人员高速开发C(或C++)的动态库,并能自己主动将so和java应用一起打包成apk.这些工具对开发人员的帮助是巨大的. * NDK集成了交叉编译器,并提供了对应的mk文件隔离平台.CPU.API等差异,开发者仅仅须要简单改动mk文件(指出"哪些文件须要编译"."编译特性要求"等),就能够创建出so. * NDK能够自己主动地将so和Ja

ActiveMQ简单介绍以及安装

概述 首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送. ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范.JMS是一组Java应用程序接口,它提供消息的创建.发送.读取等一系列服务.JMS提供了一组公共应用程 序接口和响应的语法,类似于Java数据库

运维神器Chef简单介绍和安装笔记

首先大概解释一下Chef Chef有三个重要的概念:(如上图所示) 它们的合作关系大致是这样的, Workstation把资源或者说是一些要被运行的命令上传到Chef-Server上, Nodes自动通过Chef-Server拿到属于自己的执行任务到本地执行,这样可达到一个将军指挥千军万马的效果:smirk:. Chef Server 存放所有通过Workstation上传的资源,和用户等公共数据(用PostgreSQL). 可以干脆叫它为资源服务器,大家都可以与它通讯(用RabbitMQ ),

Mahout学习之Mahout简单介绍、安装、配置、入门程序測试

一.Mahout简单介绍 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个非常强大的数据挖掘工具,是一个分布式机器学习算法的集合,包含:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的长处就是基于hadoop实现,把非常多曾经执行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法

Linux服务器性能监控工具Glances 安装过程与简单介绍

一.Glances: Glances 是一款非常不错的跨平台的性能监控工具,提供了CPU.CPU队列.内存.虚拟内存.网络.I/O和最占用服务器的资源的进程列表等,应该就这些了吧,提供了这些 指标的监控信息,并且在运行时会根据资源的占用情况适用不同的颜色标注其重要程度,非常直观,下面是使用中的截图: 二.Glances安装:   Glances的安装还是比较简单方便的,由于Glances是由python编写的,最好适用python的库管理工具pip来自动安装.并且使用工具 也将安装过程简单的.