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

生成数据集

生成CP10M1K数据集

  1. 修改HiBench配置文件。
    1. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    2. 修改“/HiBench-HiBench-7.0/conf/workloads/ml/svd.conf”配置文件。
      1
      vi /HiBench-HiBench-7.0/conf/workloads/ml/svd.conf
      
    3. “i”进入编辑模式,修改数据配置如下。
      1
      2
      3
      hibench.svd.bigdata.examples            10000000
      hibench.svd.bigdata.features            1000
      hibench.workload.input                  ${hibench.hdfs.data.dir}/CP10M1K
      
    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 进入“HiBench-HiBench-7.0/conf”目录,修改“/HiBench-7.0/conf/hibench.conf”配置文件。
      1
      2
      cd /HiBench-HiBench-7.0/conf
      vi hibench.conf
      
    6. “i”进入编辑模式,修改数据配置如图所示。

    7. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据集。
    1. 首先进入HDFS,确定生成目录。
      1
      hdfs dfs -mkdir -p /tmp/ml/dataset/
      
    2. 进入执行路径。
      1
      cd /HiBench-HiBench-7.0/bin/workloads/ml/svd/prepare/
      
    3. 运行生成脚本,生成数据集CP10M1K。
      1
      sh prepare.sh
      
    4. 查看生成结果。
      1
      hadoop fs -ls /HiBench/CP10M1K
      
    5. 当生成过程中,出现权限报错时,对相应目录用root账户和HDFS分别进行权限更改。
  3. 使用HDFS新建文件夹。
    1
    hadoop fs -mkdir -p /tmp/ml/dataset
    
  4. 打开spark-shell。
    1
    spark-shell
    
  5. 输入以下命令。
    1
    :paste
    
  6. 执行下面代码,对数据集进行处理。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    import org.apache.spark.internal.Logging
    import org.apache.spark.ml.linalg.SQLDataTypes.VectorType
    import org.apache.spark.ml.linalg.{Matrix, Vectors}
    import org.apache.spark.mllib.linalg.DenseVector
    import org.apache.spark.sql.{Row, SparkSession}
    import org.apache.spark.sql.types.{StructField, StructType}
    import org.apache.spark.storage.StorageLevel
    val dataPath = "/HiBench/CP10M1K"
    val outputPath = "/tmp/ml/dataset/CP10M1K"
    spark
    .sparkContext
    .objectFile[DenseVector](dataPath)
    .map(row => Vectors.dense(row.values).toArray.map{u=>f"$u%.2f"}.mkString(","))
    .saveAsTextFile(outputPath)
    
  7. 检查HDFS对应目录,得到结果如下图。
    1
    hadoop fs -ls /tmp/ml/dataset/CP10M1K
    

生成CP2M5K数据集

  1. 修改HiBench配置文件。
    1. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    2. 打开“/HiBench-HiBench-7.0/conf/workloads/ml/svd.conf”配置文档。
      1
      vi /HiBench-HiBench-7.0/conf/workloads/ml/svd.conf
      
    3. “i”进入编辑模式,修改数据配置如下。
      1
      2
      3
      hibench.svd.bigdata.examples            2000000
      hibench.svd.bigdata.features            5000
      hibench.workload.input                  ${hibench.hdfs.data.dir}/CP2M5K
      
    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    6. 打开“/HiBench-7.0/conf/hibench.conf”配置文档。
      1
      vi hibench.conf
      
    7. “i”进入编辑模式,修改数据配置如下。
      1
      2
      3
      hibench.scale.profile                 bigdata
      hibench.default.map.parallelism       500
      hibench.default.shuffle.parallelism   600
      

    8. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据。
    1. 首先进入HDFS,确定生成目录。
      1
      hdfs dfs -mkdir -p /tmp/ml/dataset/
      
    2. 进入执行路径。
      1
      cd /HiBench-HiBench-7.0/bin/workloads/ml/svd/prepare/
      
    3. 运行生成脚本,生成数据集CP2M5K。
      1
      sh prepare.sh
      
    4. 当生成过程中,出现权限报错时,对相应目录用root账户和HDFS分别进行权限更改。
  3. HDFS新建文件夹。
    1
    hadoop fs -mkdir -p /tmp/ml/dataset
    
  4. 打开spark-shell。
    1
    spark-shell
    
  5. 输入以下命令。
    1
    :paste
    
  6. 执行下面代码,对数据集进行处理。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    import org.apache.spark.internal.Logging
    import org.apache.spark.ml.linalg.SQLDataTypes.VectorType
    import org.apache.spark.ml.linalg.{Matrix, Vectors}
    import org.apache.spark.mllib.linalg.DenseVector
    import org.apache.spark.sql.{Row, SparkSession}
    import org.apache.spark.sql.types.{StructField, StructType}
    import org.apache.spark.storage.StorageLevel
    val dataPath = "/HiBench/CP2M5K"
    val outputPath = "/tmp/ml/dataset/CP2M5K"
    spark
    .sparkContext
    .objectFile[DenseVector](dataPath)
    .map(row => Vectors.dense(row.values).toArray.map{u=>f"$u%.2f"}.mkString(","))
    .saveAsTextFile(outputPath)
    
  7. 检查HDFS对应目录,得到结果如下图。
    1
    hadoop fs -ls /tmp/ml/dataset/CP2M5K
    

