README.gridmix2
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:5k
源码类别:

网格计算

开发平台:

Java

  1. ### "Gridmix" Benchmark ###
  2. Contents:
  3. 0 Overview
  4. 1 Getting Started
  5.   1.0 Build
  6.   1.1 Configure
  7.   1.2 Generate test data
  8. 2 Running
  9.   2.0 General
  10.   2.1 Non-Hod cluster
  11.   2.2 Hod
  12.     2.2.0 Static cluster
  13.     2.2.1 Hod cluster
  14. * 0 Overview
  15. The scripts in this package model a cluster workload. The workload is
  16. simulated by generating random data and submitting map/reduce jobs that
  17. mimic observed data-access patterns in user jobs. The full benchmark
  18. generates approximately 2.5TB of (often compressed) input data operated on
  19. by the following simulated jobs:
  20. 1) Three stage map/reduce job
  21.    Input:      500GB compressed (2TB uncompressed) SequenceFile
  22.                  (k,v) = (5 words, 100 words)
  23.                  hadoop-env: FIXCOMPSEQ
  24.      Compute1:   keep 10% map, 40% reduce
  25.    Compute2:   keep 100% map, 77% reduce
  26.                  Input from Compute1
  27.      Compute3:   keep 116% map, 91% reduce
  28.                  Input from Compute2
  29.      Motivation: Many user workloads are implemented as pipelined map/reduce
  30.                  jobs, including Pig workloads
  31. 2) Large sort of variable key/value size
  32.      Input:      500GB compressed (2TB uncompressed) SequenceFile
  33.                  (k,v) = (5-10 words, 100-10000 words)
  34.                  hadoop-env: VARCOMPSEQ
  35.      Compute:    keep 100% map, 100% reduce
  36.      Motivation: Processing large, compressed datsets is common.
  37. 3) Reference select
  38.      Input:      500GB compressed (2TB uncompressed) SequenceFile
  39.                  (k,v) = (5-10 words, 100-10000 words)
  40.                  hadoop-env: VARCOMPSEQ
  41.      Compute:    keep 0.2% map, 5% reduce
  42.                  1 Reducer
  43.      Motivation: Sampling from a large, reference dataset is common.
  44. 4) API text sort (java, streaming)
  45.      Input:      500GB uncompressed Text
  46.                  (k,v) = (1-10 words, 0-200 words)
  47.                  hadoop-env: VARINFLTEXT
  48.      Compute:    keep 100% map, 100% reduce
  49.      Motivation: This benchmark should exercise each of the APIs to
  50.                  map/reduce
  51. 5) Jobs with combiner (word count jobs)
  52. A benchmark load is a mix of different numbers of small, medium, and large jobs of the above types.
  53. The exact mix is specified in an xml file (gridmix_config.xml). We have a Java program to 
  54. construct those jobs based on the xml file and put them under the control of a JobControl object.
  55. The JobControl object then submitts the jobs to the cluster and monitors their progress until all jobs complete.
  56. Notes(1-3): Since input data are compressed, this means that each mapper
  57. outputs a lot more bytes than it reads in, typically causing map output
  58. spills.
  59. * 1 Getting Started
  60. 1.0 Build
  61. In the src/benchmarks/gridmix dir, type "ant".
  62. gridmix.jar will be created in the build subdir.
  63. copy gridmix.jar to gridmix dir.
  64. 1.1 Configure environment variables
  65. One must modify gridmix-env-2 to set the following variables:
  66. HADOOP_HOME     The hadoop install location
  67. HADOOP_VERSION  The exact hadoop version to be used. e.g. hadoop-0.18.2-dev
  68. HADOOP_CONF_DIR The dir containing the hadoop-site.xml for teh cluster to be used.
  69. USE_REAL_DATA   A large data-set will be created and used by the benchmark if it is set to true.
  70. 1.2 Configure the job mixture
  71. A default gridmix_conf.xml file is provided.
  72. One may make appropriate changes as necessary on the number of jobs of various types
  73. and sizes. One can also change the number of reducers of each jobs, and specify whether 
  74. to compress the output data of a map/reduce job.
  75. Note that one can specify multiple numbers of in the 
  76. numOfJobs field and numOfReduces field, like:
  77. <property>
  78.   <name>javaSort.smallJobs.numOfJobs</name>
  79.   <value>8,2</value>
  80.   <description></description>
  81. </property>
  82. <property>
  83.   <name>javaSort.smallJobs.numOfReduces</name>
  84.   <value>15,70</value>
  85.   <description></description>
  86. </property>
  87. The above spec means that we will have 8 small java sort jobs with 15 reducers and 2 small java sort 
  88. jobs with 17 reducers.
  89. 1.3 Generate test data
  90. Test data is generated using the generateGridmix2Data.sh script. 
  91.         ./generateGridmix2Data.sh
  92. One may modify the structure and size of the data generated here. 
  93. It is sufficient to run the script without modification, though it may
  94. require up to 4TB of free space in the default filesystem. Changing the size
  95. of the input data (COMPRESSED_DATA_BYTES, UNCOMPRESSED_DATA_BYTES,
  96. INDIRECT_DATA_BYTES) is safe. A 4x compression ratio for generated, block
  97. compressed data is typical.
  98. * 2 Running
  99. You need to set HADOOP_CONF_DIR to the right directory where hadoop-site.xml exists.
  100. Then you just need to type 
  101. ./rungridmix_2
  102. It will create start.out to record the start time, and at the end, it will create end.out to record the 
  103. endi time.