0

0

myeclipse运行mapreduce报错:Cannot run program "cygpath

php中文网

php中文网

发布时间:2016-06-07 15:30:35

|

1447人浏览过

|

来源于php中文网

原创

直接上代码:mapper package com.winksi.dotstat;import java.io.IOException;import org.apache.hadoop.io.Text;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.mapreduce.Mapper;public class DotProducedMapper extends MapperLongW

直接上代码:mapper

package com.winksi.dotstat;
import java.io.IOException;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.mapreduce.Mapper;

public class DotProducedMapper extends  Mapper{
	@Override
	public void map(LongWritable key, Text value, Context context) 
			throws IOException, InterruptedException{
		String line = value.toString();
		String fileds[] = line.split(",");
		String imsi = fileds[0];
		String adccompany = fileds[1];
		String phone = fileds[2];
		String cur_time = fileds[3];
		String call_length = fileds[4];
		String call_type = fileds[5];
		String show_length = fileds[6];
		String pkgname = fileds[7];
		String ip = fileds[8];
		String model = fileds[9];
		String ossdk = fileds[10];
		String av = fileds[11];
		String cityId = fileds[12];
		StringBuffer strKey = new StringBuffer();
		strKey.append(model).append(",").append(adccompany).append(",")
		.append(ossdk.toUpperCase()).append(",").append(av).append(",")
		.append(phone);
		context.write(new Text(strKey.toString()), new Text(imsi));
	}
}

Reducer:
package com.winksi.dotstat;

import java.io.IOException;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class DotProducedReducer extends Reducer{
	 public void reduce(Text key, Iterator values,
			 Context context)
		throws IOException, InterruptedException  {
		int count = 0;
		Set set = new HashSet();
		while (values.hasNext()) {
			set.add(values.next().toString());
            count++;
        }
		StringBuffer sb = new StringBuffer();
		sb.append(count).append(",").append(set.size());
		Date yesterdayDate = new Date(new Date().getTime() - 1*24*60*60*1000);
		String yesterday = DotStatPvUv.getCurrentDay(yesterdayDate);
		StringBuffer sbKey = new StringBuffer();
		sbKey.append(key.toString()).append(",").append(yesterday);
		context.write(new Text(sbKey.toString()), new Text(sb.toString()));
	}
}

Spring配置文件:


	
	
	  fs.default.name=${hd.fs}
	

	
 
		
maven的jar包pom.xml
		
			org.springframework.data
			spring-data-hadoop
			1.0.2.RELEASE-cdh4
		

		
			org.apache.hadoop
			hadoop-core
			${hadoop.core.version}
		
java代码:

public class Test {
    public static void main(String[] args) {
         ApplicationContext ctx = new ClassPathXmlApplicationContext("hadoop-mr.xml");
    }
}

运行报错:

Exception in thread "main" java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, ?????μ???
 at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
 at org.apache.hadoop.util.Shell.runCommand(Shell.java:201)
 at org.apache.hadoop.util.Shell.run(Shell.java:183)
 at org.apache.hadoop.fs.FileUtil$CygPathCommand.(FileUtil.java:413)
 at org.apache.hadoop.fs.FileUtil.makeShellPath(FileUtil.java:439)
 at org.apache.hadoop.fs.FileUtil.makeShellPath(FileUtil.java:466)
 at org.apache.hadoop.fs.RawLocalFileSystem.execCommand(RawLocalFileSystem.java:559)
 at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:551)
 at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:355)
 at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:212)
原因是尽管连接的hadoop平台是在linux上面,但是我们的eclipse调试环境是在windows,我们需要安装一个linux模拟器“cygwin”来支持程序的运行。

在windows开发服务器上安装好cygwin,然后在环境变量中添加cygwin的bin目录,比如“D:\Program\cygwin\bin”,问题得以解决。

注意是在系统环境变量的Path上加入“D:\Program\cygwin\bin”这样我们就行像在linux上运行命令一样在windows的dos窗口下执行ls,cd等命令。

刚开始我一直是在系统环境变量下的classpath上加的D:\Program\cygwin\bin”,尝试了半天都是失败,后来才发现,是加错了地方。加完之后再cmd窗口中试一下ls,cd等命令。成功后重启myeclipse运行代码,就没有问题了。

------------------------------------------------------------------------------

Sesame AI
Sesame AI

一款开创性的语音AI伴侣,具备先进的自然对话能力和独特个性。

下载

之前纠结集成的Mapper和Reducer的问题,有两个文件可以继承,具体问题见:

http://wuyanzan60688.blog.163.com/blog/static/127776163201310164244955/

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.2万人学习

Excel 教程
Excel 教程

共162课时 | 14.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号