生成ALS数据集

  1. 设置HiBench配置文档。
    1. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    2. 打开“/HiBench-HiBench-7.0/conf/workloads/ml/als.conf”配置文档。
      1
      vi /HiBench-HiBench-7.0/conf/workloads/ml/als.conf
      
    3. “i”进入编辑模式,修改数据配置如下。

    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    6. 打开“/HiBench-7.0/conf/hibench.conf”配置文档。
      1
      vi hibench.conf
      
    7. “i”进入编辑模式,修改数据配置如下。

    8. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据。
    1. 首先进入HDFS,确定生成目录。
      1
      hdfs dfs -mkdir -p /tmp/ml/dataset/ALS
      
    2. 进入执行路径。
      1
      cd /HiBench-HiBench-7.0/bin/workloads/ml/als/prepare/
      
    3. 运行生成脚本,生成数据集ALS。
      1
      sh prepare.sh
      
    4. 查看生成结果。
      1
      hadoop fs -ls /tmp/ml/dataset/ALS
      

      当生成过程中,出现权限报错时,对相应目录用root账户和hdfs分别进行权限更改。

生成D200M100数据集

  1. 设置HiBench配置文档。
    1. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    2. 打开“/HiBench-HiBench-7.0/conf/workloads/ml/kmeans.conf”配置文档。
      1
      vi /HiBench-HiBench-7.0/conf/workloads/ml/kmeans.conf
      
    3. “i”进入编辑模式,修改数据配置如下。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      hibench.kmeans.gigantic.num_of_clusters		5
      hibench.kmeans.gigantic.dimensions		100
      hibench.kmeans.gigantic.num_of_samples		200000000
      hibench.kmeans.gigantic.samples_per_inputfile	40000000
      hibench.kmeans.gigantic.max_iteration		5
      hibench.kmeans.gigantic.k			10
      hibench.kmeans.gigantic.convergedist		0.5
      
      hibench.workload.input                          hdfs://server1:8020/tmp/ml/dataset/kmeans_200m20_tmp
      

    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    6. 打开“/HiBench-HiBench-7.0/conf/hibench.conf”配置文档。
      1
      vi hibench.conf
      
    7. “i”进入编辑模式,修改数据配置如下。

    8. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据。
    1. 首先进入HDFS,确定生成目录。
      1
      hdfs dfs -mkdir -p /tmp/ml/dataset/kmeans_200m100_tmp
      
    2. 进入执行路径。
      1
      cd /HiBench-HiBench-7.0/bin/workloads/ml/kmeans/prepare/
      
    3. 运行生成脚本,生成数据集D200M100。
      1
      sh prepare.sh
      
  3. 查看生成结果。
    1
    hdfs dfs -ls /tmp/ml/dataset/kmeans_200m100_tmp
    

    当生成过程中,出现权限报错时,对相应目录用root账户和HDFS分别进行权限更改。

  4. HDFS上创建数据集存放路径。
    1
    hdfs dfs -ls /tmp/ml/dataset/kmeans_200m100
    
  5. 移动数据集到指定路径。
    1
    hdfs dfs -mv /tmp/ml/dataset/kmeans_200m100_tmp/samples/* /tmp/ml/dataset/kmeans_200m100/
    
  6. 查看结果。
    1
    hdfs dfs -ls /tmp/ml/dataset/kmeans_200m100/
    

  7. 清理冗余目录。
    1
    hdfs dfs -rm -r /tmp/ml/dataset/kmeans_200m100_tmp
    

生成D10M4096数据集

  1. 设置HiBench配置文档。
    1. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    2. 打开“/HiBench-HiBench-7.0/conf/workloads/ml/lr.conf”配置文档。
      1
      vi /HiBench-HiBench-7.0/conf/workloads/ml/lr.conf
      
    3. “i”进入编辑模式,修改数据配置如下。将数据样本改为1000万个,将数据特性改为4096。生成4000万个样本的大规模数据集。
      1
      2
      hibench.lr.bigdata.examples  10000000
      hibench.lr.bigdata.features  4096
      

    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    5. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    6. 打开“/HiBench-HiBench-7.0/conf/hibench.conf”配置文档。
      1
      vi hibench.conf
      
    7. “i”进入编辑模式,修改数据配置如下。
      1
      2
      3
      hibench.scale.profile                 bigdata
      hibench.default.map.parallelism       300
      hibench.default.shuffle.parallelism   300
      

    8. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据。
    1. 首先进入HDFS,确定生成目录。
      1
      hdfs dfs -mkdir -p /tmp/ml/dataset/
      
    2. 进入执行路径。
      1
      cd /HiBench-HiBench-7.0/bin/workloads/ml/lr/prepare/
      
    3. 运行生成脚本,生成数据集D10M4096。
      1
      sh prepare.sh
      
  3. 查看生成结果。
    1
    hdfs dfs -ls /HiBench/HiBench/LR/Input
    

    当生成过程中,出现权限报错时,对相应目录用root账户和HDFS分别进行权限更改。

  4. 打开spark-shell。
    1
    spark-shell
    
  5. 输入以下命令。
    1
    :paste
    
  6. 执行下面代码,对数据集进行处理。
    1
    2
    3
    4
    5
    6
    7
    import org.apache.spark.rdd.RDD
    import org.apache.spark.mllib.regression.LabeledPoint
    val data: RDD[LabeledPoint] = sc.objectFile("/HiBench/HiBench/LR/Input/10m4096")
    val i = data.map{t=>t.label.toString+","+t.features.toArray.mkString(" ")}
    val splits = i.randomSplit(Array(0.6, 0.4), seed = 11L)
    splits(0).saveAsTextFile("/HiBench/HiBench/LR/Output/10m4096_train")
    splits(1).saveAsTextFile("/HiBench/HiBench/LR/Output/10m4096_test")
    

生成HiBench_10M_200M数据集

  1. 设置HiBench配置文档。
    1. 进入“HiBench-HiBench-7.0/conf”目录。
      1
      cd /HiBench-HiBench-7.0/conf
      
    2. 打开“/HiBench-HiBench-7.0/conf/workloads/ml/lda.conf”配置文件。
      1
      vi /HiBench-HiBench-7.0/conf/workloads/ml/lda.conf
      
    3. “i”进入编辑模式,修改数据配置如下。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      hibench.lda.bigdata.num_of_documents              10000000
      hibench.lda.bigdata.num_of_vocabulary             200007152
      hibench.lda.bigdata.num_of_topics                 100
      hibench.lda.bigdata.doc_len_min                   500
      hibench.lda.bigdata.doc_len_max                   10000
      hibench.lda.bigdata.maxresultsize                 "6g"
      hibench.lda.num_of_documents                      ${hibench.lda.${hibench.scale.profile}.num_of_documents}
      hibench.lda.num_of_vocabulary                     ${hibench.lda.${hibench.scale.profile}.num_of_vocabulary}
      hibench.lda.num_of_topics                         ${hibench.lda.${hibench.scale.profile}.num_of_topics}
      hibench.lda.doc_len_min                           ${hibench.lda.${hibench.scale.profile}.doc_len_min}
      hibench.lda.doc_len_max                           ${hibench.lda.${hibench.scale.profile}.doc_len_max}
      hibench.lda.maxresultsize                         ${hibench.lda.${hibench.scale.profile}.maxresultsize}
      hibench.lda.partitions                            ${hibench.default.map.parallelism}
      hibench.lda.optimizer                             "online"
      hibench.lda.num_iterations                        10
      
    4. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据。
    1. 首先进入HDFS,确定生成目录。
      1
      hdfs dfs -mkdir -p /tmp/ml/dataset/
      
    2. 进入执行路径。
      1
      cd /HiBench-HiBench-7.0/bin/workloads/ml/lda/prepare/
      
    3. 运行bin/workloads/ml/lda/prepare/prepare.sh生成数据集。
      1
      sh prepare.sh
      
  3. 打开spark-shell。
    1
    spark-shell
    
  4. 输入以下命令。
    1
    :paste
    
  5. 执行下面代码,将生成的数据,转换为ORC格式。
    1
    2
    3
    4
    5
    6
    import org.apache.spark.mllib.linalg.{Vector => OldVector, Vectors => OldVectors} 
    import org.apache.spark.ml.linalg.{Vector, Vectors}
    case class DocSchema(id: Long, tf: Vector)
    val data: RDD[(Long, OldVector)] = sc.objectFile(dataPath)
    val df = spark.createDataFrame(data.map {doc => DocSchema(doc._1, doc._2.asML)})
    df.repartition(200).write.mode("overwrite").format("orc").save(outputPath)
    

生成HibenchRating3wx3w数据集

  1. 修改scala文件参数。
    1. 打开“Hibench/sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/RatingDataGenerator.scala”文件。
      1
      vi Hibench/sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/RatingDataGenerator.scala
      
    2. “i”进入编辑模式,修改中numPartitions参数(如下图,注释第36、37行并添加第38行)。
      1
      val numPartitions = parallel
      

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  2. 生成数据。
    1. 编译sparkbench模块。
      1
      mvn package
      
    2. 将编译好的sparkbench-common-8.0-SNAPSHOT.jar和sparkbench-ml-8.0-SNAPSHOT.jar两个JAR包放到相同文件夹中,调用RatingDataGenerator即可生成数据,例如。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      spark-submit \
      --class com.intel.hibench.sparkbench.ml.RatingDataGenerator \
      --jars sparkbench-common-8.0-SNAPSHOT.jar \
      --conf "spark.executor.instances=71" \
      --conf "spark.executor.cores=4" \
      --conf "spark.executor.memory=12g" \
      --conf "spark.executor.memoryOverhead=2g" \
      --conf "spark.default.parallelism=284" \
      --master yarn \
      --deploy-mode client \
      --driver-cores 36 \
      --driver-memory 50g \
      ./sparkbench-ml-8.0-SNAPSHOT.jar \
      /tmp/hibench/HibenchRating3wx3w 24000 6000 900000 false
      

      配置参数含义:

      • /tmp/hibench/HibenchRating3wx3w代表生成数据的存储位置。
      • 24000代表user数。
      • 6000代表product数。
      • 900000代表rating数。
      • false代表不生成隐式反馈的数据。

生成BostonHousing数据集

下载链接:https://github.com/selva86/datasets/blob/master/BostonHousing.csv

生成avazu数据集

下载链接:https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.html#avazu

请选择文件名后缀为-site的数据集,训练集行数/测试集行数/特征数:25,832,830/2,858,160/1,000,000

生成Movielens数据集

下载链接:https://grouplens.org/datasets/movielens/20m/

脚本:process_movielens.zip

生成Criteo40M&Criteo150M数据集

下载链接:https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/

脚本:process_criteo.zip