windows运行自己编写的wordcount时遇到的问题

系统:win11专业版
jdk版本:1.8
hadoop版本3.1.0
代码太简单了就不放上来了
运行一个最简单的wordcount,本以为不会出现问题的谁知道一运行就直接报错。
现在看一下报错信息

2023-05-17 16:18:36,000 WARN [org.apache.hadoop.metrics2.impl.MetricsConfig] - Cannot locate configuration: tried hadoop-metrics2-jobtracker.properties,hadoop-metrics2.properties
  2023-05-17 16:18:36,052 INFO [org.apache.hadoop.metrics2.impl.MetricsSystemImpl] - Scheduled Metric snapshot period at 10 second(s).
  2023-05-17 16:18:36,052 INFO [org.apache.hadoop.metrics2.impl.MetricsSystemImpl] - JobTracker metrics system started
  2023-05-17 16:18:36,398 WARN [org.apache.hadoop.mapreduce.JobResourceUploader] - Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
  2023-05-17 16:18:36,417 WARN [org.apache.hadoop.mapreduce.JobResourceUploader] - No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
  2023-05-17 16:18:36,445 INFO [org.apache.hadoop.mapreduce.lib.input.FileInputFormat] - Total input files to process : 1
  2023-05-17 16:18:36,476 INFO [org.apache.hadoop.mapreduce.JobSubmitter] - number of splits:1
  2023-05-17 16:18:36,564 INFO [org.apache.hadoop.mapreduce.JobSubmitter] - Submitting tokens for job: job_local1282501214_0001
  2023-05-17 16:18:36,565 INFO [org.apache.hadoop.mapreduce.JobSubmitter] - Executing with tokens: []
  2023-05-17 16:18:36,604 INFO [org.apache.hadoop.mapreduce.JobSubmitter] - Cleaning up the staging area file:/tmp/hadoop/mapred/staging/1282501214/.staging/job_local1282501214_0001
  Exception in thread "main" java.lang.IllegalArgumentException: Can not create a Path from an empty string
	at org.apache.hadoop.fs.Path.checkPathArg(Path.java:172)
	at org.apache.hadoop.fs.Path.<init>(Path.java:184)
	at org.apache.hadoop.fs.Path.<init>(Path.java:129)
	at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:166)
	at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:794)
	at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:251)
	at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1571)
	at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1568)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1878)
	at org.apache.hadoop.mapreduce.Job.submit(Job.java:1568)
	at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1589)
	at com.atguigu.mapreduce.wordcount.MyDriver.main(MyDriver.java:27)
  • 一个警告指示找不到Hadoop的配置文件hadoop-metrics2-jobtracker.propertieshadoop-metrics2.properties
  • 一个信息消息表示指定的度量快照周期为10秒,并且JobTracker度量系统已启动。
  • 一个警告指出尚未执行Hadoop命令行选项解析,并建议实现Tool接口并使用ToolRunner来解决此问题。
  • 另一个警告提醒没有设置作业的jar文件,这可能导致无法找到用户类。它建议使用Job或Job#setJar(String)方法来设置作业的jar文件。
  • 一个信息消息显示要处理的总输入文件数为1。
  • 作业提交过程的信息接着显示,包括分片数和使用的令牌。
  • 在作业提交过程中发生了错误,导致程序的执行停止。错误信息指示由于传递了空字符串参数而无法创建Path对象。
  • 应该是file:/tmp/hadoop/mapred/staging/1282501214/.staging/job_local1282501214_0001 这里出现了问题,去目录检查在这里插入图片描述
    那么原因确定可能是出现中文导致的,而这个中文正好是之前改过的本地用户名。
    经过排查发现是因为之前把本地用户改正中文导致的,希望大家引以为戒!!!解决办法右键此电脑->管理–>将本地用户修改成英文在这里插入图片描述
    再次运行
    在这里插入图片描述

成功!
Tips:如果想深入了解的话可以去看一下job提交的源码。不过hadoopjob提交的源码太复杂了就不放在这里面说明了。

//获取job的路径
Path submitJobFile = JobSubmissionFiles.getJobConfPath(submitJobDir);
应该是这里出了问题。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值