用户登录
用户注册

分享至

hadoop上传文件命令

  • 作者: 日骆希珊
  • 来源: 51数据库
  • 2020-09-25
1. mapreduce的作业输入输出都需要在一个分布式文件系统上,一般来说都是hdfs,也可以是其他的文件系统。所以运行作业的输入文件必须首先上传到hdfs,输出文件自然也在hdfs上。

2. 把文件上传到hdfs上,hdfs会根据设定的块的大小,默认是64M,来分块存放文件,并存放到不同机器以及会备份多份
3. mapreduce作业在开始时会对输入文件进行切分,这个和hdfs分块存储文件是不同的。但是mapreduce切分输入文件大小也和文件的块有关,不过mapreduce切分文件的目的是方便多个map任务同时进行处理,提高处理效率,实现分布式计算。而且在mapreduce看来输入文件是一个整体,并不知道输入文件在hdfs中的存储方式。这样说吧,文件在hdfs中的存储方式由namenode决定,所以只有namenode知道,而Mapreduce任务由jobtracker负责,所以jobtracker无法知道输入文件的具体分块信息,只能知道哪些节点上保存有该文件。



  因为提交作业时,你的数据必须是在hdfs文件系统里面的。你上传到Hdfs上的时候,你的数据已经分布式保存了。你可以查查看一下。他说的那个split。就是这一步。下一步就直接运行程序。执行map了。



  办公费退换货表格回复太讨厌你一般

再看看别人怎么说的。
软件
前端设计
程序设计
Java相关