mr程序中间结果的文件是写在hdfs里面的吗

mr程序中间结果的文件是写在hdfs里面的吗,第1张

比较重要的语句是

job.setNumReduceTasks(0)//为什么要设置reduce的数量是0呢?读者可以自己考桥棚敏虑下

TableMapReduceUtil.initTableMapperJob(args[0], new Scan(),HBaseToHdfsMapper.class ,Text.class, Text.class, job)//这行和族语句指定了mr的输入是hbase的哪张表,scan可以敏枝对这个表进行filter *** 作。

我想你指的Hadoop作业是指Map/Reduce作业。主要的差别有如下3点:

1、MR作业的资源管控升稿运是通过yarn进行的,spark可以通过yarn进行资源管控,也可以不使用yarn,但是多个组件合设时(如集群中既有spark计划,又有HBase查询),建议还是使用yarn;

2、spark是基于内存计算的,计算的中间结果存放在内存,可以进行反复迭代计算;而MR计算的中间结果是要落磁盘的,所以一个job会涉及到反复读写磁盘,这也是性能比不上spark的主要原因;

3、MR的一个task就要对应一个container,container的每次启动都要耗费不少时间,有些hadoop版本(如华敬李为OceanInsight Hadoop)实现了容器预热(重用)功能,这个消耗可能会小一些;而spark是基吵梁于线程池来实现的,资源的分配会更快一些。

hive作为数据仓库平台,其实是来解决mr编判盯写程序困难的问题,提供了sql接口。目前掘余和的hive不止支持mr,还有tez和spark,不过逻辑都是一样的。现在最新版本提供了内存计算,也就是中间结果不再存入hdfs,而是直接缓存在内存里,提高查询性毁或能


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8264615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存