mac上运行打包程序报Mkdirs failed to create /var/folders/6c/mj93yj2x3z71ps5p99s9htc00000gn/T/hadoop-unjar3499

在Mac上打包并运行Hadoop MapReduce的wordcount程序时,遇到Mkdirs失败的问题。解决方法是删除系统临时目录中的相关文件,如果仍有问题,删除LICENSE文件。程序使用maven构建,打包后需要删除报错的license文件,创建输入文件并上传到HDFS,然后执行jar包。运行时注意避免手动创建输出目录,以防报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写测试程序的时候发现了一个问题,就是使用mac打包完的程序,报错如下:

其实内容很简单,就是对一个MR wordcount程序,代码稍后贴,先说下这个问题如何解决:

zip -d /Users/zhangchenguang/Desktop/HadoopPro-0.0.1-SNAPSHOT-jar-with-dependencies.jar  META-INF/LICENSE

然后就可以了,如果还不可以,报错  LICENSE 的话,继续删就好了...

zip -d /Users/zhangchenguang/Desktop/HadoopPro-0.0.1-SNAPSHOT-jar-with-dependencies.jar  LICENSE

如果想知道原因的话,看下源码就知道了,也很简单。。。。

 

血坑....凸( ‵o′)凸

 

wordcount代码如下:

map端:

package com.dtwave.mr;

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

/**
 * KEYIN:输入kv数据对中key的数据类型
 * VALUEIN:输入kv数据对中value的数据类型
 * KEYOUT:输出kv数据对中key的数据类型
 * VALUEOUT:输出kv数据对中value的数据类型
 * @author zhangchenguang
 *
 */
public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
	
	/*
	 * map方法是提供给map task进程来调用的,map task进程是每读取一行文本来调用一次我们自定义的map方法
	 * map task在调用map方法时,传递的参数:
	 * 		一行的起始偏移量LongWritable作为key
	 * 		一行的文本内容Text作为value
	 */
	@Override
	protected void map(LongWritable key, Text value,Context context) throws IOException, InterruptedException {
		//拿到一行文本内容,转换成String 类型
		String line = value.toString();
		//将这行文本切分成单词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉进悬崖的狼

请博主喝杯奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值