如何通过C语言实现Hadoop(三)的高级应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1261个文字,预计阅读时间需要6分钟。
MapReduce和Hadoop中,数据被切分存放在HDFS的不同DataNode中。若需汇总,按常规做法是移动数据到计算程序:先读取数据到程序,再进行汇总。但HDFS存储的数据量通常非常大。
MapReduceHadoop中将数据切分成块存在HDFS不同的DataNode中,如果想汇总,按照常规想法就是,移动数据到统计程序:先把数据读取到一个程序中,再进行汇总。
但是HDFS存的数据量非常大时,对汇总程序所在的服务器将产生巨大压力,并且网络IO也十分消耗资源。
为了解决这种问题,MapReduce提出一种想法:将统计程序移动到DataNode,每台DataNode(就近)统计完再汇总,充分利用DataNode的计算资源。YARN的调度决定了MapReduce程序所在的Node。
MapReduce过程- 确保数据存在HDFS上
- MapReduce提交给ResourceManager(RM),RM创建一个Job。
- 文件分片,默认将一个数据块作为一个分片。
- Job提交给RM,RM根据Node状态选择一台合适的Node调度AM,AM向RM申请资源,RM调度合适的NM启动Container,Container执行Task。
本文共计1261个文字,预计阅读时间需要6分钟。
MapReduce和Hadoop中,数据被切分存放在HDFS的不同DataNode中。若需汇总,按常规做法是移动数据到计算程序:先读取数据到程序,再进行汇总。但HDFS存储的数据量通常非常大。
MapReduceHadoop中将数据切分成块存在HDFS不同的DataNode中,如果想汇总,按照常规想法就是,移动数据到统计程序:先把数据读取到一个程序中,再进行汇总。
但是HDFS存的数据量非常大时,对汇总程序所在的服务器将产生巨大压力,并且网络IO也十分消耗资源。
为了解决这种问题,MapReduce提出一种想法:将统计程序移动到DataNode,每台DataNode(就近)统计完再汇总,充分利用DataNode的计算资源。YARN的调度决定了MapReduce程序所在的Node。
MapReduce过程- 确保数据存在HDFS上
- MapReduce提交给ResourceManager(RM),RM创建一个Job。
- 文件分片,默认将一个数据块作为一个分片。
- Job提交给RM,RM根据Node状态选择一台合适的Node调度AM,AM向RM申请资源,RM调度合适的NM启动Container,Container执行Task。

