---
layout: global
title: Spark Streaming + Kafka Integration Guide
license: |
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at
 
     http://www.apache.org/licenses/LICENSE-2.0
 
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
---

[Apache Kafka](https://kafka.apache.org/) is publish-subscribe messaging rethought as a distributed, partitioned, 
replicated commit log service.  Please read the [Kafka documentation](https://kafka.apache.org/documentation.html) 
thoroughly before starting an integration using Spark.

At the moment, Spark requires Kafka 0.10 and higher. See 
<a href="streaming-kafka-0-10-integration.html">Kafka 0.10 integration documentation</a> for details.
