Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Unifying Stream & Batch Processing with Spring XD Eric Bottard Paris Data Geeks - Streaming Platforms Sept. 18, 2014 - Criteo
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3 “ One stop shop for developing and deploying Big Data applications. „ ― a guy in the elevator
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s a Big Data Application, anyway? 4
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s a Big Data Application, anyway? 4
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s a Big Data Application, anyway? 5
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s a Big Data Application, anyway? 6
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s a Big Data Application, anyway? 6
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7 “ Big Data problems are Integration problems „ ― M. Fisher, Spring XD co-lead
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Streams How can we make this easier?
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Streams http | filter | file
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Streams http | filter | file
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Streams http | filter | file Non-linear stream definitions also supported
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ HTTP Tail File Tcp Kafka Mail Twitter Gemfire Syslog JMS RabbitMQ MQTT Spring XD – Streams
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 12 “ Spring XD is to Spring Integration & Spring Batch what ElasticSearch is to Lucene „ ― Eric Bottard
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD: Unified Platform for Big Data 13 Spring XD Runtime BIDIRECTIONAL Compute HDFS RDBMS NoSQL R, SAS Streams Jobs ingest workflow export taps Predictive Modeling >_ Redis
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD: Quality of Service • High Availability • Cluster Management built upon ZooKeeper • Leader Election for Admin Nodes • Module Redeployment across Container Nodes • Customizable Deployment • Module Count and Criteria for placement • Data Partitioning by Key • Direct Binding for Co-located Modules 14
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime ! XD Shell
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime ! XD Shell HTTP POST /streams/myStream “http | file”
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime ! XD Shell HTTP POST /streams/myStream “http | file”
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime XD Admin ! XD Shell HTTP POST /streams/myStream “http | file”
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime XD Admin ! XD Shell HTTP POST /streams/myStream “http | file” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ XD Container XD Container Spring XD – Runtime XD Admin ! XD Shell Assigns Modules to Containers HTTP POST /streams/myStream “http | file” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ XD Container XD Container Spring XD – Runtime XD Admin ! XD Shell HTTP Module Spring App Context Assigns Modules to Containers HTTP POST /streams/myStream “http | file” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ XD Container XD Container Spring XD – Runtime XD Admin ! XD Shell File Module HTTP Module Spring App Context Assigns Modules to Containers HTTP POST /streams/myStream “http | file” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ XD Container XD Container Spring XD – Runtime XD Admin ! XD Shell File Module HTTP Module Spring App Context Assigns Modules to Containers Message Bus HTTP POST /streams/myStream “http | file” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime XD Container XD Container XD Admin ! XD Shell Message Bus File Module HTTP Module Spring App Context Assigns Modules to Containers ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime XD Container XD Container XD Admin ! XD Shell Message Bus File Module HTTP Module Spring App Context Assigns Modules to Containers HTTP POST /streams/aStream “M1 | M2” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime XD Container XD Container XD Admin ! XD Shell Message Bus File Module HTTP Module Spring App Context M1 Assigns Modules to Containers HTTP POST /streams/aStream “M1 | M2” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring XD – Runtime XD Container XD Container XD Admin ! XD Shell Message Bus File Module HTTP Module Spring App Context M1 M2 Assigns Modules to Containers HTTP POST /streams/aStream “M1 | M2” ZooKeeper Container State
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo Domain: Smart Grid Data Inspired by ACM DEBS 2014 Grand Challenge* Demonstrate the applicability of event-based systems to provide scalable, real-time analytics over high volume sensor data to compute load forecasting. http://www.cse.iitb.ac.in/debs2014 * 20 Field Name Description ID Unique ID of the measurement Timestamp Number of seconds since epoch Load Load in watts House ID The house where the plug is located Household ID The household inside the house Plug ID The unique ID of the smart plug
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo Objectives • Ingest household energy data to HDFS via HTTP • Real-time aggregation and visualization • Real-time model evaluation to predict energy demand 21 ingest: http | hdfs count: tap:stream:ingest > aggregate-counter predict: tap:stream:ingest > pmml | aggregate-counter partition on house
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Looking Ahead • Programming Model • Further Unification of the Batch and Stream Models • Reactive Streams • Developer Experience • Support for Java Config and Spring Integration DSLs • Spring Boot-based Module Deployment and Packaging • Deployment Targets • Cloud Foundry Service • Docker • Mesos 24
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 25 “ I am hoping that I can be known as a great writer and actor some day, rather than a sex symbol„ ― Steven Seagal
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Thank You Eric Bottard Pivotal t@ebottard Äericbottard http://projects.spring.io/spring-xd/ ‛
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Thank You Eric Bottard Pivotal t@ebottard Äericbottard http://projects.spring.io/spring-xd/ ‛