apache pig没有连接到hdfs

Posted

技术标签:

【中文标题】apache pig没有连接到hdfs【英文标题】:apache pig not connecting to hdfs 【发布时间】:2016-01-11 05:09:26 【问题描述】:

我有 Hadoop 版本 2.6.3 和 pig-0.6.0 我在单节点集群中启动并运行了所有守护进程。 发射猪命令后。猪只连接到 file:/// 而不是 hdfs 你能告诉我如何让它连接hdfs吗 下面是我可以看到的 INFO 日志

2016-01-10 20:58:30,431 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///
2016-01-10 20:58:30,650 [main] INFO  org.apache.hadoop.metrics.jvm.JvmMetrics - Initializing JVM Metrics with processName=JobTracker, sessionId=

当我在 GRUNT 中点击命令时

grunt> ls  hdfs://localhost:54310/  
2016-01-10 21:05:41,059 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2999: Unexpected internal error. Wrong FS: hdfs://localhost:54310/, expected: file:///
Details at logfile: /home/hguna/pig_1452488310172.log

我不知道为什么它需要 file:///

ERROR 2999: Unexpected internal error. Wrong FS: hdfs://localhost:54310/, expected: file:///

java.lang.IllegalArgumentException: Wrong FS: hdfs://localhost:54310/, expected: file:///
        at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:305)
        at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:47)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:357)
        at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
        at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:643)
        at org.apache.pig.backend.hadoop.datastorage.HDataStorage.isContainer(HDataStorage.java:203)
        at org.apache.pig.backend.hadoop.datastorage.HDataStorage.asElement(HDataStorage.java:131)
        at org.apache.pig.tools.grunt.GruntParser.processLS(GruntParser.java:576)
        at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:304)
        at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:168)
        at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:144)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:75)
        at org.apache.pig.Main.main(Main.java:352)

我是否正确配置了 hadoop?或者有些地方我错了,如果有任何文件需要分享,请告诉我。我已经做了足够的研究无法修复它。顺便说一句,我是 Hadoop 和猪的新手 请帮我 。 谢谢

【问题讨论】:

注意:在我的 ~/.bashrc 文件中注意到我没有包含 PIG_CLASSPATH = /usr/lib/hadoop/conf 。伙计们,这可能是一个问题。 你的默认文件系统是什么? 【参考方案1】:

检查 hadoop-site.xml、core-site.xml 和 mapred-site.xml 中的配置

使用 PIG_CLASSPATH 指定附加的类路径条目。例如,将 hadoop 配置文件(hadoop-site.xml、core-site.xml)添加到类路径

export PIG_CLASSPATH=<path_to_hadoop_conf_dir>

您应该通过设置 PIG_USER_CLASSPATH_FIRST 来覆盖默认的类路径条目

export PIG_USER_CLASSPATH_FIRST=true

之后你就可以启动 grunt shell

【讨论】:

以上是关于apache pig没有连接到hdfs的主要内容,如果未能解决你的问题,请参考以下文章

Spark 1.2 无法连接到 HDP 2.2 上的 HDFS

Pig 不断尝试连接到作业历史服务器(并且失败)

从远程服务器连接到 pig

无法从 Windows 连接到远程 HDFS

Spark 2 连接到 Hive MetaStore [重复]

无法使用 Apache spark 2.1.0 连接到 hive 数据库