hdfs滚烫教程:list(tutorial/data/hello.txt)中的一个或多个路径缺少数据

mwkjh3gx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(274)

在配置ssh和rsync之后,当我尝试运行烫伤教程时(https://github.com/cascading/scalding-tutorial/)使用命令:
$scripts/spoolt.rb—hdfs教程/tutorial0.scala
我得到以下错误:

com.twitter.scalding.InvalidSourceException: [com.twitter.scalding.TextLineWrappedArray(tutorial/data/hello.txt)] Data is missing from one or more paths in: List(tutorial/data/hello.txt)

尽管tutorial/data/hello.txt文件确实存在,但仍会发生此错误。
如何解决这个问题?
标准输出:

$ scripts/scald.rb --hdfs tutorial/Tutorial0.scala
scripts/scald.rb:194: warning: already initialized constant SCALA_LIB_DIR
dkondratev@hadoop-n002.maxus.lan's password: 
dkondratev@hadoop-n002.maxus.lan's password: 

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/hadoop/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/lib/phoenix/phoenix-4.0.0.2.1.2.1-471-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
14/07/07 19:05:45 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize
14/07/07 19:05:45 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
Exception in thread "main" java.lang.Throwable: GUESS: Data is missing from the path you provided.
If you know what exactly caused this error, please consider contributing to GitHub via following link.
https://github.com/twitter/scalding/wiki/Common-Exceptions-and-possible-reasons#comtwitterscaldinginvalidsourceexception
    at com.twitter.scalding.Tool$.main(Tool.scala:132)
    at com.twitter.scalding.Tool.main(Tool.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
kmpatx3s

kmpatx3s1#

我认为您遇到的问题是,您告诉烫伤在hdfs中运行,但是您作为输入提供的文件在本地文件系统中,而不是在hdfs中。在运行该示例之前,请将文件上载到hdfs:

hadoop fs -mkdir tutorial
hadoop fs -mkdir tutorial/data
hadoop fs -put tutorial/data/hello.txt tutorial/data/hello.txt
9bfwbjaz

9bfwbjaz2#

尝试使用maven shade plugin将您的作业打包到一个胖jar中,然后通过hadoop命令运行您的烫伤作业:

hadoop jar your-uber.jar com.twitter.scalding.Tool bar.foo.MyClassJob --hdfs --input ... --output ...

相关问题