SlideShare a Scribd company logo
1 of 46
Predix Time Series
with Apache Apex
Hello!
Venkat
Predix Data Services,
GE Digital
Big Data & Analytics
@WalmartLabs.
Pramod
Senior Architect,
DataTorrent Inc,
Apex PPMC Member
Quick
Survey
▪ Predix Platform Overview
▪ Predix Time Series
▪ Apache Apex
▪ Stream Processing with Apex – Journey and Learning
▪ Demo
▪ Q & A
Outline
▪ Platform for Industrial Internet
▪ Based on Cloud Foundry
▪ Provides rich set of services for rapid development
▪ Managed and Secured infrastructure
▪ Marketplace for Services
Predix Platform
Want
big
impact?
Use big
image.
Predix Platform
Architecture
Who we are?Team Data Services
Love Java and Go
Distributed Systems
Big & Fast Data
We are Hiring!
Predix Time Series
Overview
▪ Streaming Ingestion
▪ Efficient storage
▪ Indexing the data for quick retrieval.
▪ Guaranteed data processing
▪ Highly available and scalable.
▪ Millisecond data point precision
▪ Support for String and Numbers
▪ Secured Access
Predix Time Series
Architecture
▪ Support Interpolation
▪ Aggregations (percent, avg, sum, count)
▪ Filter by Attributes, Quality and Value
▪ Support for Limit and Order By
▪ Both GET and POST to retrieve data points
▪ Sub-second query performance
Predix Time Series
API Sample
{
"tags": [
{
"name": ["WIND_SPEED"],
"filters": {
"attributes": {
"farm":["CA"]
}
},
"limit": 1000,
"groups": {
}
}
]
}
▪ Signup @ Predix.io
▪ Create Time Series Instance
▪ Bind to an application
▪ Get credentials and connect your device
▪ Query the data
Predix Time Series
Get Started?
Apache Apex
Overview
▪Streaming Analytics Platform
▪Event based, low latency
▪Scalable and Highly available
▪Managed State
▪Library of pre-built operators
Apex Platform
Stream Processing
Events
Reader
Filter
Operator
Filter
Operator
“Top K”
Operator
“Top K”
Operator
Datastore
Writer
Partition
Stream
Unify
Stream
DAG
Local/
Remote
Find Top K engines with High/Low Oil pressure
Windowing Support
 Application
window
 Sliding/Tumb
ling Window
 Checkpoint
window
 No artificial
