美文网首页
使用Teragen来产生数据,使用Terasort排序

使用Teragen来产生数据,使用Terasort排序

作者: 你的努力时光不会辜负 | 来源:发表于2021-04-21 11:11 被阅读0次

    转载地址:http://www.opstool.com/article/249

    使用Teragen来产生数据,示例如下:

    hadoopjar 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的数据

    hadoopjar 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

    需要提到的是,TeraSort输出的replica数设置是1份,而不是Hadoop默认使用的3份。为什么?因为SortBenchmark没有规定结果要存多份副本,而设置成1份,Hadoop会就近存在本地(如果这个reducer的TT上也同时有DN)。这可节省了不少网络和磁盘消耗,间接的提高了TeraSort的执行效率。

    参考资料:

    https://blog.csdn.net/sunsiyuan521/article/details/78496745

    https://blog.csdn.net/zklth/article/details/6295517

    https://blog.csdn.net/gjt19910817/article/details/29935775

    相关文章

      网友评论

          本文标题:使用Teragen来产生数据,使用Terasort排序

          本文链接:https://www.haomeiwen.com/subject/qkialltx.html