protected Properties createProperties() { Properties props = new Properties(); props.setProperty( "mapred.reduce.tasks.speculative.execution", "false" ); props.setProperty( "mapred.map.tasks.speculative.execution", "false" ); AppProps.setApplicationJarClass( props, getClass() ); AppProps.setApplicationName( props, getClass().getName() ); props.setProperty( FlowRuntimeProps.GATHER_PARTITIONS, "1" ); return props; }
@Test public void testApplicationJarPath() { Map<Object, Object> map = new HashMap<>(); AppProps.setApplicationJarClass( map, AppPropsTest.class ); assertEquals( AppPropsTest.class, AppProps.getApplicationJarClass( map ) ); Properties properties = new Properties(); AppProps.setApplicationJarClass( properties, AppPropsTest.class ); assertEquals( AppPropsTest.class, AppProps.getApplicationJarClass( properties ) ); } }
@Override protected void addPropertiesTo( Properties properties ) { setApplicationID( properties ); setApplicationName( properties, name ); setApplicationVersion( properties, version ); addApplicationTag( properties, getTags() ); addApplicationFramework( properties, getFrameworks() ); setApplicationJarClass( properties, jarClass ); setApplicationJarPath( properties, jarPath ); } }
AppProps.setApplicationJarClass(props, jarClass);
public static void main(String[] args){ String usersPath = args[ 0 ]; String transactionsPath = args[ 1 ]; String outputPath = args[ 2 ]; Properties properties = new Properties(); AppProps.setApplicationJarClass( properties, LocationsNumForAProduct.class ); FlowConnector flowConnector = new Hadoop2MR1FlowConnector( properties ); Fields users = new Fields( "id", "email", "language", "location" ); Tap usersTap = new Hfs( new TextDelimited( users, false, "\t" ), usersPath ); Fields transactions = new Fields( "transaction-id", "product-id", "user-id", "purchase-amount", "item-description" ); Tap transactionsTap = new Hfs( new TextDelimited( transactions, false, "\t" ), transactionsPath ); Tap outputTap = new Hfs( new TextDelimited( false, "\t" ), outputPath ); FlowDef flowDef = createWorkflow(usersTap, transactionsTap, outputTap); flowConnector.connect( flowDef ).complete(); } }
AppProps.setApplicationJarClass(props, Main.class); FlowConnector flowConnector = new LocalFlowConnector(props);