You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by de...@apache.org on 2017/10/04 16:22:30 UTC

svn commit: r1811107 - in /flume/site/trunk/content/sphinx: FlumeDeveloperGuide.rst FlumeUserGuide.rst conf.py download.rst index.rst releases/1.8.0.rst releases/index.rst

Author: denes
Date: Wed Oct  4 16:22:29 2017
New Revision: 1811107

URL: http://svn.apache.org/viewvc?rev=1811107&view=rev
Log:
Update the website for Apache Flume 1.8.0


Added:
    flume/site/trunk/content/sphinx/releases/1.8.0.rst
Modified:
    flume/site/trunk/content/sphinx/FlumeDeveloperGuide.rst
    flume/site/trunk/content/sphinx/FlumeUserGuide.rst
    flume/site/trunk/content/sphinx/conf.py
    flume/site/trunk/content/sphinx/download.rst
    flume/site/trunk/content/sphinx/index.rst
    flume/site/trunk/content/sphinx/releases/index.rst

Modified: flume/site/trunk/content/sphinx/FlumeDeveloperGuide.rst
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/FlumeDeveloperGuide.rst?rev=1811107&r1=1811106&r2=1811107&view=diff
==============================================================================
--- flume/site/trunk/content/sphinx/FlumeDeveloperGuide.rst (original)
+++ flume/site/trunk/content/sphinx/FlumeDeveloperGuide.rst Wed Oct  4 16:22:29 2017
@@ -15,7 +15,7 @@
 
 
 ======================================
-Flume 1.7.0 Developer Guide
+Flume 1.8.0 Developer Guide
 ======================================
 
 Introduction
@@ -114,6 +114,18 @@ Please note that Flume builds requires t
 be in the path. You can download and install it by following the instructions
 `here <https://developers.google.com/protocol-buffers/>`_.
 
+Updating Protocol Buffer Version
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+File channel has a dependency on Protocol Buffer. When updating the version of Protocol Buffer
+used by Flume, it is necessary to regenerate the data access classes using the protoc compiler
+that is part of Protocol Buffer as follows.
+
+#. Install the desired version of Protocol Buffer on your local machine
+#. Update version of Protocol Buffer in pom.xml
+#. Generate new Protocol Buffer data access classes in Flume: ``cd flume-ng-channels/flume-file-channel; mvn -P compile-proto clean package -DskipTests``
+#. Add Apache license header to any of the generated files that are missing it
+#. Rebuild and test Flume:  ``cd ../..; mvn clean install``
+
 Developing custom components
 ----------------------------
 
@@ -573,23 +585,23 @@ Required properties are in **bold**.
 Property Name          Default           Description
 =====================  ================  ======================================================================
 source.type            embedded          The only available source is the embedded source.
-**channel.type**       --                Either ``memory`` or ``file`` which correspond
+**channel.type**       --                Either ``memory`` or ``file`` which correspond 
 		         		 to MemoryChannel and FileChannel respectively.
 channel.*              --                Configuration options for the channel type requested,
 					 see MemoryChannel or FileChannel user guide for an exhaustive list.
 **sinks**              --                List of sink names
-**sink.type**          --                Property name must match a name in the list of sinks.
+**sink.type**          --                Property name must match a name in the list of sinks. 
 					 Value must be ``avro``
-sink.*                 --                Configuration options for the sink.
+sink.*                 --                Configuration options for the sink. 
 					 See AvroSink user guide for an exhaustive list,
 					 however note AvroSink requires at least hostname and port.
 **processor.type**     --                Either ``failover`` or ``load_balance`` which correspond
 		            		 to FailoverSinksProcessor and LoadBalancingSinkProcessor respectively.
 processor.*            --                Configuration options for the sink processor selected.
-					 See FailoverSinksProcessor and LoadBalancingSinkProcessor
+					 See FailoverSinksProcessor and LoadBalancingSinkProcessor 
 					 user guide for an exhaustive list.
 source.interceptors    --                Space-separated list of interceptors
-source.interceptors.*  --                Configuration options for individual interceptors
+source.interceptors.*  --                Configuration options for individual interceptors 
 					 specified in the source.interceptors property
 =====================  ================  ======================================================================
 

Modified: flume/site/trunk/content/sphinx/FlumeUserGuide.rst
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/FlumeUserGuide.rst?rev=1811107&r1=1811106&r2=1811107&view=diff
==============================================================================
--- flume/site/trunk/content/sphinx/FlumeUserGuide.rst (original)
+++ flume/site/trunk/content/sphinx/FlumeUserGuide.rst Wed Oct  4 16:22:29 2017
@@ -15,7 +15,7 @@
 
 
 ======================================
-Flume 1.7.0 User Guide
+Flume 1.8.0 User Guide
 ======================================
 
 Introduction
@@ -50,7 +50,7 @@ in the latest architecture.
 System Requirements
 -------------------
 
-#. Java Runtime Environment - Java 1.7 or later
+#. Java Runtime Environment - Java 1.8 or later
 #. Memory - Sufficient memory for configurations used by sources, channels or sinks
 #. Disk Space - Sufficient disk space for configurations used by channels or sinks
 #. Directory Permissions - Read/Write permissions for directories used by agent
@@ -234,6 +234,25 @@ The original Flume terminal will output
 
 Congratulations - you've successfully configured and deployed a Flume agent! Subsequent sections cover agent configuration in much more detail.
 
+Using environment variables in configuration files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Flume has the ability to substitute environment variables in the configuration. For example::
+
+  a1.sources = r1
+  a1.sources.r1.type = netcat
+  a1.sources.r1.bind = 0.0.0.0
+  a1.sources.r1.port = ${NC_PORT}
+  a1.sources.r1.channels = c1
+
+NB: it currently works for values only, not for keys. (Ie. only on the "right side" of the `=` mark of the config lines.)
+
+This can be enabled via Java system properties on agent invocation by setting `propertiesImplementation = org.apache.flume.node.EnvVarResolverProperties`.
+
+For example::
+  $ NC_PORT=44444 bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console -DpropertiesImplementation=org.apache.flume.node.EnvVarResolverProperties
+
+Note the above is just an example, environment variables can be configured in other ways, including being set in `conf/flume-env.sh`.
+
 Logging raw data
 ~~~~~~~~~~~~~~~~
 
@@ -357,8 +376,6 @@ There's an exec source that executes a g
 single 'line' of output ie. text followed by carriage return ('\\r') or line
 feed ('\\n') or both together.
 
