指向hdfs而不是本地磁盘

ki1q1bka  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(366)

我试图运行逻辑回归的mahout上的一个文件,在hdfs-该文件的名称是ppeng.txt与以下命令行。
mahout org.apache.mahout.classifier.sgd.trainlogistic--passes 5--rate 1--lambda 0.5--input ppeng.txt--features 21--output test \u mahout--target nbr \u of \u txns--categories 2--predictor lifety \u rev \u usd \u amt ntpv \u 12 \u mth \u sent \u usd \u amt--types n
这个文件在hdfs中,但是,除非我将文件复制到本地机器,否则此行会出错并出现“找不到文件”异常。
我的hadoop\u局部变量也设置为null。我得到的错误如下-有人有经验解决这个问题-如果有,请帮助。

Exception in thread "main" java.io.FileNotFoundException: ppeng.txt (No such file or directory)**
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:120)
        at org.apache.mahout.classifier.sgd.TrainLogistic.open(TrainLogistic.java:316)
        at org.apache.mahout.classifier.sgd.TrainLogistic.mainToOutput(TrainLogistic.java:75)
        at org.apache.mahout.classifier.sgd.TrainLogistic.main(TrainLogistic.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
        at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:188)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
chhqkbe1

chhqkbe11#

它正在使用java.io.fileinputstream.open访问您的本地文件系统。
你能跑吗

hadoop fs -ls

你是从哪里来的?如果是这样,您需要取消mahout\u local并重试。mahout在您启动的机器上使用hadoop设置来确定hdfs和mapreduce作业跟踪器的位置。
下面是一篇关于在一台机器上在客户机、本地伪集群和完全集群成员之间切换的文章。它也为mahout树立了正确的旗帜。只是一些bash函数。
http://occamsmachete.com/ml/2012/07/02/how-to-switch-hadoop-confugurations/

相关问题