It looks like file system configuration is created inside
WorkspaceSchemaFactory
constructor:

this.fsConf = plugin.getFsConf();

Does it mean that we have to implement our own Ignite's FileSystemPlugin to
be able to work with Drill?

On Fri, Feb 5, 2016 at 8:55 PM, Vladimir Ozerov <voze...@gridgain.com>
wrote:

> *Peter,*
>
> I created the ticket in Ignite JIRA. Hope someone form community will be
> able to throw a glance on it soon -
> https://issues.apache.org/jira/browse/IGNITE-2568
> Please keep an eye on it.
>
> Cross-posting the issue to Drill dev list.
>
> *Dear Drill folks,*
>
> We have our own implementation of Hadoop FileSystem here in Ignite. It has
> unique URI prefix ("igfs://") and is normally registered in Hadoop's
> core-site.xml like this:
>
> <property>
>     <name>fs.igfs.impl</name>
>     
> <value>org.apache.ignite.hadoop.fs.v1.IgniteHadoopFileSystem</value></property>
>
>
> However, when we try to use this file system as data source in Drill, the
> exception is thrown (see stack trace below). I suspect that default Hadoop
> core-site.xml is not taken in consideration by Drill somehow. Could you
> please give us a hint on how to properly configure custom Hadoop FileSystem
> implementation in your system?
>
> Thank you!.
>
> Vladimir.
>
> Stack trace:
>
> java.io.IOException: No FileSystem for scheme: igfs
> at
> org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2644)
> ~[hadoop-common-2.7.1.jar:na]
> at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2651)
> ~[hadoop-common-2.7.1.jar:na]
> at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
> ~[hadoop-common-2.7.1.jar:na]
> at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687)
> ~[hadoop-common-2.7.1.jar:na]
> at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669)
> ~[hadoop-common-2.7.1.jar:na]
> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)
> ~[hadoop-common-2.7.1.jar:na]
> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:170)
> ~[hadoop-common-2.7.1.jar:na]
> at
> org.apache.drill.exec.store.dfs.DrillFileSystem.<init>(DrillFileSystem.java:92)
> ~[drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.util.ImpersonationUtil$2.run(ImpersonationUtil.java:213)
> ~[drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.util.ImpersonationUtil$2.run(ImpersonationUtil.java:210)
> ~[drill-java-exec-1.4.0.jar:1.4.0]
> at java.security.AccessController.doPrivileged(Native Method)
> ~[na:1.8.0_40-ea]
> at javax.security.auth.Subject.doAs(Subject.java:422) ~[na:1.8.0_40-ea]
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
> ~[hadoop-common-2.7.1.jar:na]
> at
> org.apache.drill.exec.util.ImpersonationUtil.createFileSystem(ImpersonationUtil.java:210)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.util.ImpersonationUtil.createFileSystem(ImpersonationUtil.java:202)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory.accessible(WorkspaceSchemaFactory.java:150)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.store.dfs.FileSystemSchemaFactory$FileSystemSchema.<init>(FileSystemSchemaFactory.java:78)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.store.dfs.FileSystemSchemaFactory.registerSchemas(FileSystemSchemaFactory.java:65)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.store.dfs.FileSystemPlugin.registerSchemas(FileSystemPlugin.java:131)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.store.StoragePluginRegistry$DrillSchemaFactory.registerSchemas(StoragePluginRegistry.java:403)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.ops.QueryContext.getRootSchema(QueryContext.java:166)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.ops.QueryContext.getRootSchema(QueryContext.java:155)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.ops.QueryContext.getRootSchema(QueryContext.java:143)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.ops.QueryContext.getNewDefaultSchema(QueryContext.java:129)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> org.apache.drill.exec.planner.sql.DrillSqlWorker.<init>(DrillSqlWorker.java:93)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:907)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244)
> [drill-java-exec-1.4.0.jar:1.4.0]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [na:1.8.0_40-ea]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [na:1.8.0_40-ea]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea]
>
>
>
> On Fri, Feb 5, 2016 at 4:18 PM, pshomov <pe...@activitystream.com> wrote:
>
>>
>> ​Hi Vladimir,
>>
>> My bad about that ifgs://, fixed it but it changed nothing.
>>
>> I don’t think Drill cares much about Hadoop settings. It never asked me
>> to point it to an installation or configuration of Hadoop. I believe they
>> have their own storage plugin mechanism and one of their built-in plugins
>> happens to be the HDFS one.
>>
>> Here is (part of) the Drill log
>>
>> 2016-02-05 13:14:03,507 [294b5fe3-8f63-2134-67e0-42f7111ead44:foreman]
>> ERROR o.a.d.exec.util.ImpersonationUtil - Failed to create DrillFileSystem
>> for proxy user: No FileSystem for scheme: igfs
>> java.io.IOException: No FileSystem for scheme: igfs
>> at
>> org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2644)
>> ~[hadoop-common-2.7.1.jar:na]
>> at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2651)
>> ~[hadoop-common-2.7.1.jar:na]
>> at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
>> ~[hadoop-common-2.7.1.jar:na]
>> at
>> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687)
>> ~[hadoop-common-2.7.1.jar:na]
>> at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669)
>> ~[hadoop-common-2.7.1.jar:na]
>> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)
>> ~[hadoop-common-2.7.1.jar:na]
>> at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:170)
>> ~[hadoop-common-2.7.1.jar:na]
>> at
>> org.apache.drill.exec.store.dfs.DrillFileSystem.<init>(DrillFileSystem.java:92)
>> ~[drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.util.ImpersonationUtil$2.run(ImpersonationUtil.java:213)
>> ~[drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.util.ImpersonationUtil$2.run(ImpersonationUtil.java:210)
>> ~[drill-java-exec-1.4.0.jar:1.4.0]
>> at java.security.AccessController.doPrivileged(Native Method)
>> ~[na:1.8.0_40-ea]
>> at javax.security.auth.Subject.doAs(Subject.java:422) ~[na:1.8.0_40-ea]
>> at
>> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
>> ~[hadoop-common-2.7.1.jar:na]
>> at
>> org.apache.drill.exec.util.ImpersonationUtil.createFileSystem(ImpersonationUtil.java:210)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.util.ImpersonationUtil.createFileSystem(ImpersonationUtil.java:202)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory.accessible(WorkspaceSchemaFactory.java:150)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.store.dfs.FileSystemSchemaFactory$FileSystemSchema.<init>(FileSystemSchemaFactory.java:78)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.store.dfs.FileSystemSchemaFactory.registerSchemas(FileSystemSchemaFactory.java:65)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.store.dfs.FileSystemPlugin.registerSchemas(FileSystemPlugin.java:131)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.store.StoragePluginRegistry$DrillSchemaFactory.registerSchemas(StoragePluginRegistry.java:403)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.ops.QueryContext.getRootSchema(QueryContext.java:166)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.ops.QueryContext.getRootSchema(QueryContext.java:155)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.ops.QueryContext.getRootSchema(QueryContext.java:143)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.ops.QueryContext.getNewDefaultSchema(QueryContext.java:129)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> org.apache.drill.exec.planner.sql.DrillSqlWorker.<init>(DrillSqlWorker.java:93)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:907)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244)
>> [drill-java-exec-1.4.0.jar:1.4.0]
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>> [na:1.8.0_40-ea]
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>> [na:1.8.0_40-ea]
>> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea]
>> 2016-02-05 13:14:03,556 [294b5fe3-8f63-2134-67e0-42f7111ead44:foreman]
>> ERROR o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: IOException: No
>> FileSystem for scheme: igfs
>>
>>
>> [Error Id: 6c95179a-6d26-498c-905f-dc18509c1651 on 192.168.1.42:31010]
>> org.apache.drill.common.exceptions.UserException: SYSTEM ERROR:
>> IOException: No FileSystem for scheme: igfs
>>
>>
>> I copied the same ignite jars that go into Hadoop to Drill just in case
>> but that did not help either.
>> I think the only way is to write a Drill storage plugin for Ignite. Or
>> somehow make the Ignite caching happen inside Hadoop and be totally
>> transparent to Drill.
>>
>> Thank you for detailed help, any further ideas are as always welcome ;)
>>
>> Best regards,
>>
>> Petar
>>
>> ------------------------------
>> View this message in context: Re: Apache Drill querying IGFS-accelerated
>> (H)DFS?
>> <http://apache-ignite-users.70518.x6.nabble.com/Apache-Drill-querying-IGFS-accelerated-H-DFS-tp2840p2859.html>
>> Sent from the Apache Ignite Users mailing list archive
>> <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com.
>>
>
>

Reply via email to