首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Ubuntu 12.04 - Eclispe 3.8-Hadoop-1.2.1-输入路径不存在

Ubuntu 12.04 - Eclispe 3.8-Hadoop-1.2.1-输入路径不存在
EN

Stack Overflow用户
提问于 2013-11-08 00:40:46
回答 1查看 1.6K关注 0票数 0

我确实设置了hadoop,遵循了所有必要的步骤,1.创建了hdfs文件系统2.将文本文件移动到输入目录3.拥有访问所有目录的特权。但是当运行简单的单词计数示例时,我得到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 import java.io.IOException;
 import java.util.*;

 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;

public class wordcount {

 public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        String line = value.toString();
        StringTokenizer tokenizer = new StringTokenizer(line);
        while (tokenizer.hasMoreTokens()) {
            word.set(tokenizer.nextToken());
            context.write(word, one);
        }
    }
 } 

 public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {

    public void reduce(Text key, Iterable<IntWritable> values, Context context) 
      throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        context.write(key, new IntWritable(sum));
    }
 }

 public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();

    conf.addResource(new Path("/HADOOP_HOME/conf/core-site.xml"));
    conf.addResource(new Path("/HADOOP_HOME/conf/hdfs-site.xml"));

    Job job = new Job(conf, "wordcount");

    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);

    job.setJarByClass(wordcount.class);

    job.setMapperClass(Map.class);
    job.setReducerClass(Reduce.class);

    job.setInputFormatClass(TextInputFormat.class);
    job.setOutputFormatClass(TextOutputFormat.class);





 // FileInputFormat.addInputPath(job, new Path(args[0]));
 //  FileOutputFormat.setOutputPath(job, new Path(args[1]));

    FileInputFormat.setInputPaths(job, new Path("/user/gabriele/input"));
    FileOutputFormat.setOutputPath(job, new Path("/user/gabriele/output"));


    job.waitForCompletion(true);
 }

}

但是,输入路径是有效的(也从命令行检查),甚至可以从eclipse本身查看路径中的文件,所以如果我错了,请提供帮助。

有一个解决方案,即添加以下2行:

