@Override public boolean deleteResource(Object conf) throws IOException { return actualTap.deleteResource(conf); }
@Override public boolean resourceExists(Object conf) throws IOException { return actualTap.resourceExists(conf); }
@Override public long getModifiedTime(Object conf) throws IOException { return actualTap.getModifiedTime(conf); }
@Override public TupleEntryIterator openForRead(FlowProcess<Object> flowProcess, Object input) throws IOException { initInnerTapIfNotSetFromFlowProcess(flowProcess); return actualTap.openForRead(flowProcess, input); }
@Override public void sourceConfInit(FlowProcess<Object> flowProcess, Object conf) { initInnerTapIfNotSetFromFlowProcess(flowProcess); actualTap.sourceConfInit(flowProcess, conf); }
@Override public void sourceConfInit( FlowProcess<? extends Config> process, Config conf ) { for( Tap tap : getTaps() ) tap.sourceConfInit( process, conf ); }
@Override public void sinkConfInit(FlowProcess<Object> flowProcess, Object conf) { initInnerTapIfNotSetFromFlowProcess(flowProcess); actualTap.sinkConfInit(flowProcess, conf); }
@Override public TupleEntryCollector openForWrite(FlowProcess<Object> flowProcess, Object output) throws IOException { initInnerTapIfNotSetFromFlowProcess(flowProcess); return actualTap.openForWrite(flowProcess, output); }
private void initInnerTapIfNotSet(Object target, String hadoopTypeName) { if (actualTap != null) { return; } Class<?> clz = null; try { clz = Class.forName(hadoopTypeName, false, getClass().getClassLoader()); if (clz.isInstance(target)) { runningInHadoop = true; } } catch (ClassNotFoundException e) { runningInHadoop = false; } actualTap = (runningInHadoop ? new EsHadoopTap(host, port, resource, query, fields, props) : new EsLocalTap(host, port, resource, query, fields, props)); setScheme(actualTap.getScheme()); if (log.isDebugEnabled()) { log.debug(String.format("Detected %s environment; initializing [%s]", (runningInHadoop ? "Hadoop" : "local"), actualTap.getClass().getSimpleName())); } // use SLF4J just like Cascading if (!logVersion) { logVersion = true; Logger esTapLogger = LoggerFactory.getLogger(EsTap.class); esTapLogger.info(String.format("Elasticsearch Hadoop %s initialized", Version.version())); esTapLogger.warn("ES-Hadoop Cascading Integration is Deprecated as of 6.6.0 and will be removed in a later release."); } } }
@Override public boolean deleteResource( Config conf ) throws IOException { for( Tap tap : getTaps() ) { if( !tap.deleteResource( conf ) ) return false; } return true; }
@Override public String toString() { return (actualTap != null ? actualTap.toString() : getClass().getSimpleName() + "[\"" + getScheme() + "\"]" + "[not initialized]"); }
public boolean resourceExists( Config conf ) throws IOException { for( Tap tap : getTaps() ) { if( !tap.resourceExists( conf ) ) return false; } return true; }
@Override public boolean resourceExists( Config conf ) throws IOException { for( Tap tap : getTaps() ) { if( !tap.resourceExists( conf ) ) return false; } return true; }
@Override public boolean createResource(Object conf) throws IOException { return actualTap.createResource(conf); }
@Override public boolean createResource( Config conf ) throws IOException { for( Tap tap : getTaps() ) { if( !tap.createResource( conf ) ) return false; } return true; }
@Override public void flowConfInit(Flow<Object> flow) { initInnerTapIfNotSet(flow, "cascading.flow.hadoop.HadoopFlow"); actualTap.flowConfInit(flow); }
@Override public boolean commitResource( Config conf ) throws IOException { for( Tap tap : getTaps() ) { if( !tap.commitResource( conf ) ) return false; } return true; }
@Override public boolean isEquivalentTo(FlowElement element) { return actualTap.isEquivalentTo(element); }
@Override public TupleEntryCollector openForWrite( FlowProcess<? extends Config> flowProcess, Output output ) throws IOException { return new MultiSinkCollector( flowProcess, getTaps() ); }