eclipse搭建hadoop的问题

cherry041032 2013-08-26 03:16:34
在虚拟机centos上搭建的hadoop。用终端可以正常运行。但在eclipse中(eclipse在master机上)运行去重程序出现如下的错误。
13/08/26 00:13:30 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
13/08/26 00:13:30 WARN mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
13/08/26 00:13:30 INFO mapred.JobClient: Cleaning up the staging area file:/tmp/hadoop-hadoop/mapred/staging/hadoop1251091612/.staging/job_local_0001
13/08/26 00:13:30 ERROR security.UserGroupInformation: PriviledgedActionException as:hadoop cause:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in
Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:235)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:252)
at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:962)
at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:979)
at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:897)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1083)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:465)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:495)
at com.hebut.mr.Dedup.main(Dedup.java:54)
急求各位大神的指点!!!感激不尽!!
...全文
1226 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
老好人哦 2013-09-02
  • 打赏
  • 举报
回复
可以去这个学习论坛看看,上面有解答的: http://bbs.itcast.cn/forum-122-1.html
cherry041032 2013-08-30
  • 打赏
  • 举报
回复
引用 5 楼 Liushuai030805 的回复:
[quote=引用 4 楼 cherry041032 的回复:] [quote=引用 2 楼 Liushuai030805 的回复:] Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
我是这样解决的,在代码中把输入输出路径写死。不写死怎么解决?……[/quote]肯定是文件输入输出路径问题。你在终端运行.jar的时候你没有创建输入输出路劲,但是默认都在hdfs文件系统根目录下,你要用eclipse开发,实际上也是打包后提交.jar包,但是在eclipse上要指定输入或者输出的路径。我在run configuration的arguement里设置的路径都是在hdfs文件系统上的,也就是说你的输入输出路径都要在hdfs文件系统上,如果你操作的是本地文件还要先使用hdfs api完成上传输入文件和下载输出文件。你在仔细看看,或者看看官方文档。[/quote]我在run arguement里设置的也是hdfs的路径。还有一个问题想请教一下,mapreduce与数据库相连的时候,用这个语句DistributedCache.addFileToClassPath(new Path("/lib/mysql‐connector‐java‐5.1.18‐bin.jar"), conf);运行以后显示这个包不存在,但我已经把他上传到hdfs下了
  • 打赏
  • 举报
回复
引用 5 楼 Liushuai030805 的回复:
[quote=引用 4 楼 cherry041032 的回复:] [quote=引用 2 楼 Liushuai030805 的回复:] Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
我是这样解决的,在代码中把输入输出路径写死。不写死怎么解决?……[/quote]肯定是文件输入输出路径问题。你在终端运行.jar的时候你没有创建输入输出路劲,但是默认都在hdfs文件系统根目录下,你要用eclipse开发,实际上也是打包后提交.jar包,但是在eclipse上要指定输入或者输出的路径。我在run configuration的arguement里设置的路径都是在hdfs文件系统上的,也就是说你的输入输出路径都要在hdfs文件系统上,如果你操作的是本地文件还要先使用hdfs api完成上传输入文件和下载输出文件。你在仔细看看,或者看看官方文档。[/quote] ----正解。思维清晰,理解正确。
Benboerba_ 2013-08-30
  • 打赏
  • 举报
回复
引用 7 楼 cherry041032 的回复:
[quote=引用 5 楼 Liushuai030805 的回复:] [quote=引用 4 楼 cherry041032 的回复:] [quote=引用 2 楼 Liushuai030805 的回复:] Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
我是这样解决的,在代码中把输入输出路径写死。不写死怎么解决?……[/quote]肯定是文件输入输出路径问题。你在终端运行.jar的时候你没有创建输入输出路劲,但是默认都在hdfs文件系统根目录下,你要用eclipse开发,实际上也是打包后提交.jar包,但是在eclipse上要指定输入或者输出的路径。我在run configuration的arguement里设置的路径都是在hdfs文件系统上的,也就是说你的输入输出路径都要在hdfs文件系统上,如果你操作的是本地文件还要先使用hdfs api完成上传输入文件和下载输出文件。你在仔细看看,或者看看官方文档。[/quote]我在run arguement里设置的也是hdfs的路径。还有一个问题想请教一下,mapreduce与数据库相连的时候,用这个语句DistributedCache.addFileToClassPath(new Path("/lib/mysql‐connector‐java‐5.1.18‐bin.jar"), conf);运行以后显示这个包不存在,但我已经把他上传到hdfs下了[/quote]你用的什么数据库关系型数据库还是nosql类型的数据库?
Benboerba_ 2013-08-29
  • 打赏
  • 举报
回复
引用 4 楼 cherry041032 的回复:
[quote=引用 2 楼 Liushuai030805 的回复:] Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
我是这样解决的,在代码中把输入输出路径写死。不写死怎么解决?……[/quote]肯定是文件输入输出路径问题。你在终端运行.jar的时候你没有创建输入输出路劲,但是默认都在hdfs文件系统根目录下,你要用eclipse开发,实际上也是打包后提交.jar包,但是在eclipse上要指定输入或者输出的路径。我在run configuration的arguement里设置的路径都是在hdfs文件系统上的,也就是说你的输入输出路径都要在hdfs文件系统上,如果你操作的是本地文件还要先使用hdfs api完成上传输入文件和下载输出文件。你在仔细看看,或者看看官方文档。
cherry041032 2013-08-28
  • 打赏
  • 举报
回复
引用 2 楼 Liushuai030805 的回复:
Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
我是这样解决的,在代码中把输入输出路径写死。不写死怎么解决?……
cherry041032 2013-08-28
  • 打赏
  • 举报
回复
引用 2 楼 Liushuai030805 的回复:
Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
我在run configuration的arguement里设置了了。。。
Benboerba_ 2013-08-28
  • 打赏
  • 举报
回复
Input path does not exist: hdfs://192.168.1.2:9000/user/dedup_in 确定你在Hdfs上由这样的输入路径?没有就用HDFS命令创建这样的输入目录,并且将你的数据上传到这个目录下。在运行程序之前 run configuration配置输入和输出路径。
Benboerba_ 2013-08-28
  • 打赏
  • 举报
回复
运行时没有指定文件输入和输出路劲。

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