-.. note:: Flume does not support tail as a source. One can wrap the tail command in an exec source to stream the file.
-
 Network streams
 ~~~~~~~~~~~~~~~
 
@@ -578,9 +595,9 @@ Weblog agent config:
   agent_foo.sinks.avro-forward-sink.channel = file-channel
 
   # avro sink properties
-  agent_foo.sources.avro-forward-sink.type = avro
-  agent_foo.sources.avro-forward-sink.hostname = 10.1.1.100
-  agent_foo.sources.avro-forward-sink.port = 10000
+  agent_foo.sinks.avro-forward-sink.type = avro
+  agent_foo.sinks.avro-forward-sink.hostname = 10.1.1.100
+  agent_foo.sinks.avro-forward-sink.port = 10000
 
   # configure other pieces
   #...
@@ -599,7 +616,7 @@ HDFS agent config:
   agent_foo.sources.avro-collection-source.channels = mem-channel
   agent_foo.sinks.hdfs-sink.channel = mem-channel
 
-  # avro sink properties
+  # avro source properties
   agent_foo.sources.avro-collection-source.type = avro
   agent_foo.sources.avro-collection-source.bind = 10.1.1.100
   agent_foo.sources.avro-collection-source.port = 10000
@@ -882,13 +899,9 @@ interceptors.*
              asynchronous interface such as ExecSource! As an extension of this
              warning - and to be completely clear - there is absolutely zero guarantee
              of event delivery when using this source. For stronger reliability
-             guarantees, consider the Spooling Directory Source or direct integration
+             guarantees, consider the Spooling Directory Source, Taildir Source or direct integration
              with Flume via the SDK.
 
-.. note:: You can use ExecSource to emulate TailSource from Flume 0.9x (flume og).
-          Just use unix command ``tail -F /full/path/to/your/file``. Parameter
-          -F is better in this case than -f as it will also follow file rotation.
-
 Example for agent named a1:
 
 .. code-block:: properties
@@ -941,6 +954,12 @@ batchSize                   100
 converter.type              DEFAULT      Class to use to convert messages to flume events. See below.
 converter.*                 --           Converter properties.
 converter.charset           UTF-8        Default converter only. Charset to use when converting JMS TextMessages to byte arrays.
+createDurableSubscription   false        Whether to create durable subscription. Durable subscription can only be used with
+                                         destinationType topic. If true, "clientId" and "durableSubscriptionName"
+                                         have to be specified.
+clientId                    --           JMS client identifier set on Connection right after it is created.
+                                         Required for durable subscriptions.
+durableSubscriptionName     --           Name used to identify the durable subscription. Required for durable subscriptions.
 =========================   ===========  ==============================================================
 
 
@@ -1265,6 +1284,12 @@ useFlumeEventFormat                 fals
                                                  true to read events as the Flume Avro binary format. Used in conjunction with the same property
                                                  on the KafkaSink or with the parseAsFlumeEvent property on the Kafka Channel this will preserve
                                                  any Flume headers sent on the producing side.
+setTopicHeader                      true         When set to true, stores the topic of the retrieved message into a header, defined by the
+                                                 ``topicHeader`` property.
+topicHeader                         topic        Defines the name of the header in which to store the name of the topic the message was received
+                                                 from, if the ``setTopicHeader`` property is set to ``true``. Care should be taken if combining
+                                                 with the Kafka Sink ``topicHeader`` property so as to avoid sending the message back to the same
+                                                 topic in a loop.
 migrateZookeeperOffsets             true         When no Kafka stored offset is found, look up the offsets in Zookeeper and commit them to Kafka.
                                                  This should be true to support seamless Kafka client migration from older versions of Flume.
                                                  Once migrated this can be set to false, though that should generally not be required.
@@ -1351,13 +1376,13 @@ Example configuration with server side a
 
 .. code-block:: properties
 
-    a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
-    a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
-    a1.channels.channel1.kafka.topic = channel1
-    a1.channels.channel1.kafka.consumer.group.id = flume-consumer
-    a1.channels.channel1.kafka.consumer.security.protocol = SSL
-    a1.channels.channel1.kafka.consumer.ssl.truststore.location=/path/to/truststore.jks
-    a1.channels.channel1.kafka.consumer.ssl.truststore.password=<password to access the truststore>
+    a1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource
+    a1.sources.source1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
+    a1.sources.source1.kafka.topics = mytopic
+    a1.sources.source1.kafka.consumer.group.id = flume-consumer
+    a1.sources.source1.kafka.consumer.security.protocol = SSL
+    a1.sources.source1.kafka.consumer.ssl.truststore.location=/path/to/truststore.jks
+    a1.sources.source1.kafka.consumer.ssl.truststore.password=<password to access the truststore>
 
 
 Note: By default the property ``ssl.endpoint.identification.algorithm``
@@ -1366,7 +1391,7 @@ In order to enable hostname verification
 
 .. code-block:: properties
 
-    a1.channels.channel1.kafka.consumer.ssl.endpoint.identification.algorithm=HTTPS
+    a1.sources.source1.kafka.consumer.ssl.endpoint.identification.algorithm=HTTPS
 
 Once enabled, clients will verify the server's fully qualified domain name (FQDN)
 against one of the following two fields:
@@ -1381,15 +1406,15 @@ which in turn is trusted by Kafka broker
 
 .. code-block:: properties
 
-    a1.channels.channel1.kafka.consumer.ssl.keystore.location=/path/to/client.keystore.jks
-    a1.channels.channel1.kafka.consumer.ssl.keystore.password=<password to access the keystore>
+    a1.sources.source1.kafka.consumer.ssl.keystore.location=/path/to/client.keystore.jks
+    a1.sources.source1.kafka.consumer.ssl.keystore.password=<password to access the keystore>
 
 If keystore and key use different password protection then ``ssl.key.password`` property will
 provide the required additional secret for both consumer keystores:
 
 .. code-block:: properties
 
-    a1.channels.channel1.kafka.consumer.ssl.key.password=<password to access the key>
+    a1.sources.source1.kafka.consumer.ssl.key.password=<password to access the key>
 
 
 **Kerberos and Kafka Source:**
@@ -1408,27 +1433,27 @@ Example secure configuration using SASL_
 
 .. code-block:: properties
 