Config.addResource(新路径(“/HADOOP_HOME/conf/core-site.xml”);config.addResource(新路径(“/HADOOP_HOME/conf/HDFS-site.xml”);

但还是没有用。

在这里,错误:在hadoop上以->的形式运行

13/11/ 08 :39:11警告util.NativeCodeLoader:无法为您的平台加载本机-hadoop库。在适用的情况下使用内置java类: 13/11/ 08 :39:12警告mapred.JobClient:使用GenericOptionsParser解析参数。应用程序应该实现相同的工具。13/11/ 08 :39:12警告mapred.JobClient:无作业jar文件集。可能找不到用户类。请参见JobConf(类)或JobConf#setJar(字符串)。13/11/ 08 :39:12 INFO mapred.JobClient:清理暂存区域file:/tmp/hadoop-gabriele/mapred/staging/gabriele481581440/.staging/job_local481581440_0001 13/11/ 08 :39:12错误security.UserGroupInformation: PriviledgedActionException :PriviledgedActionException as:gabriele cause:org.apache.hadoop.mapreduce.lib.input.InvalidInputException:输入路径不存在: file: /user/ org.apache.hadoop.mapreduce.lib.input.InvalidInputException: /org.apache.hadoop.mapreduce.lib.input.InvalidInputException:输入线程中的输入异常“主”org.apache.hadoop.mapreduce.lib.input.InvalidInputException:输入路径不存在:org.apache.hadoop.mapreduce.lib.input.InvalidInputException::/user/gabriele/input 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:1054) at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1071) at org.apache.hadoop.mapred.JobClient.access$700(JobClient.java:179)在org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:983) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:936) at java.security.AccessController.doPrivileged(Native Method)在javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936) at org.apache.hadoop.mapreduce.Job.submit(Job.java:550) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580) at wordcount.main(wordcount.java:74)

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-11-08 04:17:52

除非您的Hadoop安装确实植根于/HADOOP_HOME,否则我建议您更改以下行,以便将HADOOP_HOME替换为实际安装Hadoop的位置(/usr/lib/hadoop、/opt/hadoop或安装它的任何地方):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conf.addResource(new Path("/usr/lib/hadoop/conf/core-site.xml"));
conf.addResource(new Path("/usr/lib/hadoop/conf/hdfs-site.xml"));

或者在Eclipse中,将/usr/lib/hadoop/conf文件夹(或安装hadoop的地方)添加到构建类路径中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19854747

复制
相关文章
qtcpsocket编程_qtcpsocket判断连接状态
QTcpSocket 和 QTcpServer类实现了Qt的Tcp客户端和服务器。
全栈程序员站长
2022/10/01
2.5K0
Excel公式技巧103:检查列表是否已排序
很显然,单元格区域B2:B8中的数据是按升序排列的,而单元格区域D2:D8中的数据则没有按顺序排列。
fanjy
2021/08/31
2.1K0
Excel公式技巧103:检查列表是否已排序
VBA应用技巧:检查文件夹是否已存在
在使用VBA操作文件时,如果不先核实要操作的文件夹是否已存在,则有可能会导致代码出错。例如,在创建文件夹时、在到指定的文件夹中获取文件时。因此,我们需要先使用代码判断是否已存在相应的文件夹。
fanjy
2022/11/16
4K0
怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机
大家好,又见面了,我是你们的朋友全栈君。 我们有时候会在电脑中连接网络打印机来进行打印工作。可是有用户会遇到文件无法打印的问题。那么这个时候应该怎么检查电脑中是否已成功连接网络打印机?对此,我们可以参
全栈程序员站长
2022/08/25
5.1K0
怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机
qtcpsocket用法_qtcpsocket发送16进制数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
1.6K0
qtcpsocket断开_2020-05-06 QT子线程使用QTcpSocket连接服务器
分别是:1.继承QThread实现多线程2.继承QObject实现多线程(由于继承QObject的多线程实现方法更加灵活,Qt官方推荐使用该方法实现多线程)。这里将采用第二种方式实现多线程
全栈程序员站长
2022/10/03
1.5K0
qtcpsocket多线程_qtcpsocket接收数据
最近在写有关网络传输的项目,使用了Qt封装的QTcpSocket,但是发现很多的跨线程导致死机的问题,也许是我了解的不够深入吧。最开始是自己继承一个线程然后把主线程创建的套接字传递到子线程并且在子线程中写入数据遇到程序崩溃;否决后是考虑到了跨线程访问的问题,QTcpSocket跨线程崩溃说明它只能是在哪个线程创建就只能在哪个线程使用,这样想的话只需要把特别耗时的处理(数据准备操作)放到一个子线程中,然后把待写入数据通过信号槽的形式传递给QTcpSocket所在线程(其实就是主线程)中然后调用QTcpSocket::write()发送,但是这就让主线程在写数据了,如果数据不是很大倒也可以,看个人情况而定;最后决定使用QObject::moveToThread()的方式,因为我要不间断的发送大量的数据所以在一个子线程中操作才是明智的选择,就是把在主线程创建好的QTcpSocket对象通过QObject::moveToThread()放到一个子线程中操作(也就相当于是在子线程创建的),后续的QTcpSocket与主线程之间的操作都是通过信号槽形式进行的。
全栈程序员站长
2022/09/30
1.2K0
qtcpsocket多线程_qtcpsocket接收数据
QTcpSocket – client[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/195503.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/30
5030
QTcpSocket – client[通俗易懂]
qtcpsocket 客户端_qtcpsocket接收结构体数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
1.3K0
js检查是否是数组
该方法兼容Chrome 5, Firefox 4.0, IE 9, Opera 10.5 和 Safari 5,详细兼容性,可以查阅这篇文章。
IT工作者
2022/01/27
3.4K0
js检查日期是否合法
检查日期是否合法 <script> function CheckDateTime(str) { var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if (r == null) return false; r[2] = r[2] - 1; var d = new Date(r[
江一铭
2022/06/16
6.4K0
JS检查是否支持Storage
查看效果:http://hovertree.com/code/html5/q69kvsi6.htm
全栈程序员站长
2022/07/15
2.9K0
JavaScript 检查是否是数字
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109551.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
1.1K0
QTcpSocket简单使用[通俗易懂]
提供一个TCP基础服务类 继承自QObject 这个类用来接收到来的TCP连接,可以指定TCP端口或者用QTcpServer自己挑选一个端口,可以监听一个指定的地址或者所有的机器地址。 调用listen()来监听所有的连接,每当一个新的客户端连接到服务端就会发射信号newConnection() 调用nextPendingConnection()来接受待处理的连接。返回一个连接的QTcpSocket(),我们可以用这个返回的套接字和客户端进行连接
全栈程序员站长
2022/09/30
9410
python 检查是否存在ddos攻击
import dpkt import socket import optparse
用户5760343
2019/07/31
3.7K0
python 检查是否存在ddos攻击
php-检查网站是否宕机
浏览量 2 <?php $url="http://www.google.com"; $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT
kdyonly
2023/03/03
1.6K0
Flutter - 检查 Internet 连接示例[Flutter专题14]
有时,您可能想要检查运行您的应用程序的设备的互联网连接。如果应用程序是使用 Flutter 开发的,您可以阅读本教程中的示例。
徐建国
2021/12/07
2.1K0
Kettle之“检查表是否存在”
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53884107
用户1148526
2019/05/25
3.8K0
检测系统是否为检查版本(Checked)
<<Windows internals 5th editon>> page 48.
obaby
2023/02/28
2.2K0
检测系统是否为检查版本(Checked)
检查评论者是否有Gravatar头像
今天Angel来了,同时为风风找到了一个评论方面的BUG——游客身份若使用的邮箱没有Gravatar头像就不能发评论,这对于一些有特殊需要的朋友来说可能算不上BUG,但却不是我的需求,之后发现是comments-ajax.php文件中的以下代码在起作用:
WindCoder
2018/09/20
9290

相似问题

如何监听已连接的QTcpSocket

10

QTcpSocket连接

10

检查kinect是否已连接

41

检查它是否已连接

22

检查插座是否已连接

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文