sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jarek Jarcec Cecho (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (SQOOP-1306) Allow Sqoop to move files from different FileSystems on incremental import
Date Wed, 16 Apr 2014 23:02:15 GMT

    [ https://issues.apache.org/jira/browse/SQOOP-1306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13972037#comment-13972037
] 

Jarek Jarcec Cecho edited comment on SQOOP-1306 at 4/16/14 11:00 PM:
---------------------------------------------------------------------

I had to code this to my project, so, on append() method of AppendUtils class, I did this:

{code}
// Creating a fs for each dir
FileSystem tempDirFs = tempDir.getFileSystem(options.getConf());
FileSystem userDestDirFs = userDestDir.getFileSystem(options.getConf());

// If has the same fs, use default moveFiles
if (userDestDirFs.getClass().equals(tempDirFs.getClass())) {
    moveFiles(tempDirFs, tempDir, userDestDir, nextPartition);
} else {
    // move files from different file systems
    moveFiles(tempDirFs, tempDir, userDestDirFs, userDestDir, nextPartition);
}
{code}

The second moveFiles, creates files on target-dir using FSDataInputStream and FSDataOutputStream
and deletes temp files when it finish.
I don't know if it is the best way to do this, but it's working now.


was (Author: rmatihara):
I had to code this to my project, so, on append() method of AppendUtils class, I did this:

// Creating a fs for each dir
FileSystem tempDirFs = tempDir.getFileSystem(options.getConf());
FileSystem userDestDirFs = userDestDir.getFileSystem(options.getConf());

// If has the same fs, use default moveFiles
if (userDestDirFs.getClass().equals(tempDirFs.getClass())) {
    moveFiles(tempDirFs, tempDir, userDestDir, nextPartition);
} else {
    // move files from different file systems
    moveFiles(tempDirFs, tempDir, userDestDirFs, userDestDir, nextPartition);
}

The second moveFiles, creates files on target-dir using FSDataInputStream and FSDataOutputStream
and deletes temp files when it finish.
I don't know if it is the best way to do this, but it's working now.

> Allow Sqoop to move files from different FileSystems on incremental import
> --------------------------------------------------------------------------
>
>                 Key: SQOOP-1306
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1306
>             Project: Sqoop
>          Issue Type: Improvement
>    Affects Versions: 1.4.4
>            Reporter: Rodrigo Matihara
>         Attachments: scenarios.png
>
>
> Sqoop doesn't allow to move files from different FileSystems executing an import (--append
or --incremental).
> Trying to import using a local temp-dir and a S3 target-dir, the operation is complete,
however the file is not created in S3 bucket and this warning is raised:
> WARN  - Cannot append files to target dir; no such directory: _sqoop/15151724000000436_31417_localhost.localdomain_<tablename>
> Looking into on source, I found that AppendUtils.java considers that tempDir and targetDir
are at the same Filesystem.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message