-    a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
-    a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
-    a1.channels.channel1.kafka.topic = channel1
-    a1.channels.channel1.kafka.consumer.group.id = flume-consumer
-    a1.channels.channel1.kafka.consumer.security.protocol = SASL_PLAINTEXT
-    a1.channels.channel1.kafka.consumer.sasl.mechanism = GSSAPI
-    a1.channels.channel1.kafka.consumer.sasl.kerberos.service.name = kafka
+    a1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource
+    a1.sources.source1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
+    a1.sources.source1.kafka.topics = mytopic
+    a1.sources.source1.kafka.consumer.group.id = flume-consumer
+    a1.sources.source1.kafka.consumer.security.protocol = SASL_PLAINTEXT
+    a1.sources.source1.kafka.consumer.sasl.mechanism = GSSAPI
+    a1.sources.source1.kafka.consumer.sasl.kerberos.service.name = kafka
 
 Example secure configuration using SASL_SSL:
 
 .. code-block:: properties
 
-    a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
-    a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
-    a1.channels.channel1.kafka.topic = channel1
-    a1.channels.channel1.kafka.consumer.group.id = flume-consumer
-    a1.channels.channel1.kafka.consumer.security.protocol = SASL_SSL
-    a1.channels.channel1.kafka.consumer.sasl.mechanism = GSSAPI
-    a1.channels.channel1.kafka.consumer.sasl.kerberos.service.name = kafka
-    a1.channels.channel1.kafka.consumer.ssl.truststore.location=/path/to/truststore.jks
-    a1.channels.channel1.kafka.consumer.ssl.truststore.password=<password to access the truststore>
+    a1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource
+    a1.sources.source1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
+    a1.sources.source1.kafka.topics = mytopic
+    a1.sources.source1.kafka.consumer.group.id = flume-consumer
+    a1.sources.source1.kafka.consumer.security.protocol = SASL_SSL
+    a1.sources.source1.kafka.consumer.sasl.mechanism = GSSAPI
+    a1.sources.source1.kafka.consumer.sasl.kerberos.service.name = kafka
+    a1.sources.source1.kafka.consumer.ssl.truststore.location=/path/to/truststore.jks
+    a1.sources.source1.kafka.consumer.ssl.truststore.password=<password to access the truststore>
 
 
 Sample JAAS file. For reference of its content please see client config sections of the desired authentication mechanism (GSSAPI/PLAIN)
@@ -1456,8 +1481,8 @@ Also please make sure that the operating
     };
 
 
-NetCat Source
-~~~~~~~~~~~~~
+NetCat TCP Source
+~~~~~~~~~~~~~~~~~
 
 A netcat-like source that listens on a given port and turns each line of text
 into an event. Acts like ``nc -k -l [host] [port]``. In other words,
@@ -1493,12 +1518,48 @@ Example for agent named a1:
   a1.sources.r1.port = 6666
   a1.sources.r1.channels = c1
 
+NetCat UDP Source
+~~~~~~~~~~~~~~~~~
+
+As per the original Netcat (TCP) source, this source that listens on a given
+port and turns each line of text into an event and sent via the connected channel.
+Acts like ``nc -u -k -l [host] [port]``.
+
+Required properties are in **bold**.
+
+===================  ===========  ===========================================
+Property Name        Default      Description
+===================  ===========  ===========================================
+**channels**         --
+**type**             --           The component type name, needs to be ``netcatudp``
+**bind**             --           Host name or IP address to bind to
+**port**             --           Port # to bind to
+remoteAddressHeader  --
+selector.type        replicating  replicating or multiplexing
+selector.*                        Depends on the selector.type value
+interceptors         --           Space-separated list of interceptors
+interceptors.*
+===================  ===========  ===========================================
+
+Example for agent named a1:
+
+.. code-block:: properties
+
+  a1.sources = r1
+  a1.channels = c1
+  a1.sources.r1.type = netcatudp
+  a1.sources.r1.bind = 0.0.0.0
+  a1.sources.r1.port = 6666
+  a1.sources.r1.channels = c1
+
 Sequence Generator Source
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
 A simple sequence generator that continuously generates events with a counter that starts from 0,
 increments by 1 and stops at totalEvents. Retries when it can't send events to the channel. Useful
-mainly for testing. Required properties are in **bold**.
+mainly for testing. During retries it keeps the body of the retried messages the same as before so
+that the number of unique events - after de-duplication at destination - is expected to be
+equal to the specified ``totalEvents``. Required properties are in **bold**.
 
 ==============  ===============  ========================================
 Property Name   Default          Description
@@ -1509,7 +1570,7 @@ selector.type                    replica
 selector.*      replicating      Depends on the selector.type value
 interceptors    --               Space-separated list of interceptors
 interceptors.*
-batchSize       1
+batchSize       1                Number of events to attempt to process per request loop.
 totalEvents     Long.MAX_VALUE   Number of unique events sent by the source.
 ==============  ===============  ========================================
 
@@ -1997,7 +2058,7 @@ hdfs.fileType           SequenceFile  Fi
                                       (2)CompressedStream requires set hdfs.codeC with an available codeC
 hdfs.maxOpenFiles       5000          Allow only this number of open files. If this number is exceeded, the oldest file is closed.
 hdfs.minBlockReplicas   --            Specify minimum number of replicas per HDFS block. If not specified, it comes from the default Hadoop config in the classpath.
-hdfs.writeFormat        --            Format for sequence file records. One of "Text" or "Writable" (the default).
+hdfs.writeFormat        Writable      Format for sequence file records. One of ``Text`` or ``Writable``. Set to ``Text`` before creating data files with Flume, otherwise those files cannot be read by either Apache Impala (incubating) or Apache Hive.
 hdfs.callTimeout        10000         Number of milliseconds allowed for HDFS operations, such as open, write, flush, close.
                                       This number should be increased if many HDFS timeout operations are occurring.
 hdfs.threadsPoolSize    10            Number of threads per HDFS sink for HDFS IO ops (open, write, etc.)
@@ -2712,6 +2773,8 @@ kafka.topic                         defa
                                                          messages will be published to this topic.
                                                          If the event header contains a "topic" field, the event will be published to that topic
                                                          overriding the topic configured here.
