中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

公开数据集

本文的图算法测试用例使用官网数据集,请从官网下载graph500-23、graph500-24、graph500-25、cit-Patents、uk-2002、enwiki-2018、it-2004、com_orkut、usaRoad,cage14,Twitter-2010、Graph500-29。下文所有的数据集解压上传均在server1节点进行。

官网数据集下载链接:https://ldbcouncil.org/benchmarks/graphalytics/

无向图graph500-23、graph500-24、graph500-25数据集

  1. 下载官网数据集,下载后的压缩包中包含以下样例文件,选择.e后缀的文件作为无向图的数据集。

  2. 默认下载后文件中的分隔符是空格(建议仍保留空格分隔符),如果需要修改分隔符为逗号,可在服务器终端使用如下命令。
    1
    cat graph500-23.e | tr " " "," > graph500-23.txt
    

cit-Patents数据集

  1. 下载官网数据集。

    下载链接:https://snap.stanford.edu/data/cit-Patents.txt.gz

  2. 下载完成后解压,然后将cit-Patents.txt文件中“#”开头的前四行删除即可使用。

有向图it-2004数据集

有向图it-2004数据集的下载使用步骤如下,下载后解压即可使用。

  1. 新建“/test/graph/dataset/”目录。
    1
    2
    mkdir -p /test/graph/dataset/
    cd /test/graph/dataset/
    
  2. 下载官网数据集。
    1
    wget https://suitesparse-collection-website.herokuapp.com/MM/LAW/it-2004.tar.gz
    
  3. 执行tar解压数据集。
    1
    tar -zxvf it-2004.tar.gz
    
  4. 使用HDFS创建对应存放目录。
    1
    hadoop fs –mdkir –p /tmp/graph/dataset/
    
  5. 将文件上传至HDFS。
    1
    hadoop fs –put /test/graph/dataset/it-2004.mtx /tmp/graph/dataset/
    
  6. 检查HDFS有无数据,检查结果如下。
    1
    hadoop fs -ls /tmp/graph/dataset/it-2004.mtx
    

uk-2002、enwiki-2018数据集

下载官网数据集,需要注意的是,我们只需要下载对应链接下的3个相关的文件,对应后缀分别是:.graph、 .properties、 .md5sums。

uk-2002: http://law.di.unimi.it/webdata/uk-2002/

enwiki-2018: http://law.di.unimi.it/webdata/enwiki-2018/

针对有向图uk-2002、enwiki-2018我们需要采取特定的解压缩方式,以下流程将解压uk-2002数据集为例。

  1. 下载WebGraph和相应的依赖包。
    表1 WebGraph和相应的依赖包

    项目

    下载链接

    logback-classic-1.1.7.jar

    Link

    logback-core-1.1.7.jar

    Link

    fastutil-7.0.12.jar

    Link

    sux4j-4.0.0.jar

    Link

    dsiutils-2.3.2.jar

    Link

    jung-api-2.1.jar

    Link

    jung-io-2.1.jar

    Link

    jsap-2.1.jar

    Link

    junit-4.12.jar

    Link

    commons-configuration-1.8.jar

    Link

    commons-lang3-3.4.jar

    Link

    slf4j-api-1.7.21.jar

    Link

    webgraph-3.5.2.jar

    Link

    guava-19.0.jar

    Link

    uk-2002.properties

    Link

    uk-2002.graph

    Link

  2. 新建“lib”文件夹,将解压后的WebGraph和WebGraph依赖的JAR包放在“lib”目录下。
    1
    2
    mkdir lib
    cd lib
    
  3. 回到uk-2002.properties和uk-2002.graph所在目录,运行如下命令,生成相应的解压后的文件uk-2002-edgelist.txt。
    1
    java -cp "./lib/*" it.unimi.dsi.webgraph.ArcListASCIIGraph -l 5000 uk-2002 uk-2002-edgelist.txt
    

    最后两个参数对应输入数据和输出数据,请注意如果文件包含sample.graph、 sample.md5sums、 sample.properties,则倒数第二个参数应为前面3个文件的前缀sample。

  4. 默认解压后文件中的分隔符是“\t”,如果需要修改分隔符为空格,可在服务器终端使用如下命令。
    1
    cat uk-2002-edgelist.txt | tr "\t" " " > uk-2002-edgelist.e
    

usaRoad数据集

下载链接:https://networkrepository.com/road-road-usa.php

cage14数据集

下载链接:https://sparse.tamu.edu/vanHeukelum/cage14

