[ 
https://issues.apache.org/jira/browse/HADOOP-6541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12831074#action_12831074
 ] 

Aaron Kimball commented on HADOOP-6541:
---------------------------------------


Allen,

You can indeed shell escape with {{! command}}. No notion of a local working 
dir, unfortunately. (Next task: lcd and lls commands!)

Currently you can't launch a Hadoop job within this shell. I think that's 
another patch / separate issue -- dealing with the classloader for a jar has 
enough subtleties associated with it that I punted for the first version. 
Eventually this shell should be able to do all the {{hadoop jar}}, {{hadoop 
job}}, {{mradmin/dfsadmin}} etc commands too, but there's a lot of 
functionality to implement here. All separate tasks in my mind.

In order to establish this code base, my first cut of this system is just 
focused on implementing filesystem access.

You're right that 'rmr' is a hack. A better argument parsing system is probably 
necessary moving forward to support things like 'rm -[rf]', 'test', etc. Right 
now all arguments are treated as filenames in commands like rm; supporting 
various flags would require using CommandLineParser and other fun. Not 
impossible, but not first-cut material. Also, jline's tab-completor makes it a 
bit tricky to handle command-specific {{-arguments}}. I'll need to poke around 
more to figure out if/how that can be done.

As for cd taking a URL -- technically it already does. But the current design 
initializes a FileContext and uses its setWorkingDirectory() method to move 
around, and then uses FsShell to do some operations like deletes (which require 
globbing). FsShell doesn't allow reinitialization of the FileSystem, so this 
code checks for changes in the default FS and reinitializes the structures it 
uses. We should probably refactor FsShell soon to allow it to work on an 
arbitrary FileContext instead of the one it instantiates at construction time 
(or instantiate a new FsShell for each operation? That seems unnecessary). But 
again, refactoring FsShell I think is beyond the scope of this issue. 

All of these are great ideas but I think that they deserve separate tasks. 
There are enough discussion points as to how to implement each of these that I 
think a single thread would be confusing. Also getting this committed first 
would allow different people to attack these problems in parallel if they'd 
like. I'll file these follow-up tasks after this is resolved. Of course, feel 
free to file your own in the meantime if you'd like :)

Thanks for the suggestions!


> An Interactive Hadoop FS shell
> ------------------------------
>
>                 Key: HADOOP-6541
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6541
>             Project: Hadoop Common
>          Issue Type: New Feature
>            Reporter: Aaron Kimball
>            Assignee: Aaron Kimball
>         Attachments: HADOOP-6541.2.patch, HADOOP-6541.3.patch, 
> HADOOP-6541.patch
>
>
> A shell that allows the user to execute multiple filesystem operations in a 
> single JVM instance at a prompt.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to