+                                                         Arbitrary header substitution is supported, eg. %{header} is replaced with value of event header named "header".
+                                                         (If using the substitution, it is recommended to set "auto.create.topics.enable" property of Kafka broker to true.)
 flumeBatchSize                      100                  How many messages to process in one batch. Larger batches improve throughput while adding latency.
 kafka.producer.acks                 1                    How many replicas must acknowledge a message before its considered successfully written.
                                                          Accepted values are 0 (Never wait for acknowledgement), 1 (wait for leader only), -1 (wait for all replicas)
@@ -2728,6 +2791,9 @@ partitionIdHeader                   --
                                                          from the event header and send the message to the specified partition of the topic. If the
                                                          value represents an invalid partition, an EventDeliveryException will be thrown. If the header value
                                                          is present then this setting overrides ``defaultPartitionId``.
+allowTopicOverride                  true                 When set, the sink will allow a message to be produced into a topic specified by the ``topicHeader`` property (if provided).
+topicHeader                         topic                When set in conjunction with ``allowTopicOverride`` will produce a message into the value of the header named using the value of this property.
+                                                         Care should be taken when using in conjunction with the Kafka Source ``topicHeader`` property to avoid creating a loopback.
 kafka.producer.security.protocol    PLAINTEXT            Set to SASL_PLAINTEXT, SASL_SSL or SSL if writing to Kafka using some level of security. See below for additional info on secure setup.
 *more producer security props*                           If using SASL_PLAINTEXT, SASL_SSL or SSL refer to `Kafka security <http://kafka.apache.org/documentation.html#security>`_ for additional
                                                          properties that need to be set on producer.
@@ -2773,7 +2839,7 @@ argument.
     a1.sinks.k1.kafka.flumeBatchSize = 20
     a1.sinks.k1.kafka.producer.acks = 1
     a1.sinks.k1.kafka.producer.linger.ms = 1
-    a1.sinks.ki.kafka.producer.compression.type = snappy
+    a1.sinks.k1.kafka.producer.compression.type = snappy
 
 
 **Security and Kafka Sink:**
@@ -2807,12 +2873,12 @@ Example configuration with server side a
 
 .. code-block:: properties
 
-    a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
-    a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
-    a1.channels.channel1.kafka.topic = channel1
-    a1.channels.channel1.kafka.producer.security.protocol = SSL
-    a1.channels.channel1.kafka.producer.ssl.truststore.location = /path/to/truststore.jks
-    a1.channels.channel1.kafka.producer.ssl.truststore.password = <password to access the truststore>
+    a1.sinks.sink1.type = org.apache.flume.sink.kafka.KafkaSink
+    a1.sinks.sink1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
+    a1.sinks.sink1.kafka.topic = mytopic
+    a1.sinks.sink1.kafka.producer.security.protocol = SSL
+    a1.sinks.sink1.kafka.producer.ssl.truststore.location = /path/to/truststore.jks
+    a1.sinks.sink1.kafka.producer.ssl.truststore.password = <password to access the truststore>
 
 
 Note: By default the property ``ssl.endpoint.identification.algorithm``
@@ -2821,7 +2887,7 @@ In order to enable hostname verification
 
 .. code-block:: properties
 
-    a1.channels.channel1.kafka.producer.ssl.endpoint.identification.algorithm = HTTPS
+    a1.sinks.sink1.kafka.producer.ssl.endpoint.identification.algorithm = HTTPS
 
 Once enabled, clients will verify the server's fully qualified domain name (FQDN)
 against one of the following two fields:
@@ -2836,15 +2902,15 @@ which in turn is trusted by Kafka broker
 
 .. code-block:: properties
 
-    a1.channels.channel1.kafka.producer.ssl.keystore.location = /path/to/client.keystore.jks
-    a1.channels.channel1.kafka.producer.ssl.keystore.password = <password to access the keystore>
+    a1.sinks.sink1.kafka.producer.ssl.keystore.location = /path/to/client.keystore.jks
+    a1.sinks.sink1.kafka.producer.ssl.keystore.password = <password to access the keystore>
 
 If keystore and key use different password protection then ``ssl.key.password`` property will
 provide the required additional secret for producer keystore:
 
 .. code-block:: properties
 
-    a1.channels.channel1.kafka.producer.ssl.key.password = <password to access the key>
+    a1.sinks.sink1.kafka.producer.ssl.key.password = <password to access the key>
 
 
 **Kerberos and Kafka Sink:**
@@ -2863,26 +2929,26 @@ Example secure configuration using SASL_
 
 .. code-block:: properties
 
-    a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
-    a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
-    a1.channels.channel1.kafka.topic = channel1
-    a1.channels.channel1.kafka.producer.security.protocol = SASL_PLAINTEXT
-    a1.channels.channel1.kafka.producer.sasl.mechanism = GSSAPI
-    a1.channels.channel1.kafka.producer.sasl.kerberos.service.name = kafka
+    a1.sinks.sink1.type = org.apache.flume.sink.kafka.KafkaSink
+    a1.sinks.sink1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
+    a1.sinks.sink1.kafka.topic = mytopic
+    a1.sinks.sink1.kafka.producer.security.protocol = SASL_PLAINTEXT
+    a1.sinks.sink1.kafka.producer.sasl.mechanism = GSSAPI
+    a1.sinks.sink1.kafka.producer.sasl.kerberos.service.name = kafka
 
 
 Example secure configuration using SASL_SSL:
 
 .. code-block:: properties
 
-    a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
-    a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
-    a1.channels.channel1.kafka.topic = channel1
-    a1.channels.channel1.kafka.producer.security.protocol = SASL_SSL
-    a1.channels.channel1.kafka.producer.sasl.mechanism = GSSAPI
-    a1.channels.channel1.kafka.producer.sasl.kerberos.service.name = kafka
-    a1.channels.channel1.kafka.producer.ssl.truststore.location = /path/to/truststore.jks
-    a1.channels.channel1.kafka.producer.ssl.truststore.password = <password to access the truststore>
+    a1.sinks.sink1.type = org.apache.flume.sink.kafka.KafkaSink
+    a1.sinks.sink1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
+    a1.sinks.sink1.kafka.topic = mytopic
+    a1.sinks.sink1.kafka.producer.security.protocol = SASL_SSL
+    a1.sinks.sink1.kafka.producer.sasl.mechanism = GSSAPI
+    a1.sinks.sink1.kafka.producer.sasl.kerberos.service.name = kafka
+    a1.sinks.sink1.kafka.producer.ssl.truststore.location = /path/to/truststore.jks
+    a1.sinks.sink1.kafka.producer.ssl.truststore.password = <password to access the truststore>
 
 
 Sample JAAS file. For reference of its content please see client config sections of the desired authentication mechanism (GSSAPI/PLAIN)
