【问题标题】:Pig Error trying Edureka's TutorialPig Error 尝试 Edureka 的教程
【发布时间】:2018-06-18 21:19:25
【问题描述】:

我一直在尝试运行 hadoop 和 PIG 等其他组件。

我正在尝试这个教程: https://www.edureka.co/blog/pig-programming-create-your-first-apache-pig-script/

一切正常,但是当我在第 2 步运行脚本时,它会抛出此错误:

2018-01-09 13:47:20,682 [JobControl] INFO  org.apache.hadoop.mapreduce.lib.jobcontrol.ControlledJob - PigLatin:output.pig got an error while submitting 
org.apache.pig.backend.executionengine.ExecException: ERROR 2118: Input path does not exist: hdfs://localhost:9000/carlos/information.txt
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat.getSplits(PigInputFormat.java:279)
    at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:301)
    at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:318)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:196)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
    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:1698)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)
    at org.apache.hadoop.mapreduce.lib.jobcontrol.ControlledJob.submit(ControlledJob.java:335)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.pig.backend.hadoop23.PigJobControl.submit(PigJobControl.java:128)
    at org.apache.pig.backend.hadoop23.PigJobControl.run(PigJobControl.java:194)
    at java.lang.Thread.run(Thread.java:748)
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher$1.run(MapReduceLauncher.java:276)

【问题讨论】:

  • Input path does not exist... 所以,做吧

标签: hadoop hdfs apache-pig


【解决方案1】:

在第 1 步之前,您需要此命令

hadoop fs –copyFromLocal /home/carlos/information.txt /carlos

但是,如果该目录尚不存在,这会将您的文件复制到 HDFS 上名为/carlos文件

如果你想让/carlos成为一个目录,你需要删除文件并使其成为一个目录

hadoop fs -rm /carlos
hadoop fs -mkdir /carlos

另外,在将文件复制到目录时,通常应该使用尾部斜杠,就像这样

hadoop fs –copyFromLocal /home/carlos/information.txt /carlos/

你也可以让你的 Pig 代码加载 /carlos 作为文件。即使它是一个目录,它仍然可以读取其中的所有文件

【讨论】:

  • 当然你是对的,但是我以这种方式复制了命令 hadoop fs –copyFromLocal /home/carlos/information.txt /carlos 我也重复了这个命令并且控制台说'/carlos文件存在'
  • 如果你运行hdfs dfs -ls hdfs://localhost:9000/carlos,你看到文件了吗?
  • 看看它显示了什么,我看不到文件信息.txt(对不起我是新手)-rw-r--r-- 1 carlos supergroup 213 2018-01-10 10:20 hdfs://localhost:9000/carlos
猜你喜欢
  • 1970-01-01
  • 2014-10-11
  • 2012-09-10
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多