RedisGraph-benchmark: 使用LDBC SNB、redisgraph-bulk-loader和hiredis测试RedisGraph性能

1 使用LDBC SNB生成测试数据

1.1 安装LDBC SNB

  • 下载hadoop

    wget https://repo.huaweicloud.com/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
    tar -zxvf hadoop-2.9.2.tar.gz
    # 添加环境变量
    # 我一般加在~/.bashrc中
    export HADOOP_HOME=/..../hadoop-2.9.2
    # 根据具体情况,配置使用内存容量
    export HADOOP_CLIENT_OPTS="-Xmx8G"
    
  • 下载LDBC SNB源码

    git clone https://github.com/ldbc/ldbc_snb_datagen.git -b v0.3.2
    # 添加环境变量
    # 我一般加在~/.bashrc中
    export LDBC_SNB_DATAGEN_HOME=/..../ldbc_snb_datagen
    source ~/.bashrc
    
  • 安装jdk与maven

1.2 生成测试数据

  • 配置params.ini

    LDBC SNB支持生成不同规模的图数据集,generator.scaleFactor参数各取值对应的点边数目如下表:

    cd $LDBC_SNB_DATAGEN_HOME
    cp params-csv-basic.ini params.ini
    # 修改params.ini,设置generator.scaleFactor=0.1
    # 修改后的params.ini第1行内容
    ldbc.snb.datagen.generator.scaleFactor:snb.interactive.0.1
    
  • 修改run.sh

    # 修改后的run.sh
    DEFAULT_HADOOP_HOME=/..../hadoop-2.9.2 #change to your hadoop folder
    
  • 执行程序

    ./run.sh
    

    生成的数据在$LDBC_SNB_DATAGEN_HOME/social_network$LDBC_SNB_DATAGEN_HOME/substitution_parameters两个目录下。social_network存储的是表单数据,substitution_parameters存储的是测试数据。

2 使用redisgraph-bulk-loader将测试数据导入RedisGraph

  • 下载RedisGraph-benchmark

    git clone https://github.com/SJTU-DDST/RedisGraph-benchmark.git
    cd ./loader-bulk
    
  • 安装redisgraph-bulk-loader

    pip install redisgraph-bulk-loader
    
  • 拷贝测试数据

    cp -r $LDBC_SNB_DATAGEN_HOME/social_network/static/. ./loader-bulk/social_network_0_1
    cp -r $LDBC_SNB_DATAGEN_HOME/social_network/dynamic/. ./loader-bulk/social_network_0_1
    
  • 将测试数据导入至redisgraph

    # 对CSV输入文件进行预处理:
    ./convert-csv.sh
    # 向RedisGraph server中导入数据:
    ./build_social_network_0_1.sh 127.0.0.1 6379
    

3 使用hiredis测试RedisGraph的吞吐量

  • 安装hiredis

    git clone https://github.com/redis/hiredis.git
    make
    make install
    
  • compile

    gcc -o redis_graph_test redis_graph_test.c -I /usr/local/include/hiredis -lhiredis -pthread
    
  • 执行程序

    # 向RedisGraph server发送query,测试吞吐量:
    # 测得的吞吐量一共有两种:
    # no pipeline:仅开启1个连接线程,顺序发送query
    # pipelined: 同时开启64个连接线程,每个线程以batch的形式发送query
    ./redis_graph_test -h 127.0.0.1 -p 6379
    

你可能感兴趣的:(redisgraph,hadoop,redis)