@@ -2901,6 +2967,74 @@ that the operating system user of the Fl
     };
 
 
+HTTP Sink
+~~~~~~~~~
+
+Behaviour of this sink is that it will take events from the channel, and
+send those events to a remote service using an HTTP POST request. The event
+content is sent as the POST body.
+
+Error handling behaviour of this sink depends on the HTTP response returned
+by the target server. The sink backoff/ready status is configurable, as is the
+transaction commit/rollback result and whether the event contributes to the
+successful event drain count.
+
+Any malformed HTTP response returned by the server where the status code is
+not readable will result in a backoff signal and the event is not consumed
+from the channel.
+
+Required properties are in **bold**.
+
+========================== ================= ===========================================================================================
+Property Name              Default           Description
+========================== ================= ===========================================================================================
+**channel**                --
+**type**                   --                The component type name, needs to be ``http``.
+**endpoint**               --                The fully qualified URL endpoint to POST to
+connectTimeout             5000              The socket connection timeout in milliseconds
+requestTimeout             5000              The maximum request processing time in milliseconds
+contentTypeHeader          text/plain        The HTTP Content-Type header
+acceptHeader               text/plain        The HTTP Accept header value
+defaultBackoff             true              Whether to backoff by default on receiving all HTTP status codes
+defaultRollback            true              Whether to rollback by default on receiving all HTTP status codes
+defaultIncrementMetrics    false             Whether to increment metrics by default on receiving all HTTP status codes
+backoff.CODE               --                Configures a specific backoff for an individual (i.e. 200) code or a group (i.e. 2XX) code
+rollback.CODE              --                Configures a specific rollback for an individual (i.e. 200) code or a group (i.e. 2XX) code
+incrementMetrics.CODE      --                Configures a specific metrics increment for an individual (i.e. 200) code or a group (i.e. 2XX) code
+========================== ================= ===========================================================================================
+
+Note that the most specific HTTP status code match is used for the backoff,
+rollback and incrementMetrics configuration options. If there are configuration
+values for both 2XX and 200 status codes, then 200 HTTP codes will use the 200
+value, and all other HTTP codes in the 201-299 range will use the 2XX value.
+
+Any empty or null events are consumed without any request being made to the
+HTTP endpoint.
+
+Example for agent named a1:
+
+.. code-block:: properties
+
+  a1.channels = c1
+  a1.sinks = k1
+  a1.sinks.k1.type = http
+  a1.sinks.k1.channel = c1
+  a1.sinks.k1.endpoint = http://localhost:8080/someuri
+  a1.sinks.k1.connectTimeout = 2000
+  a1.sinks.k1.requestTimeout = 2000
+  a1.sinks.k1.acceptHeader = application/json
+  a1.sinks.k1.contentTypeHeader = application/json
+  a1.sinks.k1.defaultBackoff = true
+  a1.sinks.k1.defaultRollback = true
+  a1.sinks.k1.defaultIncrementMetrics = false
+  a1.sinks.k1.backoff.4XX = false
+  a1.sinks.k1.rollback.4XX = false
+  a1.sinks.k1.incrementMetrics.4XX = true
+  a1.sinks.k1.backoff.200 = false
+  a1.sinks.k1.rollback.200 = false
+  a1.sinks.k1.incrementMetrics.200 = true
+
+
 Custom Sink
 ~~~~~~~~~~~
 
@@ -3062,7 +3196,7 @@ pollTimeout
                                                                      https://kafka.apache.org/090/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll(long)
 defaultPartitionId                       --                          Specifies a Kafka partition ID (integer) for all events in this channel to be sent to, unless
                                                                      overriden by ``partitionIdHeader``. By default, if this property is not set, events will be
-                                                                     distributed by the Kafka Producer's partitioner - including by ``key`` if specified (or by a
+                                                                     distributed by the Kafka Producer's partitioner - including by ``key`` if specified (or by a 
                                                                      partitioner specified by ``kafka.partitioner.class``).
 partitionIdHeader                        --                          When set, the producer will take the value of the field named using the value of this property
                                                                      from the event header and send the message to the specified partition of the topic. If the
@@ -3831,15 +3965,16 @@ Timestamp Interceptor
 ~~~~~~~~~~~~~~~~~~~~~
 
 This interceptor inserts into the event headers, the time in millis at which it processes the event. This interceptor
-inserts a header with key ``timestamp`` whose value is the relevant timestamp. This interceptor
-can preserve an existing timestamp if it is already present in the configuration.
+inserts a header with key ``timestamp`` (or as specified by the ``header`` property) whose value is the relevant timestamp.
+This interceptor can preserve an existing timestamp if it is already present in the configuration.
 
-================  =======  ========================================================================
-Property Name     Default  Description
-================  =======  ========================================================================
-**type**          --       The component type name, has to be ``timestamp`` or the FQCN
-preserveExisting  false    If the timestamp already exists, should it be preserved - true or false
-================  =======  ========================================================================
+================  =========  ========================================================================
+Property Name     Default    Description
+================  =========  ========================================================================
+**type**          --         The component type name, has to be ``timestamp`` or the FQCN
+header            timestamp  The name of the header in which to place the generated timestamp.
+preserveExisting  false      If the timestamp already exists, should it be preserved - true or false
+================  =========  ========================================================================
 
 Example for agent named a1:
 
@@ -3875,7 +4010,6 @@ Example for agent named a1:
   a1.channels = c1
   a1.sources.r1.interceptors = i1
   a1.sources.r1.interceptors.i1.type = host
-  a1.sources.r1.interceptors.i1.hostHeader = hostname
 
 Static Interceptor
 ~~~~~~~~~~~~~~~~~~
@@ -3907,6 +4041,25 @@ Example for agent named a1:
   a1.sources.r1.interceptors.i1.key = datacenter
   a1.sources.r1.interceptors.i1.value = NEW_YORK
 
