You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@orc.apache.org by "Owen O'Malley (JIRA)" <ji...@apache.org> on 2016/12/01 19:31:58 UTC

[jira] [Resolved] (ORC-111) Make Java tool support DFS

     [ https://issues.apache.org/jira/browse/ORC-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Owen O'Malley resolved ORC-111.
-------------------------------
       Resolution: Fixed
    Fix Version/s: 1.3.0
                   1.2.3

I just committed this. Thanks, Junegunn!

> Make Java tool support DFS
> --------------------------
>
>                 Key: ORC-111
>                 URL: https://issues.apache.org/jira/browse/ORC-111
>             Project: Orc
>          Issue Type: Improvement
>          Components: Java
>            Reporter: Junegunn Choi
>            Assignee: Junegunn Choi
>             Fix For: 1.2.3, 1.3.0
>
>         Attachments: ORC-111.patch
>
>
> Java tool currently does not work with HDFS paths:
> {noformat}
> $ mvn clean package -DskipTests
> $ export UBERJAR=tools/target/orc-tools-1.3.0-SNAPSHOT-uber.jar
> $ java -jar $UBERJAR meta hdfs://nn-host/foobar.snappy.orc
> log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
> Exception in thread "main" java.io.IOException: No FileSystem for scheme: hdfs
>         at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
>         at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
>         at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
>         at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
>         at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
>         at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
>         at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
>         at org.apache.orc.tools.FileDump.getAllFilesInPath(FileDump.java:248)
>         at org.apache.orc.tools.FileDump.main(FileDump.java:121)
>         at org.apache.orc.tools.Driver.main(Driver.java:100)
> {noformat}
> This is because DistributedFileSystem is not registered as a subclass of FileSystem SPI.
> {noformat}
> $ unzip -p tools/target/orc-tools-1.3.0-SNAPSHOT-uber.jar META-INF/services/org.apache.hadoop.fs.FileSystem
> # ...
> org.apache.hadoop.fs.LocalFileSystem
> org.apache.hadoop.fs.viewfs.ViewFileSystem
> org.apache.hadoop.fs.ftp.FTPFileSystem
> org.apache.hadoop.fs.HarFileSystem
> {noformat}
> We can fix this by simply adding containerDescriptorHandler to the assembly descriptor. Now the same command gives:
> {noformat}
> org.apache.hadoop.fs.LocalFileSystem
> org.apache.hadoop.fs.viewfs.ViewFileSystem
> org.apache.hadoop.fs.ftp.FTPFileSystem
> org.apache.hadoop.fs.HarFileSystem
> org.apache.hadoop.hdfs.DistributedFileSystem
> org.apache.hadoop.hdfs.web.HftpFileSystem
> org.apache.hadoop.hdfs.web.HsftpFileSystem
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem
> org.apache.hadoop.hdfs.web.SWebHdfsFileSystem
> {noformat}
> and we can use the uberjar with HDFS paths.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)