命令行查看当前正在执行的job id:
[hadoop@compute-63-9 ~]$ /hadoop/hadoop_home/bin/hadoop job -jt compute-63-0:9001 -list all |awk '{ if($2==1) print $1 }'
job_201203311041_0041
设置副本数目
hadoop fs -setrep [-R] [-w] <副本個數> <HDFS檔案名稱>
设置map输出压缩:
conf.set("mapred.compress.map.output", "true")
conf.set("mapred.output.compression.type", "BLOCK");
conf.set("mapred.map.output.compression.codec", "org.apache.hadoop.io.compress.GzipCodec");
存储写满了。
org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory for taskTracker/jobcache/job_201108311619_0703/attempt_201108311619_0703_m_000076_0/output/spill0.out
Error: java.io.IOException: No space left on device
java.io.IOException: Task: attempt_201108311619_0703_r_000002_0 - The reduce copier failed
hadoop目的地启动distcp数据传输:
hadoop distcp hdfs://172.30.4.50:9000/user/hadoop/lisk/mouse/str/ hdfs://hs14:9000/user/hadoop/gusc/new_contig
或者
hadoop distcp hdfs://172.30.4.50:9000/user/hadoop/lisk/mouse/id /user/hadoop/gusc
Map与Reduce之间的格式要注意,如果没写Map的输出格式,则默认按照Reduce的处理。如果Map和Reduce直接数据格式不一致,则需要指明:
job.setMapOutputKeyClass(Class<?> theClass)
job.setMapOutputValueClass(Class<?> theClass)
job.setOutputKeyClass(Class<?> theClass)
job.setOutputValueClass(Class<?> theClass)
Reducer的类型没对应上有时候并不会出错,得仔细检查。如下所示,这时候会调用默认的reducer来执行。
public static class Reduce extends Reducer<LongWritable, Text, Text, Text> {
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
}
}
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com