latency
Application Specification
Why Apache Apex
Development
High Performance and
Distributed
Dynamic Partitions
Rich set of operator
library
Support for atleast-once,
atmost-once and exactly-
once processing
semantics
Operations
Hadoop/Yarn Compatibility
Fault tolerance and
Platform Stability
Ease of deployment and
operability
Enterprise grade security
Time Series
DAG
Skimmed Version of
the DAG
Partitioning
Strategies
Input
Operator
Detection
Operator
Output
Operator
Logical DAG
Detection
Operator
Input
Operator
Detection
Operator
Unifier
Operator
Detection
Operator`
Output
Operator
Physical DAG
▪ Utilize hashcode and mask to determine Partition
▪ Mask picks the last n bits of the hashcode of the tuple
▪ StreamCodec can be used to specify custom hashcode
▪ Custom partitioner can be used to change default map
Stream Split
tuple:{
Sensor,
98871231, 34,
GOOD
}
Hashcode:
0010101000101
01
Mask (0x11) Partition
00 1
01 2
10 3
11 4
MxN Partitioning
Input
Operator
Detection
Operator
Detection
Operator
Output
Operator
Output
Operator
Input
Operator
Input
Operator
Detection
Operator
Output
Operator
Detection
Operator
 Default Mechanism
 StatelessPartitioner
<property>
<name>dt.application.<streamingApp>.operator.<name>.attr.PARTITIONER</name>
<value>com.datatorrent.common.partitioner.StatelessPartitioner:4</value>
</property>
Parallel Partitioning
Input
Operator
Detection
Operator
Detection
Operator
Output
Operator
Output
Operator
Input
Operator
Input
Operator
Detection
Operator
Output
Operator
<property>
<name>dt.application.<streamApp>.operator.<name>.port.input.attr.PARTITION_PARALLEL</name>
<value>true</value>
</property>
Unifier
▪ Combines outputs of multiple partitions
▪ Runs as an operator
▪ Logic depends on the operator functionality
▸Example if operator is computing average, unifier is computing final
average from individual average and counts
▪ Default unifier if none specified
▪ Helps with skew
▪ Cascading unification possible if unification needs to be done in multiple
stages
Custom partitioning
▪ Custom stream splitting
▪ Distribution of state during initial or dynamic partitioning
 Kafka operators scale according to number of kafka partitions
 Re-distribution of state during dynamic partitioning
tuple:{
Sensor,
98871231, 34,
GOOD
}
Hashcode:
0010101000101
01
Mask (0x00) Partition
00 1
00 2
00 3
00 4
Time Series DAG
Check pointing is tied to
the application id. This
problem becomes pertinent
if you are relying on that
state to do further
processing.
Solution
Store states that matter
externally, eg. HDFS,
Zookeeper, Redis.
Problems
Encountered
Kafka Source was moving
an offset as committed as
soon as it read. Becomes
a problem when the
message is not completely
processed by the DAG
Solution
Kafka Source was modified
to wait till the messages are
entirely processed in the
DAG. Thanks to the
community! We also
implemented an offset
manager and stored the
offset in ZK
Problems
Encountered
Gracefully stopping DAG
during upgrade, to get
exactly once semantics,
when downstream systems
cannot handle duplicates or
support transactions
Solution
Added a property to Mute
the Source Operators and
drain the messages before
you bring the streaming
pipeline down. APIs
available for automation.
Problems
Encountered
Event time based
processing and out of order
data arrival
Solution
We have built some
Spooling Data structures
working with the apex team.
Working to open source this.
Problems
Encountered
Key Takeaways
▪ Upgradeability and tolerance for failure
▪ Monitoring DAG for failures
▪ Static partitioning helps only so much
▪ Continuous Integration and Deployment
▪ Performance Testing and Benchmarking
▪ Ship and Store logs
Fault Tolerance
Fault tolerance
▪ Operator state is checkpointed to a persistent store
▸ Automatically performed by engine, no additional work needed by
operator
▸ In case of failure operators are restarted from checkpoint state
▸ Frequency configurable per operator
▸ Asynchronous and distributed by default
▸ Default store is HDFS
▪ Automatic detection and recovery of failed operators
▸ Heartbeat mechanism
▪ Buffering mechanism to ensure replay of data from recovered point
so that there is no loss of data
▪ Application master state checkpointed
Message Processing Semantics
Atleast once [1..n]
▪ On recovery operator state is restored to a checkpoint
▪ Data is replayed from the checkpoint so it is effectively a rewind
▪ Messages will not be lost
▪ Default mechanism and is suitable for most applications
▪ End-to-end exactly once i.e., data is written only once to store in
case of fault recovery
▸ Idempotent operations
▸ Rewinding output
▸ Writing meta information to store in transactional fashion
▸ Feedback from external store on last processed message
Message Processing Semantics
Atmost once [0,1]
▪ On recovery the latest data is made available to operator
▪ Useful in use cases where some data loss is acceptable and latest
data is sufficient
Windowed exactly once [0,1]
▪ Operators checkpointed every window
▪ Can be combined with transactional mechanisms to ensure end-to-
end exactly once behavior
Stream Locality
▪ By default operators are deployed in containers (processes)
randomly on different nodes across the hadoop cluster
▪ Custom locality for streams
▸ Rack local: Data does not traverse network switches
▸ Node local: Data is passed via loopback interface and frees up
network bandwidth
▸ Container local: Messages are passed via in memory queues
between operators and does not require serialization
▸ Thread local: Messages are passed between operators in a
same thread equivalent to calling a subsequent function on the
message
What happens during launch?
▪ User launches an application using the management
console or command line client
▪ DAG gets assembled on the client
▪ DAG and dependency jars gets saves to HDFS
▪ App Master (StrAM) gets launched on a Hadoop node
▸Converts logical plan to physical plan
▸Figures out execution plan
▸Requests containers from Hadoop
▸Launches StreamingContainer in individual
containers with relevant operators
Kafka Operator
▪ Supports both High and Low Level API Implementation
▪ Finer level control of offset for Exactly-Once Semantics
▪ Supports ONE_TO_ONE and ONE_TO_MANY Partition Strategy
▪ Consume by size and number of messages
▪ Fault tolerent to recover from offsets
Debugging Issues
▪ Distributed systems are hard to debug
▪ LocalMode comes handy for developer testing and debugging
▪ Enable Yarn log aggregation
▸ yarn logs –applicationID <App_Id>
▪ DataTorrent webconsole provides streaming access to AppMaster and
Container logs
▪ Understanding what happens where
▸ AppMaster
▸ NodeManager
▸ Containers
Demo
Thanks
!!
Any questions?
You can find us at @venkyz and @pramod
Bulk Upload - DAG
Rule Based Alerting - DAG

More Related Content

What's hot

Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Apex
 
Introduction to Apache Apex and writing a big data streaming application
Introduction to Apache Apex and writing a big data streaming application  Introduction to Apache Apex and writing a big data streaming application
Introduction to Apache Apex and writing a big data streaming application Apache Apex
 
Ingestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache ApexIngestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache ApexApache Apex
 
Architectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark StreamingArchitectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark StreamingApache Apex
 
Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Bhupesh Chawda
 
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache ApexApache Apex
 
Stream Processing with Apache Apex
Stream Processing with Apache ApexStream Processing with Apache Apex
Stream Processing with Apache ApexPramod Immaneni
 
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...DataWorks Summit
 
Intro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark StreamingIntro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark StreamingApache Apex
 
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
 IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop PlatformApache Apex
 
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js ProcessesHow InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js ProcessesInfluxData
 
From Batch to Streaming with Apache Apex Dataworks Summit 2017
From Batch to Streaming with Apache Apex Dataworks Summit 2017From Batch to Streaming with Apache Apex Dataworks Summit 2017
From Batch to Streaming with Apache Apex Dataworks Summit 2017Apache Apex
 
Intro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - HackacIntro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - HackacApache Apex
 
Large-scaled telematics analytics
Large-scaled telematics analyticsLarge-scaled telematics analytics
Large-scaled telematics analyticsDataWorks Summit
 
Actionable Insights with Apache Apex at Apache Big Data 2017 by Devendra Tagare
Actionable Insights with Apache Apex at Apache Big Data 2017 by Devendra TagareActionable Insights with Apache Apex at Apache Big Data 2017 by Devendra Tagare
Actionable Insights with Apache Apex at Apache Big Data 2017 by Devendra TagareApache Apex
 
Stream Processing use cases and applications with Apache Apex by Thomas Weise
Stream Processing use cases and applications with Apache Apex by Thomas WeiseStream Processing use cases and applications with Apache Apex by Thomas Weise
Stream Processing use cases and applications with Apache Apex by Thomas WeiseBig Data Spain
 
Low Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache ApexLow Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache ApexApache Apex
 
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformIntro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformApache Apex
 

What's hot (20)

Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
 
Introduction to Apache Apex and writing a big data streaming application
Introduction to Apache Apex and writing a big data streaming application  Introduction to Apache Apex and writing a big data streaming application
Introduction to Apache Apex and writing a big data streaming application
 
Ingestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache ApexIngestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache Apex
 
Architectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark StreamingArchitectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark Streaming
 
Next Gen Big Data Analytics with Apache Apex
Next Gen Big Data Analytics with Apache Apex Next Gen Big Data Analytics with Apache Apex
Next Gen Big Data Analytics with Apache Apex
 
Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016
 
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
 
Stream Processing with Apache Apex
Stream Processing with Apache ApexStream Processing with Apache Apex
Stream Processing with Apache Apex
 
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
 
Intro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark StreamingIntro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
 
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
 IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
 
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js ProcessesHow InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
How InfluxDB Enables NodeSource to Run Extreme Levels of Node.js Processes
 
From Batch to Streaming with Apache Apex Dataworks Summit 2017
From Batch to Streaming with Apache Apex Dataworks Summit 2017From Batch to Streaming with Apache Apex Dataworks Summit 2017
From Batch to Streaming with Apache Apex Dataworks Summit 2017
 
Intro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - HackacIntro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
 
Large-scaled telematics analytics
Large-scaled telematics analyticsLarge-scaled telematics analytics
Large-scaled telematics analytics
 
Debunking Common Myths in Stream Processing
Debunking Common Myths in Stream ProcessingDebunking Common Myths in Stream Processing
Debunking Common Myths in Stream Processing
 
Actionable Insights with Apache Apex at Apache Big Data 2017 by Devendra Tagare
Actionable Insights with Apache Apex at Apache Big Data 2017 by Devendra TagareActionable Insights with Apache Apex at Apache Big Data 2017 by Devendra Tagare
Actionable Insights with Apache Apex at Apache Big Data 2017 by Devendra Tagare
 
Stream Processing use cases and applications with Apache Apex by Thomas Weise
Stream Processing use cases and applications with Apache Apex by Thomas WeiseStream Processing use cases and applications with Apache Apex by Thomas Weise
Stream Processing use cases and applications with Apache Apex by Thomas Weise
 
Low Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache ApexLow Latency Polyglot Model Scoring using Apache Apex
Low Latency Polyglot Model Scoring using Apache Apex
 
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformIntro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
 

Similar to GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)

Introduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas WeiseIntroduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas WeiseBig Data Spain
 
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache ApexHadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache ApexApache Apex
 
Apache Apex - Hadoop Users Group
Apache Apex - Hadoop Users GroupApache Apex - Hadoop Users Group
Apache Apex - Hadoop Users GroupPramod Immaneni
 
February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...
February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...
February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...Yahoo Developer Network
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesAlexander Penev
 
Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...
Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...
Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...Dataconomy Media
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerFederico Palladoro
 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...DataStax
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source Nitesh Jadhav
 
Scalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERScalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERShuyi Chen
 
February 2017 HUG: Exactly-once end-to-end processing with Apache Apex
February 2017 HUG: Exactly-once end-to-end processing with Apache ApexFebruary 2017 HUG: Exactly-once end-to-end processing with Apache Apex
February 2017 HUG: Exactly-once end-to-end processing with Apache ApexYahoo Developer Network
 
Real-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache ApexReal-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache ApexApache Apex
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsApache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsThomas Weise
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Comsysto Reply GmbH
 
Performance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovPerformance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovValeriia Maliarenko
 
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...AboutYouGmbH
 
Lookout on Scaling Security to 100 Million Devices
Lookout on Scaling Security to 100 Million DevicesLookout on Scaling Security to 100 Million Devices
Lookout on Scaling Security to 100 Million DevicesScyllaDB
 
Healthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache SparkHealthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache SparkDatabricks
 
20180522 infra autoscaling_system
20180522 infra autoscaling_system20180522 infra autoscaling_system
20180522 infra autoscaling_systemKai Sasaki
 

Similar to GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop) (20)

Introduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas WeiseIntroduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas Weise
 
Data streaming fundamentals
Data streaming fundamentalsData streaming fundamentals
Data streaming fundamentals
 
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache ApexHadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
 
Apache Apex - Hadoop Users Group
Apache Apex - Hadoop Users GroupApache Apex - Hadoop Users Group
Apache Apex - Hadoop Users Group
 
February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...
February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...
February 2016 HUG: Apache Apex (incubating): Stream Processing Architecture a...
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE Architectures
 
Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...
Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...
Thomas Weise, Apache Apex PMC Member and Architect/Co-Founder, DataTorrent - ...
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on docker
 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
 
Scalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERScalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBER
 
February 2017 HUG: Exactly-once end-to-end processing with Apache Apex
February 2017 HUG: Exactly-once end-to-end processing with Apache ApexFebruary 2017 HUG: Exactly-once end-to-end processing with Apache Apex
February 2017 HUG: Exactly-once end-to-end processing with Apache Apex
 
Real-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache ApexReal-time Stream Processing using Apache Apex
Real-time Stream Processing using Apache Apex
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsApache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications
 
Performance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovPerformance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei Radov
 
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
 
Lookout on Scaling Security to 100 Million Devices
Lookout on Scaling Security to 100 Million DevicesLookout on Scaling Security to 100 Million Devices
Lookout on Scaling Security to 100 Million Devices
 
Healthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache SparkHealthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache Spark
 
20180522 infra autoscaling_system
20180522 infra autoscaling_system20180522 infra autoscaling_system
20180522 infra autoscaling_system
 

More from Apache Apex

Apache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache ApexApache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache ApexApache Apex
 
Intro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big DataIntro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big DataApache Apex
 
Deep Dive into Apache Apex App Development
Deep Dive into Apache Apex App DevelopmentDeep Dive into Apache Apex App Development
Deep Dive into Apache Apex App DevelopmentApache Apex
 
Hadoop Interacting with HDFS
Hadoop Interacting with HDFSHadoop Interacting with HDFS
Hadoop Interacting with HDFSApache Apex
 
Introduction to Real-Time Data Processing
Introduction to Real-Time Data ProcessingIntroduction to Real-Time Data Processing
Introduction to Real-Time Data ProcessingApache Apex
 
Introduction to Apache Apex
Introduction to Apache ApexIntroduction to Apache Apex
Introduction to Apache ApexApache Apex
 
Introduction to Yarn
Introduction to YarnIntroduction to Yarn
Introduction to YarnApache Apex
 
Introduction to Map Reduce
Introduction to Map ReduceIntroduction to Map Reduce
Introduction to Map ReduceApache Apex
 
Intro to Big Data Hadoop
Intro to Big Data HadoopIntro to Big Data Hadoop
Intro to Big Data HadoopApache Apex
 
Kafka to Hadoop Ingest with Parsing, Dedup and other Big Data Transformations
Kafka to Hadoop Ingest with Parsing, Dedup and other Big Data TransformationsKafka to Hadoop Ingest with Parsing, Dedup and other Big Data Transformations
Kafka to Hadoop Ingest with Parsing, Dedup and other Big Data TransformationsApache Apex
 
Building Your First Apache Apex (Next Gen Big Data/Hadoop) Application
Building Your First Apache Apex (Next Gen Big Data/Hadoop) ApplicationBuilding Your First Apache Apex (Next Gen Big Data/Hadoop) Application
Building Your First Apache Apex (Next Gen Big Data/Hadoop) ApplicationApache Apex
 
Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)
Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)
Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)Apache Apex
 
Ingesting Data from Kafka to JDBC with Transformation and Enrichment
Ingesting Data from Kafka to JDBC with Transformation and EnrichmentIngesting Data from Kafka to JDBC with Transformation and Enrichment
Ingesting Data from Kafka to JDBC with Transformation and EnrichmentApache Apex
 
Apache Beam (incubating)
Apache Beam (incubating)Apache Beam (incubating)
Apache Beam (incubating)Apache Apex
 
Java High Level Stream API
Java High Level Stream APIJava High Level Stream API
Java High Level Stream APIApache Apex
 
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache ApexMaking sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache ApexApache Apex
 
Apache Apex & Bigtop
Apache Apex & BigtopApache Apex & Bigtop
Apache Apex & BigtopApache Apex
 
Building Your First Apache Apex Application
Building Your First Apache Apex ApplicationBuilding Your First Apache Apex Application
Building Your First Apache Apex ApplicationApache Apex
 

More from Apache Apex (19)

Apache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache ApexApache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache Apex
 
Intro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big DataIntro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big Data
 
Deep Dive into Apache Apex App Development
Deep Dive into Apache Apex App DevelopmentDeep Dive into Apache Apex App Development
Deep Dive into Apache Apex App Development
 
Hadoop Interacting with HDFS
Hadoop Interacting with HDFSHadoop Interacting with HDFS
Hadoop Interacting with HDFS
 
Introduction to Real-Time Data Processing
Introduction to Real-Time Data ProcessingIntroduction to Real-Time Data Processing
Introduction to Real-Time Data Processing
 
Introduction to Apache Apex
Introduction to Apache ApexIntroduction to Apache Apex
Introduction to Apache Apex
 
Introduction to Yarn
Introduction to YarnIntroduction to Yarn
Introduction to Yarn
 
Introduction to Map Reduce
Introduction to Map ReduceIntroduction to Map Reduce
Introduction to Map Reduce
 
HDFS Internals
HDFS InternalsHDFS Internals
HDFS Internals
 
Intro to Big Data Hadoop
Intro to Big Data HadoopIntro to Big Data Hadoop
Intro to Big Data Hadoop
 
Kafka to Hadoop Ingest with Parsing, Dedup and other Big Data Transformations
Kafka to Hadoop Ingest with Parsing, Dedup and other Big Data TransformationsKafka to Hadoop Ingest with Parsing, Dedup and other Big Data Transformations
Kafka to Hadoop Ingest with Parsing, Dedup and other Big Data Transformations
 
Building Your First Apache Apex (Next Gen Big Data/Hadoop) Application
Building Your First Apache Apex (Next Gen Big Data/Hadoop) ApplicationBuilding Your First Apache Apex (Next Gen Big Data/Hadoop) Application
Building Your First Apache Apex (Next Gen Big Data/Hadoop) Application
 
Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)
Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)
Intro to YARN (Hadoop 2.0) & Apex as YARN App (Next Gen Big Data)
 
Ingesting Data from Kafka to JDBC with Transformation and Enrichment
Ingesting Data from Kafka to JDBC with Transformation and EnrichmentIngesting Data from Kafka to JDBC with Transformation and Enrichment
Ingesting Data from Kafka to JDBC with Transformation and Enrichment
 
Apache Beam (incubating)
Apache Beam (incubating)Apache Beam (incubating)
Apache Beam (incubating)
 
Java High Level Stream API
Java High Level Stream APIJava High Level Stream API
Java High Level Stream API
 
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache ApexMaking sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
 
Apache Apex & Bigtop
Apache Apex & BigtopApache Apex & Bigtop
Apache Apex & Bigtop
 
Building Your First Apache Apex Application
Building Your First Apache Apex ApplicationBuilding Your First Apache Apex Application
Building Your First Apache Apex Application
 

Recently uploaded

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)

  • 2. Hello! Venkat Predix Data Services, GE Digital Big Data & Analytics @WalmartLabs. Pramod Senior Architect, DataTorrent Inc, Apex PPMC Member
  • 4. ▪ Predix Platform Overview ▪ Predix Time Series ▪ Apache Apex ▪ Stream Processing with Apex – Journey and Learning ▪ Demo ▪ Q & A Outline
  • 5. ▪ Platform for Industrial Internet ▪ Based on Cloud Foundry ▪ Provides rich set of services for rapid development ▪ Managed and Secured infrastructure ▪ Marketplace for Services Predix Platform
  • 8. Who we are?Team Data Services Love Java and Go Distributed Systems Big & Fast Data We are Hiring!
  • 9. Predix Time Series Overview ▪ Streaming Ingestion ▪ Efficient storage ▪ Indexing the data for quick retrieval. ▪ Guaranteed data processing ▪ Highly available and scalable. ▪ Millisecond data point precision ▪ Support for String and Numbers ▪ Secured Access
  • 11. ▪ Support Interpolation ▪ Aggregations (percent, avg, sum, count) ▪ Filter by Attributes, Quality and Value ▪ Support for Limit and Order By ▪ Both GET and POST to retrieve data points ▪ Sub-second query performance Predix Time Series API Sample { "tags": [ { "name": ["WIND_SPEED"], "filters": { "attributes": { "farm":["CA"] } }, "limit": 1000, "groups": { } } ] }
  • 12. ▪ Signup @ Predix.io ▪ Create Time Series Instance ▪ Bind to an application ▪ Get credentials and connect your device ▪ Query the data Predix Time Series Get Started?
  • 13. Apache Apex Overview ▪Streaming Analytics Platform ▪Event based, low latency ▪Scalable and Highly available ▪Managed State ▪Library of pre-built operators
  • 15. Stream Processing Events Reader Filter Operator Filter Operator “Top K” Operator “Top K” Operator Datastore Writer Partition Stream Unify Stream DAG Local/ Remote Find Top K engines with High/Low Oil pressure
  • 16. Windowing Support  Application window  Sliding/Tumb ling Window  Checkpoint window  No artificial latency
  • 18. Why Apache Apex Development High Performance and Distributed Dynamic Partitions Rich set of operator library Support for atleast-once, atmost-once and exactly- once processing semantics Operations Hadoop/Yarn Compatibility Fault tolerance and Platform Stability Ease of deployment and operability Enterprise grade security
  • 22. ▪ Utilize hashcode and mask to determine Partition ▪ Mask picks the last n bits of the hashcode of the tuple ▪ StreamCodec can be used to specify custom hashcode ▪ Custom partitioner can be used to change default map Stream Split tuple:{ Sensor, 98871231, 34, GOOD } Hashcode: 0010101000101 01 Mask (0x11) Partition 00 1 01 2 10 3 11 4
  • 23. MxN Partitioning Input Operator Detection Operator Detection Operator Output Operator Output Operator Input Operator Input Operator Detection Operator Output Operator Detection Operator  Default Mechanism  StatelessPartitioner <property> <name>dt.application.<streamingApp>.operator.<name>.attr.PARTITIONER</name> <value>com.datatorrent.common.partitioner.StatelessPartitioner:4</value> </property>
  • 25. Unifier ▪ Combines outputs of multiple partitions ▪ Runs as an operator ▪ Logic depends on the operator functionality ▸Example if operator is computing average, unifier is computing final average from individual average and counts ▪ Default unifier if none specified ▪ Helps with skew ▪ Cascading unification possible if unification needs to be done in multiple stages
  • 26. Custom partitioning ▪ Custom stream splitting ▪ Distribution of state during initial or dynamic partitioning  Kafka operators scale according to number of kafka partitions  Re-distribution of state during dynamic partitioning tuple:{ Sensor, 98871231, 34, GOOD } Hashcode: 0010101000101 01 Mask (0x00) Partition 00 1 00 2 00 3 00 4
  • 28. Check pointing is tied to the application id. This problem becomes pertinent if you are relying on that state to do further processing. Solution Store states that matter externally, eg. HDFS, Zookeeper, Redis. Problems Encountered
  • 29. Kafka Source was moving an offset as committed as soon as it read. Becomes a problem when the message is not completely processed by the DAG Solution Kafka Source was modified to wait till the messages are entirely processed in the DAG. Thanks to the community! We also implemented an offset manager and stored the offset in ZK Problems Encountered
  • 30. Gracefully stopping DAG during upgrade, to get exactly once semantics, when downstream systems cannot handle duplicates or support transactions Solution Added a property to Mute the Source Operators and drain the messages before you bring the streaming pipeline down. APIs available for automation. Problems Encountered
  • 31. Event time based processing and out of order data arrival Solution We have built some Spooling Data structures working with the apex team. Working to open source this. Problems Encountered
  • 32. Key Takeaways ▪ Upgradeability and tolerance for failure ▪ Monitoring DAG for failures ▪ Static partitioning helps only so much ▪ Continuous Integration and Deployment ▪ Performance Testing and Benchmarking ▪ Ship and Store logs
  • 34. Fault tolerance ▪ Operator state is checkpointed to a persistent store ▸ Automatically performed by engine, no additional work needed by operator ▸ In case of failure operators are restarted from checkpoint state ▸ Frequency configurable per operator ▸ Asynchronous and distributed by default ▸ Default store is HDFS ▪ Automatic detection and recovery of failed operators ▸ Heartbeat mechanism ▪ Buffering mechanism to ensure replay of data from recovered point so that there is no loss of data ▪ Application master state checkpointed
  • 35. Message Processing Semantics Atleast once [1..n] ▪ On recovery operator state is restored to a checkpoint ▪ Data is replayed from the checkpoint so it is effectively a rewind ▪ Messages will not be lost ▪ Default mechanism and is suitable for most applications ▪ End-to-end exactly once i.e., data is written only once to store in case of fault recovery ▸ Idempotent operations ▸ Rewinding output ▸ Writing meta information to store in transactional fashion ▸ Feedback from external store on last processed message
  • 36. Message Processing Semantics Atmost once [0,1] ▪ On recovery the latest data is made available to operator ▪ Useful in use cases where some data loss is acceptable and latest data is sufficient Windowed exactly once [0,1] ▪ Operators checkpointed every window ▪ Can be combined with transactional mechanisms to ensure end-to- end exactly once behavior
  • 37. Stream Locality ▪ By default operators are deployed in containers (processes) randomly on different nodes across the hadoop cluster ▪ Custom locality for streams ▸ Rack local: Data does not traverse network switches ▸ Node local: Data is passed via loopback interface and frees up network bandwidth ▸ Container local: Messages are passed via in memory queues between operators and does not require serialization ▸ Thread local: Messages are passed between operators in a same thread equivalent to calling a subsequent function on the message
  • 38. What happens during launch? ▪ User launches an application using the management console or command line client ▪ DAG gets assembled on the client ▪ DAG and dependency jars gets saves to HDFS ▪ App Master (StrAM) gets launched on a Hadoop node ▸Converts logical plan to physical plan ▸Figures out execution plan ▸Requests containers from Hadoop ▸Launches StreamingContainer in individual containers with relevant operators
  • 39. Kafka Operator ▪ Supports both High and Low Level API Implementation ▪ Finer level control of offset for Exactly-Once Semantics ▪ Supports ONE_TO_ONE and ONE_TO_MANY Partition Strategy ▪ Consume by size and number of messages ▪ Fault tolerent to recover from offsets
  • 40. Debugging Issues ▪ Distributed systems are hard to debug ▪ LocalMode comes handy for developer testing and debugging ▪ Enable Yarn log aggregation ▸ yarn logs –applicationID <App_Id> ▪ DataTorrent webconsole provides streaming access to AppMaster and Container logs ▪ Understanding what happens where ▸ AppMaster ▸ NodeManager ▸ Containers
  • 41. Demo
  • 42.
  • 43.
  • 44.
  • 45. Thanks !! Any questions? You can find us at @venkyz and @pramod
  • 46. Bulk Upload - DAG Rule Based Alerting - DAG

Editor's Notes

  1. What are some of the questions: How can I predict downtimes of our assets? How do I get an optimal performance from an asset? How can I empower the domain experts with relevant data? How can we make the lift of a industrial application developer easier?
  2. - Auto scaling from a Operator Instance perspective - Event Based processing but window based reconciliation - Ability to reprocess data in case of failures - Easy to Program
  3. Partition Stream – Stream Split, Stateless Parallel Partitioning Distributed Stream Processing
  4. Partition Stream – Stream Split, Stateless Parallel Partitioning Distributed Stream Processing Do we have a picture that says APEX instead of RTS?
  5. Partition Stream – Stream Split, Stateless Parallel Partitioning Distributed Stream Processing
  6. Native Hadoop Integration Operator Libraries includes adaptors with wide sets of operators Data Guarantees Malhar Operator Library Security Event-based: - One at a time model - Combining with state, can help model anomaly detection - Subsecond latency Micro-batching: - Tiny batches - Ease to develop windowing functions with proper partitions
  7. Logical DAG Physical DAG Stream Split and Unifier
  8. Show the Physical View of the Time Series DAG..
  9. Downstream Systems are not idempotent
  10. Instead of operating on event arrival time, operating on original event creation time..
  11. Again.. We are hiring!
  12. DataTorrent Enterprise Edition - dtManage
  13. A few other DAGs..