+
+Remove Header Interceptor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This interceptor manipulates Flume event headers, by removing one or many headers. It can remove a statically defined header, headers based on a regular expression or headers in a list. If none of these is defined, or if no header matches the criteria, the Flume events are not modified.
+
+Note that if only one header needs to be removed, specifying it by name provides performance benefits over the other 2 methods.
+
+=====================  ===========  ===============================================================
+Property Name          Default      Description
+=====================  ===========  ===============================================================
+**type**               --           The component type name has to be ``remove_header``
+withName               --           Name of the header to remove
+fromList               --           List of headers to remove, separated with the separator specified by ``fromListSeparator``
+fromListSeparator      \\s*,\\s*    Regular expression used to separate multiple header names in the list specified by ``fromList``. Default is a comma surrounded by any number of whitespace characters
+matching               --           All the headers which names match this regular expression are removed
+=====================  ===========  ===============================================================
+
+
 UUID Interceptor
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -4101,7 +4254,7 @@ Log4J Appender
 
 Appends Log4j events to a flume agent's avro source. A client using this
 appender must have the flume-ng-sdk in the classpath (eg,
-flume-ng-sdk-1.8.0-SNAPSHOT.jar).
+flume-ng-sdk-1.8.0.jar).
 Required properties are in **bold**.
 
 =====================  =======  ==================================================================================
@@ -4165,7 +4318,7 @@ Load Balancing Log4J Appender
 
 Appends Log4j events to a list of flume agent's avro source. A client using this
 appender must have the flume-ng-sdk in the classpath (eg,
-flume-ng-sdk-1.8.0-SNAPSHOT.jar). This appender supports a round-robin and random
+flume-ng-sdk-1.8.0.jar). This appender supports a round-robin and random
 scheme for performing the load balancing. It also supports a configurable backoff
 timeout so that down agents are removed temporarily from the set of hosts
 Required properties are in **bold**.

Modified: flume/site/trunk/content/sphinx/conf.py
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/conf.py?rev=1811107&r1=1811106&r2=1811107&view=diff
==============================================================================
--- flume/site/trunk/content/sphinx/conf.py (original)
+++ flume/site/trunk/content/sphinx/conf.py Wed Oct  4 16:22:29 2017
@@ -17,6 +17,7 @@
 
 import sys
 import os
+from datetime import date
 
 # eventlet/gevent should not monkey patch anything.
 os.environ["GEVENT_NOPATCH"] = "yes"
@@ -62,7 +63,7 @@ master_doc = 'index'
 
 # General information about the project.
 project = 'Apache Flume'
-copyright = '2009-2012 The Apache Software Foundation. Apache Flume, Flume, Apache, the Apache feather logo, and the Apache Flume project logo are trademarks of The Apache Software Foundation.'
+copyright = '2009-%s The Apache Software Foundation. Apache Flume, Flume, Apache, the Apache feather logo, and the Apache Flume project logo are trademarks of The Apache Software Foundation.' % date.today().year
 
 keep_warnings = True
 
@@ -138,4 +139,4 @@ html_sidebars = {
 pdf_documents = [
   ('FlumeUserGuide', 'FlumeUserGuide.tex', 'Flume User Guide', 'Apache Flume'),
   ('FlumeDeveloperGuide', 'FlumeDeveloperGuide.tex', 'Flume Developer Guide', 'Apache Flume'),
-]
\ No newline at end of file
+]

Modified: flume/site/trunk/content/sphinx/download.rst
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/download.rst?rev=1811107&r1=1811106&r2=1811107&view=diff
==============================================================================
--- flume/site/trunk/content/sphinx/download.rst (original)
+++ flume/site/trunk/content/sphinx/download.rst Wed Oct  4 16:22:29 2017
@@ -10,8 +10,8 @@ originals on the main distribution serve
 
 .. csv-table::
 
-   "Apache Flume binary (tar.gz)",  `apache-flume-1.7.0-bin.tar.gz <http://www.apache.org/dyn/closer.lua/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz>`_, `apache-flume-1.7.0-bin.tar.gz.md5 <http://www.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz.md5>`_, `apache-flume-1.7.0-bin.tar.gz.sha1 <http://www.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz.sha1>`_, `apache-flume-1.7.0-bin.tar.gz.asc <http://www.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz.asc>`_
-  "Apache Flume source (tar.gz)",  `apache-flume-1.7.0-src.tar.gz <http://www.apache.org/dyn/closer.lua/flume/1.7.0/apache-flume-1.7.0-src.tar.gz>`_, `apache-flume-1.7.0-src.tar.gz.md5 <http://www.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-src.tar.gz.md5>`_, `apache-flume-1.7.0-src.tar.gz.sha1 <http://www.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-src.tar.gz.sha1>`_, `apache-flume-1.7.0-src.tar.gz.asc <http://www.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-src.tar.gz.asc>`_
+   "Apache Flume binary (tar.gz)",  `apache-flume-1.8.0-bin.tar.gz <http://www.apache.org/dyn/closer.lua/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz>`_, `apache-flume-1.8.0-bin.tar.gz.md5 <http://www.apache.org/dist/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz.md5>`_, `apache-flume-1.8.0-bin.tar.gz.sha1 <http://www.apache.org/dist/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz.sha1>`_, `apache-flume-1.8.0-bin.tar.gz.asc <http://www.apache.org/dist/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz.asc>`_
+  "Apache Flume source (tar.gz)",  `apache-flume-1.8.0-src.tar.gz <http://www.apache.org/dyn/closer.lua/flume/1.8.0/apache-flume-1.8.0-src.tar.gz>`_, `apache-flume-1.8.0-src.tar.gz.md5 <http://www.apache.org/dist/flume/1.8.0/apache-flume-1.8.0-src.tar.gz.md5>`_, `apache-flume-1.8.0-src.tar.gz.sha1 <http://www.apache.org/dist/flume/1.8.0/apache-flume-1.8.0-src.tar.gz.sha1>`_, `apache-flume-1.8.0-src.tar.gz.asc <http://www.apache.org/dist/flume/1.8.0/apache-flume-1.8.0-src.tar.gz.asc>`_
 
 It is essential that you verify the integrity of the downloaded files using the PGP or MD5 signatures. Please read
 `Verifying Apache HTTP Server Releases <http://httpd.apache.org/dev/verification.html>`_ for more information on
@@ -23,9 +23,9 @@ as well as the asc signature file for th
 Then verify the signatures using::
 
     % gpg --import KEYS
-    % gpg --verify apache-flume-1.7.0-src.tar.gz.asc
+    % gpg --verify apache-flume-1.8.0-src.tar.gz.asc
 
