Yes, ftp is supported but not sftp. -Priyanka On Jul 8, 2016 7:00 PM, "Mukkamula, Suryavamshivardhan (CWM-NR)" < suryavamshivardhan.mukkam...@rbc.com> wrote:
> Hi Priyanka, > > > > Thank you for your inputs. > > > > It may be dumb question, I heard from data torrent that SFTP is not > supported for now in my previous communications.That means FTP is supported > and SFTP is not supported ? please clarify the difference. > > > > Regards, > > Surya Vamshi > > > > *From:* Priyanka Gugale [mailto:priya...@datatorrent.com] > *Sent:* 2016, July, 08 12:07 AM > *To:* users@apex.apache.org > *Subject:* Re: Inputs needed on File Writer > > > > Hi, > > > > The file will be available after window is committed, you can overwrite > committed call and start your thread after super.commit is called. You > might want to double check if file is actually finalized before starting > your thread.. > > > > For your usecase I would suggest you to use AbstractFileOutputOperator to > directly write file to ftp. > > > > -Priyanka > > > > On Fri, Jul 8, 2016 at 12:41 AM, Mukkamula, Suryavamshivardhan (CWM-NR) < > suryavamshivardhan.mukkam...@rbc.com> wrote: > > Hi , > > > > Can you please let me know what happen when the requestFinalize() method > is called as per below ? > > > > Once the output files are written to HDFS, I would like to initiate a > thread that reads the HDFS files and copies to FTP location. So I am trying > to understand when can I trigger the thread. > > > > ####################### File Writer > ########################################## > > > > package com.rbc.aml.cnscan.operator; > > > > import com.datatorrent.api.Context; > > import com.datatorrent.lib.io.fs.AbstractFileOutputOperator; > > import com.rbc.aml.cnscan.utils.KeyValue; > > import org.slf4j.Logger; > > import org.slf4j.LoggerFactory; > > > > import java.util.ArrayList; > > import java.util.Iterator; > > import java.util.List; > > > > public class FileWriter extends > AbstractFileOutputOperator<KeyValue<String, String>> { > > private static final Logger LOG = > LoggerFactory.getLogger(FileWriter.class); > > private List<String> filesToFinalize = new ArrayList<>(); > > > > @Override > > public void setup(Context.OperatorContext context) { > > super.setup(context); > > finalizeFiles(); > > } > > > > @Override > > protected byte[] getBytesForTuple(KeyValue<String, String> tuple) { > > if (tuple.value == null) { > > LOG.debug("File to finalize {}",tuple.key); > > filesToFinalize.add(tuple.key); > > return new byte[0]; > > } > > else { > > return tuple.value.getBytes(); > > } > > } > > > > @Override > > protected String getFileName(KeyValue<String, String> tuple) { > > return tuple.key; > > } > > > > @Override > > public void endWindow() { > > LOG.info("end window is called, files are :{}"+filesToFinalize); > > super.endWindow(); > > finalizeFiles(); > > } > > > > private void finalizeFiles() { > > LOG.debug("Files to finalize {}",filesToFinalize.toArray()); > > Iterator<String> fileIt = filesToFinalize.iterator(); > > while(fileIt.hasNext()) { > > requestFinalize(fileIt.next()); > > fileIt.remove(); > > } > > } > > } > > > #################################################################################################### > > > > _______________________________________________________________________ > > If you received this email in error, please advise the sender (by return > email or otherwise) immediately. You have consented to receive the attached > electronically at the above-noted email address; please retain a copy of > this confirmation for future reference. > > Si vous recevez ce courriel par erreur, veuillez en aviser l'expéditeur > immédiatement, par retour de courriel ou par un autre moyen. Vous avez > accepté de recevoir le(s) document(s) ci-joint(s) par voie électronique à > l'adresse courriel indiquée ci-dessus; veuillez conserver une copie de > cette confirmation pour les fins de reference future. > > > > _______________________________________________________________________ > > If you received this email in error, please advise the sender (by return > email or otherwise) immediately. You have consented to receive the attached > electronically at the above-noted email address; please retain a copy of > this confirmation for future reference. > > Si vous recevez ce courriel par erreur, veuillez en aviser l'expéditeur > immédiatement, par retour de courriel ou par un autre moyen. Vous avez > accepté de recevoir le(s) document(s) ci-joint(s) par voie électronique à > l'adresse courriel indiquée ci-dessus; veuillez conserver une copie de > cette confirmation pour les fins de reference future. > >