rocksdb 安装全过程 & 一些问题解决方法

前言

Rocksdb是leveldb,基于key-value,也可以将数据长期存储的数据库。关于rocksdb的详细描写。这位大佬写的很是详细,而且网上的资源很多,本文主要讲述如何安装rocksdb。

安装前准备

我的测试用机是centos7

1. 安装C++11,因为rocksdb是完全基于C++进行编写的(不仅又一次感受到了C++的强大 d=====( ̄▽ ̄*)b)

yum install gcc48-c++

g++ --version

 

2.安装gflags.

git clone https://github.com/gflags/gflags.git

cd gflags

./configure && make && make install

或者:

yum install gflags-level

yum install gflags

3.安装snappy,zlib,bzip2,lz4,ASAN,zstd

yum install xxxxxx(或者自己亲自下载安装包,然后直接./configure && make && make instal.或者ccmake/cmake等方法安装)

开始安装rocksdb

(1)编译静态库,获得librocksdb.a

make static_lib

make install-static

(2)编译动态库,获得librocksdb.so

make shared_lib

make install-shared

*(3) 如果嫌命令太多,可以进行以下操作:

make all

等待稍微有点长的时间后即可安装完毕。

(4)安装完成,注意务必将静态动态库都放在/usr/local/lib或者/usr/lib中,将/include/rocksdb的所有头文件也放到/usr/include/rockasdb或者/usr/local/include/rocksdb中

如果嫌麻烦,直接一个命令make执行完所有的命令,这时候/rocksdb中就会有一个二进制文件db_bench(make编译过程中可能需要很多的时间,因此你可以先做点其他事情。)这时候为了安全起见,检查下/usr/lib, /usr/local/lib, 是否含有生成的librocksdb.a,librocksdb.so,以及他们的链接文件librocksdb.so.5.xx.x , librocksdb.so.5.xx  ,librocksdb.so.5 。例如如果你把这些库放在了/usr/local/lib中了,最后在环境变量上加上

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

source一下就可以了。

 

运行测试:

在rocksdb这个文件夹的工作目录中,执行如下命令:

export DB_DIR=/raid/db

export WAL_DIR=/raid/wal

export TEMP=/raid/tmp

export OUTPUT_DIR=/raid/output

 

./tools/benchmark.sh bulkload

最后一行是进行压力测试的命令行,这个工具在/tools里面,既然压力测试都可以了,那说明安装肯定没问题了。

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Flink使用RocksDB作为其状态后端存储引擎,默认情况下会在内存中维护一部分数据结构,以加速读写操作。然而,由于Flink的处理速度往往远快于数据的写入速度,导致RocksDB在高负载情况下内存占用不断增加的问题。 当Flink处理大量数据时,RocksDB会从磁盘读取更多数据并缓存在内部的结构中。这种缓存过程是为了减少I/O操作,但也导致了内存占用的增加。这可能导致应用程序的性能下降,甚至引发内存溢出错误。 为了解决RocksDB内存占用不断增加的问题,我们可以采取以下措施: 1. 调整RocksDB的缓存大小:通过调整Flink配置中的相关参数,如`state.backend.rocksdb.block-cache-size`控制RocksDB使用的缓存大小。可以根据应用程序的需求来适当增加或减少这个值,以平衡性能和内存占用。 2. 提高Flink的并发度:增加Flink应用程序的并发度可以减少每个任务处理的数据量,从而减少RocksDB内存占用。可以通过增加任务并行度和子任务并行度,以及调整网络并行度等参数来提高Flink的并发度。 3. 优化数据倾斜:如果应用程序中存在数据倾斜的情况,即某些键或分区的数据量明显大于其他键或分区,可以采取分区策略、键间重分配等方法解决数据倾斜,减少RocksDB内存的占用。 4. 增加或减少状态的保留时间:根据应用程序的需要,可以增加或减少状态的保留时间。较短的保留时间会导致状态中的数据减少,从而减少RocksDB内存的占用。 总之,解决Flink RocksDB内存占用不断增加的问题可以通过调整RocksDB的缓存大小、提高Flink的并发度、优化数据倾斜以及调整状态的保留时间等方法来实现。根据具体的应用场景和需求,可以采取不同的措施来平衡性能和内存占用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值