-Apache Flume 1.7.0 is signed by Bessenyei Balázs Donát 35EAD82D
+Apache Flume 1.8.0 is signed by Denes Arvay 4199ACFF
 
 Alternatively, you can verify the MD5 or SHA1 signatures of the files. A program called md5, md5sum, or shasum is included in many
 Unix distributions for this purpose.

Modified: flume/site/trunk/content/sphinx/index.rst
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/index.rst?rev=1811107&r1=1811106&r2=1811107&view=diff
==============================================================================
--- flume/site/trunk/content/sphinx/index.rst (original)
+++ flume/site/trunk/content/sphinx/index.rst Wed Oct  4 16:22:29 2017
@@ -33,6 +33,72 @@ application.
 
 .. raw:: html
 
+   <h3>October 4, 2017 - Apache Flume 1.8.0 Released</h3>
+
+The Apache Flume team is pleased to announce the release of Flume 1.8.0.
+
+Flume is a distributed, reliable, and available service for efficiently
+collecting, aggregating, and moving large amounts of streaming event data.
+
+Version 1.8.0 is the eleventh Flume release as an Apache top-level project. Flume
+1.8.0 is stable, production-ready software, and is backwards-compatible with
+previous versions of the Flume 1.x codeline.
+
+Several months of active development went into this release: about 80 patches were committed since 1.7.0, representing many features, enhancements, and bug fixes. While the full change log can be found on the 1.8.0 release page (link below), here are a few new feature highlights:
+
+    * Add Interceptor to remove headers from event
+    * Provide netcat UDP source as alternative to TCP
+    * Support environment variables in configuration files
+
+Below is the list of people (from Git logs) who submitted and/or reviewed
+improvements to Flume during the 1.8.0 development cycle:
+
+* Andras Beni
+* Ashish Paliwal
+* Attila Simon
+* Ben Wheeler
+* Bessenyei Balázs Donát
+* Chris Horrocks
+* Denes Arvay
+* Ferenc Szabo
+* Gabriel Commeau
+* Hari Shreedharan
+* Jeff Holoman
+* Lior Zeno
+* Marcell Hegedus
+* Mike Percy
+* Miklos Csanady
+* Peter Ableda
+* Peter Chen
+* Ping Wang
+* Pravin D'silva
+* Robin Wang
+* Roshan Naik
+* Satoshi Iijima
+* Shang Wu
+* Siddharth Ahuja
+* Takafumi Saito
+* TeddyBear1314
+* Theodore michael Malaska
+* Tristan Stevens
+* dengkai02
+* eskrm
+* filippovmn
+* loleek
+
+The full change log and documentation are available on the
+`Flume 1.8.0 release page <releases/1.8.0.html>`__.
+
+This release can be downloaded from the Flume `Download <download.html>`__ page.
+
+Your contributions, feedback, help and support make Flume better!
+For more information on how to report problems or contribute,
+please visit our `Get Involved <getinvolved.html>`__ page.
+
+The Apache Flume Team
+
+.. raw:: html
+
    <h3>October 17, 2016 - Apache Flume 1.7.0 Released</h3>
 
 The Apache Flume team is pleased to announce the release of Flume 1.7.0.