Twitter-2010、Graph500-29数据集

  1. 生成增量数据集。
    1. 创建脚本和JAR包存放目录。
      1
      mkdir –p /test/algo/incpr
      
    2. 将下面1.c1.f步得到的脚本和JAR包放到“/test/algo/incpr”目录下。
    3. 新建twitter-2010数据集增量生成脚本incDataGenBatch_twitter-2010.sh。
      1
      2
      cd /test/algo/incpr
      vi incDataGenBatch_twitter-2010.sh
      
    4. “i”进入编辑模式,复制下面脚本内容到“incDataGenBatch_twitter-2010.sh”脚本中。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      num_executors=39
      executor_cores=7
      executor_memory=23
      partition=273
      java_xms="-Xms${executor_memory}g"
      
      class="com.huawei.graph.IncDataGeneratorBatch"
      input_allData="hdfs:/tmp/graph/dataset/twitter-2010-edgelist.txt"
      split=","
      seed=1
      iterNum=100
      resetProb=0.15
      jar_path="/test/algo/incpr/inc-graph-tools-1.0.0.jar"
      batch=5
      
      for rate in {0.001,0.01,0.05}
      do
      echo ">>> start [twitter-2010-${rate}]"
      output_incData="/tmp/graph/dataset/twitter-2010_${rate}"
      
      hadoop fs -rm -r -f hdfs:${output_incData}
      
      spark-submit \
      --class ${class} \
      --master yarn \
      --num-executors ${num_executors} \
      --executor-memory  ${executor_memory}g \
      --executor-cores ${executor_cores} \
      --driver-memory 80g \
      --conf spark.driver.maxResultSize=80g \
      --conf spark.locality.wait.node=0 \
      --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
      --conf spark.kryoserializer.buffer.max=2040m \
      --conf spark.executor.extraJavaOptions=${java_xms} \
      ${jar_path} yarn ${input_allData} ${split} ${output_incData} ${rate} ${partition} ${seed} ${iterNum} ${resetProb} ${batch}
      
      echo ">>> end [twitter-2010-${rate}]"
      done
      
    5. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    6. 新建graph500-29数据集增量生成脚本incDataGenBatch_graph500-29.sh。
      1
      vi incDataGenBatch_graph500-29.sh
      
    7. “i”进入编辑模式,复制下面脚本内容到incDataGenBatch_graph500-29.sh脚本中。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      num_executors=39
      executor_cores=7
      executor_memory=23
      partition=800
      java_xms="-Xms${executor_memory}g"
      
      class="com.huawei.graph.IncDataGeneratorBatch"
      input_allData="hdfs:/tmp/graph/dataset/graph500-29.e"
      split=","
      seed=1
      iterNum=100
      resetProb=0.15
      jar_path="/test/algo/incpr/inc-graph-tools-1.0.0.jar"
      batch=5
      
      for rate in {0.001,0.01,0.05}
      do
      echo ">>> start [graph500-29-${rate}]"
      output_incData="/tmp/graph/dataset/graph500-29_${rate}"
      
      hadoop fs -rm -r -f hdfs:${output_incData}
      
      spark-submit \
      --class ${class} \
      --master yarn \
      --num-executors ${num_executors} \
      --executor-memory  ${executor_memory}g \
      --executor-cores ${executor_cores} \
      --driver-memory 80g \
      --conf spark.driver.maxResultSize=80g \
      --conf spark.locality.wait.node=0 \
      --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
      --conf spark.kryoserializer.buffer.max=2040m \
      --conf spark.executor.extraJavaOptions=${java_xms} \
      ${jar_path} yarn ${input_allData} ${split} ${output_incData} ${rate} ${partition} ${seed} ${iterNum} ${resetProb} ${batch}
      
      echo ">>> end [graph500-29-${rate}]"
      done
      
      脚本关键参数说明:
      • input_allData代表下载的开源全量数据HDFS路径。
      • jar_path代表inc-graph-tools-1.0.0.jar的绝对路径。
      • batch代表生成batch个数。
      • rate代表换血率。默认会生成(0.001,0.01,0.05)三个不同换血率数据,可以根据需要修改换血率,目前算法支持换血率0.05以下的性能提升。
    8. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 得到twitter-2010增量模拟数据。
    1. 新建“/test/dataset/graph/twitter”目录,并进入该目录。
      1
      2
      mkdir –p /test/dataset/graph/twitter
      cd /test/dataset/graph/twitter
      
    2. 下载官网数据集。
      1
      wget https://snap.stanford.edu/data/twitter-2010.txt.gz
      
    3. 解压数据集。
      1
      tar zxvf twitter-2010.txt.gz
      
    4. 使用HDFS创建“/hdfs”目录,解压得到的数据twitter-2010-edgelist.txt,上传到“/hdfs”目录上。
      1
      2
      hdfs dfs -mkdir –p /tmp/graph/dataset
      hdfs dfs –put twitter-2010-edgelist.txt /tmp/graph/dataset
      
    5. 运行脚本得到增量模拟数据,以5个batch换血率0.001为例,HDFS得到如下数据。

  3. 生成graph500-29增量模拟数据。
    1. 新建“/test/dataset/graph/graph500-29”目录,并进入该目录。
      1
      2
      mkdir –p /test/dataset/graph/graph500-29
      cd /test/dataset/graph/graph500-29
      
    2. 下载官网数据集。
      1
      wget https://surfdrive.surf.nl/files/index.php/s/VSXkomtgPGwZMW4/download
      
    3. 解压数据集。
      1
      tar -I zstd -vxf graph500-29.tar.zst
      
    4. 使用HDFS创建“/hdfs”目录,解压得到的数据graph500-29.e,上传到“/hdfs”目录上。
      1
      2
      hdfs dfs -mkdir –p /tmp/graph/dataset
      hdfs dfs –put graph500-29.e /tmp/graph/dataset
      
    5. 运行脚本得到增量模拟数据,以5个batch换血率0.001为例,HDFS得到如下数据。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词