Winter is coming, so we are picking up our best habits again by organising our 39th BigData.be meetup. We had 2 great presentations lined up for you on Apache Kafka and Apache Ignite. Read on!
Summer is already a long time ago, but so were our BigData.be meetups! Our mistake …
But “Winter is coming!” So we picked up our best habits again. The 39th meetup was on Tuesday, November 8th, 2016 at 19h30.
The attendance this time was a cozy bunch of people! It turned out to be a most interesting and interactive meetup.
Really interesting talks by Daan and Mathias; strongly recommended.
Streams++, A complete streaming framework using Apache Kafka
Daan introduced the most important components in the Apache Kafka ecosystem.
“Build apps, not jobs“
That quote eloquently compares Kafka to the other Big Data application patterns.
What is Apache Kafka?
Kafka is a distributed streaming platform. “A message broker with a twist.” What does that mean? Producers put messsages on Topics, whereas Consumers process messages from Topics sequentially. A message is a simple byte array, but has a timestamp, key and value. On the other hand, the Topics themselves are more like datastores: they are persisted to disk to keep the messages available. Partitioning and replication make Topics high available. Kafka is fast!
Kafka Connect is a framework that integrates Kafka with other systems. It purpose is to make it easy to add new systems to your stream data pipelines. Source Connectors import data from another system by putting them as messages on a Topic. Sink Connectors on the other hand read data from a Topic to a target system.
Kafka Streams is an open-source solution to build and execute powerful stream processing functions. If you use Kafka for stream data transport, Kafka Streams can immediately add stream processing capabilities. Kafka Streams doesn’t even need a separate computer cluster for distributed processing! A Stream reads messages from a topic, transforms it and puts it on another topic.
What is Apache Kafka’s appeal?
Apache Kafka is elegantly designed using only simple constructs:
- Connect and Streams are just libraries.
- Connect and Stream apps are just simple apps or processes.
- Apps are super easy to deploy.
- Just spawn many instances of the same app for more throughput.
- Kafka apps and orchestration tools are a match made in heaven. Think of Mesos DC/OS, Kubernetes, Docker Swarm and the like.
Here is Daan’s slidedeck …
Sequence data at warp speed with Apache Ignite
Mathias and his team had to crack a challenging customer problem:
How to do interactive querying on sequence data at scale?!
We all know that sequential data and the processing thereof are hard to deal with. Typical use case:
- Sales history of a customer in retail business
- Browser activity of a visitor on a website
- Events generated by a sensor in IoT
- DNA sequence of a particular species in genomics
Typical operations on sequential data are: align, diff, down sample, outlier, min/max, avg/med, slope, ….
Let’s try to put Apache Spark to work?
The first plan of attack was to put Apache Spark straight to work. But the typical layout of the sequence by timestamp is far from ideal for analysis, because the required group by is cumbersome ánd expensive.
First alternative. Spark TS builds on top of Spark to add a set of abstractions for manipulating time series data. But this project is a risk as being immature and maintained by 1 developer.
2nd alternative. HuoHua. Right now, it is only a concept laid out in this presentation. HuoHua is Chinese for ‘spark’ 🙂 The authors are a team of 8 engineers at TwoSigma (ed. 1 of the 1st customers of BigBoards).
Anyways, time series does not match well with Spark’s typical data model. It cause too much memory pressure and shuffle issues.
Apache Ignite to the rescue!
“Apache Ignite In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with traditional disk-based or flash technologies.”
An image says more than a thousand words …
The advantages of Apache Ignite that appealed to the Dataminded team, are:
- Recognizable Java APIs
- Computations are simple Java Callables returning a Future<T>. In an interactive environment that is way more flexible than launching Apache Spark.
- Data affinity allows Apache Ignite to execute code on the nodes where the data resides. This results in major speed improvements.
The benefits that Apache Ignite brought to Mathias’ problem domain, are:
- Processing sequences without the loss of context
- Collocating sequences results in 0 network transfer
- Analyzing a single sequence is fast and convenient
- Very high level of control
Here is Mathias’ slidedeck …
PS: Do scroll to the last page …we love Dataminded’s corporate values!!!
After the presentations we had a group discussion on what our members want or expect from the community. We continued this discussion over a beer in the bar across the street. Here are some thoughts:
- Do we want to organize and participate in hackathons to get hands-on experience?
- Who can present meaningful ideas to hackathon on?
- Do we want to see more business use cases during the meetups?
That was my 1st BigData.be meetup. I liked it a lot! Engaging talks at a great location/venue. Keep it coming. I’ll plan some time for a beer next time 🙂
After the meetup, Tom Bayens proposed a possible topic for a hackathon: build the best investment strategy using historic and real-time stock quote data. As far as Tom in concerned, there seems to be ‘an ideal match between the necessary calculations and technologies that fit BigData.be.
Share your own ideas to grow our community!