Added: flume/site/trunk/content/sphinx/releases/1.8.0.rst
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/releases/1.8.0.rst?rev=1811107&view=auto
==============================================================================
--- flume/site/trunk/content/sphinx/releases/1.8.0.rst (added)
+++ flume/site/trunk/content/sphinx/releases/1.8.0.rst Wed Oct  4 16:22:29 2017
@@ -0,0 +1,80 @@
+===============
+Version 1.8.0
+===============
+
+.. rubric:: Status of this release
+
+Apache Flume 1.8.0 is the eleventh release of Flume as an Apache top-level project
+(TLP). Apache Flume 1.8.0 is production-ready software.
+
+.. rubric:: Release Documentation
+
+* `Flume 1.8.0 User Guide <../FlumeUserGuide.html>`__ (also in `pdf <content/1.8.0/FlumeUserGuide.pdf>`__)
+* `Flume 1.8.0 Developer Guide <../FlumeDeveloperGuide.html>`__ (also in `pdf <content/1.8.0/FlumeDeveloperGuide.pdf>`__)
+* `Flume 1.8.0 API Documentation <content/1.8.0/apidocs/index.html>`__
+
+.. rubric:: Changes
+
+Release Notes - Flume - Version v1.8.0
+
+** New Feature
+    * [`FLUME-2171 <https://issues.apache.org/jira/browse/FLUME-2171>`__] - Add Interceptor to remove headers from event
+    * [`FLUME-2917 <https://issues.apache.org/jira/browse/FLUME-2917>`__] - Provide netcat UDP source as alternative to TCP
+    * [`FLUME-2993 <https://issues.apache.org/jira/browse/FLUME-2993>`__] - Support environment variables in configuration files
+
+** Improvement
+    * [`FLUME-1520 <https://issues.apache.org/jira/browse/FLUME-1520>`__] - Timestamp interceptor should support custom headers
+    * [`FLUME-2945 <https://issues.apache.org/jira/browse/FLUME-2945>`__] - Bump java target version to 1.8
+    * [`FLUME-3020 <https://issues.apache.org/jira/browse/FLUME-3020>`__] - Improve HDFSEventSink Escape Ingestion by more then 10x by not getting InetAddress on every record
+    * [`FLUME-3025 <https://issues.apache.org/jira/browse/FLUME-3025>`__] - Expose FileChannel.open on JMX
+    * [`FLUME-3072 <https://issues.apache.org/jira/browse/FLUME-3072>`__] - Add IP address to headers in flume log4j appender
+    * [`FLUME-3092 <https://issues.apache.org/jira/browse/FLUME-3092>`__] - Extend the FileChannel's monitoring metrics
+    * [`FLUME-3100 <https://issues.apache.org/jira/browse/FLUME-3100>`__] - Support arbitrary header substitution for topic of Kafka
+    * [`FLUME-3144 <https://issues.apache.org/jira/browse/FLUME-3144>`__] - Improve Log4jAppender's performance by allowing logging collection of messages
+
+** Bug
+    * [`FLUME-2620 <https://issues.apache.org/jira/browse/FLUME-2620>`__] - File channel throws NullPointerException if a header value is null
+    * [`FLUME-2752 <https://issues.apache.org/jira/browse/FLUME-2752>`__] - Flume AvroSource will leak the memory and the OOM will be happened.
+    * [`FLUME-2812 <https://issues.apache.org/jira/browse/FLUME-2812>`__] - Exception in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.Error: Maximum permit count exceeded
+    * [`FLUME-2857 <https://issues.apache.org/jira/browse/FLUME-2857>`__] - Kafka Source/Channel/Sink does not restore default values when live update config
+    * [`FLUME-2905 <https://issues.apache.org/jira/browse/FLUME-2905>`__] - NetcatSource - Socket not closed when an exception is encountered during start() leading to file descriptor leaks
+    * [`FLUME-2991 <https://issues.apache.org/jira/browse/FLUME-2991>`__] - ExecSource command execution starts before starting the sourceCounter
+    * [`FLUME-3027 <https://issues.apache.org/jira/browse/FLUME-3027>`__] - Kafka Channel should clear offsets map after commit
+    * [`FLUME-3031 <https://issues.apache.org/jira/browse/FLUME-3031>`__] - sequence source should reset its counter for event body on channel exception
+    * [`FLUME-3043 <https://issues.apache.org/jira/browse/FLUME-3043>`__] - KafkaSink SinkCallback throws NullPointerException when Log4J level is debug
+    * [`FLUME-3046 <https://issues.apache.org/jira/browse/FLUME-3046>`__] - Kafka Sink and Source Configuration Improvements
+    * [`FLUME-3049 <https://issues.apache.org/jira/browse/FLUME-3049>`__] - Wrapping the exception into SecurityException in UGIExecutor.execute hides the original one
+    * [`FLUME-3057 <https://issues.apache.org/jira/browse/FLUME-3057>`__] - Build fails due to unsupported snappy-java version on ppc64le
+    * [`FLUME-3080 <https://issues.apache.org/jira/browse/FLUME-3080>`__] - Close failure in HDFS Sink might cause data loss
+    * [`FLUME-3083 <https://issues.apache.org/jira/browse/FLUME-3083>`__] - Taildir source can miss events if file updated in same second as file close
+    * [`FLUME-3085 <https://issues.apache.org/jira/browse/FLUME-3085>`__] - HDFS Sink can skip flushing some BucketWriters, might lead to data loss
+    * [`FLUME-3112 <https://issues.apache.org/jira/browse/FLUME-3112>`__] - Upgrade jackson-core library dependency
+    * [`FLUME-3127 <https://issues.apache.org/jira/browse/FLUME-3127>`__] - Upgrade libfb303 library dependency
+    * [`FLUME-3131 <https://issues.apache.org/jira/browse/FLUME-3131>`__] - Upgrade spring framework library dependencies
+    * [`FLUME-3132 <https://issues.apache.org/jira/browse/FLUME-3132>`__] - Upgrade tomcat jasper library dependencies
+    * [`FLUME-3135 <https://issues.apache.org/jira/browse/FLUME-3135>`__] - property logger in org.apache.flume.interceptor.RegexFilteringInterceptor confused
+    * [`FLUME-3141 <https://issues.apache.org/jira/browse/FLUME-3141>`__] - Small typo found in RegexHbaseEventSerializer.java
+    * [`FLUME-3152 <https://issues.apache.org/jira/browse/FLUME-3152>`__] - Add Flume Metric for Backup Checkpoint Errors
+    * [`FLUME-3155 <https://issues.apache.org/jira/browse/FLUME-3155>`__] - Use batch mode in mvn to fix Travis CI error
+    * [`FLUME-3157 <https://issues.apache.org/jira/browse/FLUME-3157>`__] - Refactor TestHDFSEventSinkOnMiniCluster to not use LeaseManager private API
+    * [`FLUME-3173 <https://issues.apache.org/jira/browse/FLUME-3173>`__] - Upgrade joda-time
+    * [`FLUME-3174 <https://issues.apache.org/jira/browse/FLUME-3174>`__] - HdfsSink AWS S3A authentication does not work on JDK 8
+    * [`FLUME-3175 <https://issues.apache.org/jira/browse/FLUME-3175>`__] - Javadoc generation fails due to Java8's strict doclint
+
+** Documentation
+    * [`FLUME-2175 <https://issues.apache.org/jira/browse/FLUME-2175>`__] - Update Developer Guide with notes on how to upgrade Protocol Buffer version
+    * [`FLUME-2817 <https://issues.apache.org/jira/browse/FLUME-2817>`__] - Sink for multi-agent flow example in user guide is set up incorrectly
+
+** Wish
+    * [`FLUME-2579 <https://issues.apache.org/jira/browse/FLUME-2579>`__] - JMS source support durable subscriptions and message listening
+
+** Question
+    * [`FLUME-2427 <https://issues.apache.org/jira/browse/FLUME-2427>`__] - java.lang.NoSuchMethodException and warning on HDFS (S3) sink
+
+** Task
+    * [`FLUME-3093 <https://issues.apache.org/jira/browse/FLUME-3093>`__] - Groundwork for version changes in root pom
+    * [`FLUME-3154 <https://issues.apache.org/jira/browse/FLUME-3154>`__] - Add HBase client version check to AsyncHBaseSink and HBaseSink
+
+** Test
+    * [`FLUME-2997 <https://issues.apache.org/jira/browse/FLUME-2997>`__] - Fix flaky junit test in SpillableMemoryChannel
+    * [`FLUME-3002 <https://issues.apache.org/jira/browse/FLUME-3002>`__] - Some tests in TestBucketWriter are flaky

Modified: flume/site/trunk/content/sphinx/releases/index.rst
URL: http://svn.apache.org/viewvc/flume/site/trunk/content/sphinx/releases/index.rst?rev=1811107&r1=1811106&r2=1811107&view=diff
==============================================================================
--- flume/site/trunk/content/sphinx/releases/index.rst (original)
+++ flume/site/trunk/content/sphinx/releases/index.rst Wed Oct  4 16:22:29 2017
@@ -3,13 +3,13 @@ Releases
 
 .. rubric:: Current Release
 
-The current stable release is `Apache Flume Version 1.7.0 <1.7.0.html>`__.
+The current stable release is `Apache Flume Version 1.8.0 <1.8.0.html>`__.
 
 .. toctree::
    :maxdepth: 1
    :hidden:
 
-   1.7.0
+   1.8.0
 
 .. rubric:: Previous Releases
 
@@ -17,6 +17,7 @@ The current stable release is `Apache Fl
    :maxdepth: 1
    :glob:
 
+   1.7.0
    1.6.0
    1.5.2
    1.5.0.1