Hadoop測試TeraSort

孟德新書發表於2015-10-09

http://www.opstool.com/article/249


使用teragen產生資料

使用Teragen來產生資料,示例如下:

hadoop jar hadoop-*-examples.jar teragen 引數1 引數2

teragen的引數解釋:

  • 引數1:表示要產生的資料的行數。Teragen每行資料的大小是100B。
    要產生1T的資料,需要的行數=102410241024*1024/100=10995116277行
  • 引數2 : 產生的資料放置的資料夾地址

預設的teragen的啟動的map數比較少,只有2個,如果要指定map數可以加-Dmapred.map.tasks=map數的方式。比如我們來產生1T的資料

hadoop jar hadoop-*-examples.jar teragen -Dmapred.map.tasks=100 10995116277 terasort/1T-input

ls一下目錄是否產出

hadoop@myhost $ hadoop fs -ls /user/hadoop/terasort/
Found 1 items
drwxr-xr-x   - hadoop cug-admin          0 2013-07-13 12:49 /user/hadoop/terasort/1T-input

使用Terasort排序

使用terasort對剛才使用teragen產生的資料進行排序,排序結果輸出到/user/hadoop/terasort/1T-output。
預設的reduce數目是1,會導致任務跑得非常慢。通過-Dmapred.reduce.tasks指定reduce數目,這裡我們設定50個

hadoop jar hadoop-*-examples.jar terasort -Dmapred.reduce.tasks=50 \
/user/hadoop/terasort/1T-input /user/hadoop/terasort/1T-output

啟動Teragen之後,會提交mapre reduce任務來,產生TeraSort需要的資料

使用Teravalidate 進行驗證

使用TeraValidate 對Terasort的結果進行驗證:

hadoop jar hadoop-*-examples.jar teravalidate /user/hadoop/terasort/1T-output /user/hadoop/terasort/1T-validate

相關文章