iot ingestion & analytics using apache apex - a native hadoop platform

26
Pramod Immaneni <[email protected]> PPMC Member, Architect @DataTorrent Inc Apr 6 th , 2016 A native Hadoop platform IoT Ingestion & Analytics using Apache Apex

Upload: apache-apex

Post on 12-Apr-2017

373 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

Pramod Immaneni <[email protected]>PPMC Member, Architect @DataTorrent IncApr 6th, 2016

A native Hadoop platform

IoT Ingestion & Analytics using Apache Apex

Page 2: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent2

IoT (Internet of Things)• Network of objects in physical world with electronic sensors

• Collecting and sending data•Consumer

• Smart home – Smart bulbs, thermostats, locks• Connected vehicles • Wearables

• Industrial• Manufacturing• Retail• Energy

Page 3: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent

Challenges

3

• Velocity of data• Machines generate data at a much higher pace than humans• They generate data continuously without pause posing

processing challenges• Certain aspects of data may become stale if not processed in

time• Volume

• Large volumes of data for processing and storage• Volume keep increasing because of the exponential growth in

devices• Research estimates zettabytes by 2020

• Variety• Types of data – sensor, location, kpi • Formats – csv, json• Delivery mechanisms – files, message queues

Page 4: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent

What should a solution have

4

• Ingest and perform analytics on data in motion• Handle the incoming throughput while maintaining SLAs

• Scale with the volume of data• Fault tolerant so that no data is lost• Flexible to handle data variety and allow custom business logic

• Easy to use tools for the user

Page 5: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent5

What is Apex• Platform and runtime engine to enable scalable and fault-tolerant distributed applications

• Hadoop native• Process streaming or batch big data• High throughput and low latency• Library of commonly needed business logic• Build any custom business logic in your application

Page 6: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent6

Applications• Distributed processing

• Application logic broken into components called operators that run in a distributed fashion across your cluster

• Scalable• Operators can be partitioned into multiple instances to handle large volumes

• Fault tolerant• Automatically recover from node outages without having to reprocess from

beginning• State is preserved• Long running applications

• Operators• Use library to build applications quickly• Write your own in Java using the API

• Operational insight – DataTorrent RTS• See how each operator is performing and even record data

Page 7: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent7

Apex Platform Overview

Page 8: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent8

Apache Malhar Library

Page 9: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent9

Application Development Model

A Stream is a sequence of data tuplesA typical Operator takes one or more input streams, performs computations & emits one or more output streams

• Each Operator is YOUR custom business logic in java, or built-in operator from our open source library• Operator has many instances that run in parallel and each instance is single-threaded

Directed Acyclic Graph (DAG) is made up of operators and streams

Directed Acyclic Graph (DAG)

Filtered

Stream

Output StreamTuple Tuple

Filtered Stream

Enriched Stream

Enriched

Stream

er

Operator

er

Operator

er

Operator

er

Operator

er

Operator

er

Operator

Page 10: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent10

Native Hadoop Integration

• YARN is the resource manager

• HDFS used for storing any persistent state

Page 11: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent11

Advanced Windowing Support

Application window Sliding window and tumbling window

Checkpoint window No artificial latency

Page 12: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent12

Scalability & PartitioningNxM PartitionsUnifier

0 1 2 3

Logical DAG

0 1 2

1

1 Unifier

1

20

Logical Diagram

Physical Diagram with operator 1 with 3 partitions

0

Unifier

1a

1b

1c

2a

2b

Unifier 3

Physical DAG with (1a, 1b, 1c) and (2a, 2b): No bottleneck

Unifier

Unifier0

1a

1b

1c

2a

2b

Unifier 3

Physical DAG with (1a, 1b, 1c) and (2a, 2b): Bottleneck on intermediate Unifier

Page 13: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent13

Advanced Partitioning

0

1a

1b

2 3 4Unifier

Physical DAG

0 4

3a2a1a

1b 2b 3b

Unifier

Physical DAG with Parallel Partition

Parallel Partition

Container

uopr

uopr1

uopr2

uopr3

uopr4

uopr1

uopr2

uopr3

uopr4

dopr

dopr

doprunifier

unifier

unifier

unifier

Container

Container

NIC

NIC

NIC

NIC

NIC

Container

NIC

Logical Plan

Execution Plan, for N = 4; M = 1

Execution Plan, for N = 4; M = 1, K = 2 with cascading unifiers

Cascading Unifiers

0 1 2 3 4

Logical DAG

Page 14: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent14

Dynamic Partitioning

• Partitioning change while application is runningᵒ Change number of partitions at runtime based on statsᵒ Determine initial number of partitions dynamically

• Kafka operators scale according to number of kafka partitionsᵒ Supports re-distribution of state when number of partitions changeᵒ API for custom scaler or partitioner

2b

2c

3

2a

2d

1b

1a1a 2a

1b 2b

3

1a 2b

1b 2c 3b

2a

2d

3a

Unifiers not shown

Page 15: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent15

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

Page 16: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent16

Processing GuaranteesAtleast once• On recovery data will be replayed from a previous checkpoint

ᵒ Messages will not be lostᵒ Default mechanism and is suitable for most applications

• Can be used in conjunction with following mechanisms to achieve exactly-once behavior in fault recovery scenariosᵒ Transactions with meta information, Rewinding output, Feedback

from external entity, Idempotent operationsAtmost once• 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

Exactly once• At least once + state recovery + operator logic to achieve

end-to-end exactly once

Page 17: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent17

Ingestion Operators• NFS/FTP/S3/HDFS Readers and Writers• Kafka readers and writers• Cassandra, HBase, Hive, JDBC• CSV, JSON, Avro, XML parsers• Filtering and enrichment• Dedup• Dimension computation• Stream Joins• …

Page 18: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent18

Pipeline builder

Page 19: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent19

Monitoring ConsoleLogical View

Page 20: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent20

Monitoring ConsolePhysical View

Page 21: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent21

Real-Time DashboardsReal Time Visualization

Page 22: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent

IoT solutions

22

Page 23: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent23

Resources• Ingest application – http://www.datatorrent.com/download• Solutions – http://www.datatorrent.com/solutions• Subscribe - http://apex.incubator.apache.org/community.html• Twitter - @ApacheApex; Follow - https://twitter.com/apacheapex• Free Enterprise License for Startups -

https://www.datatorrent.com/product/startup-accelerator/ • Cloud Trial - http://datatorrent.com/cloudtrial.html

Page 24: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent24

We Are Hiring• [email protected]• Developers/Architects• QA Automation Developers• Information Developers• Build and Release• Community Leaders

Page 25: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

© 2015 DataTorrent25

Upcoming Events• April 14th 6pm PDT – IOT Big Data Ingestion and Processing in

Hadoop by Silver Spring Networks• May 4th 6pm PDT – Fault Tolerant HDFS r/w with Apache Apex

and Apex (native Hadoop) benchmarks

Page 26: IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform

End

26