如何通过C语言实现Hadoop(三)的高级应用?

2026-05-25 16:340阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1261个文字,预计阅读时间需要6分钟。

如何通过C语言实现Hadoop(三)的高级应用?

MapReduce和Hadoop中,数据被切分存放在HDFS的不同DataNode中。若需汇总,按常规做法是移动数据到计算程序:先读取数据到程序,再进行汇总。但HDFS存储的数据量通常非常大。

MapReduce

Hadoop中将数据切分成块存在HDFS不同的DataNode中,如果想汇总,按照常规想法就是,移动数据到统计程序:先把数据读取到一个程序中,再进行汇总。

但是HDFS存的数据量非常大时,对汇总程序所在的服务器将产生巨大压力,并且网络IO也十分消耗资源。

为了解决这种问题,MapReduce提出一种想法:将统计程序移动到DataNode,每台DataNode(就近)统计完再汇总,充分利用DataNode的计算资源。YARN的调度决定了MapReduce程序所在的Node。

MapReduce过程
  1. 确保数据存在HDFS上
  2. MapReduce提交给ResourceManager(RM),RM创建一个Job。
  3. 文件分片,默认将一个数据块作为一个分片。
  4. Job提交给RM,RM根据Node状态选择一台合适的Node调度AM,AM向RM申请资源,RM调度合适的NM启动Container,Container执行Task。
阅读全文

本文共计1261个文字,预计阅读时间需要6分钟。

如何通过C语言实现Hadoop(三)的高级应用?

MapReduce和Hadoop中,数据被切分存放在HDFS的不同DataNode中。若需汇总,按常规做法是移动数据到计算程序:先读取数据到程序,再进行汇总。但HDFS存储的数据量通常非常大。

MapReduce

Hadoop中将数据切分成块存在HDFS不同的DataNode中,如果想汇总,按照常规想法就是,移动数据到统计程序:先把数据读取到一个程序中,再进行汇总。

但是HDFS存的数据量非常大时,对汇总程序所在的服务器将产生巨大压力,并且网络IO也十分消耗资源。

为了解决这种问题,MapReduce提出一种想法:将统计程序移动到DataNode,每台DataNode(就近)统计完再汇总,充分利用DataNode的计算资源。YARN的调度决定了MapReduce程序所在的Node。

MapReduce过程
  1. 确保数据存在HDFS上
  2. MapReduce提交给ResourceManager(RM),RM创建一个Job。
  3. 文件分片,默认将一个数据块作为一个分片。
  4. Job提交给RM,RM根据Node状态选择一台合适的Node调度AM,AM向RM申请资源,RM调度合适的NM启动Container,Container执行Task。
阅读全文