You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by uc...@apache.org on 2016/01/25 17:46:44 UTC

flink git commit: [FLINK-3284, hotfix] [docs] Fix various broken links

Repository: flink
Updated Branches:
  refs/heads/master 440618823 -> 733847459


[FLINK-3284, hotfix] [docs] Fix various broken links


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/73384745
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/73384745
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/73384745

Branch: refs/heads/master
Commit: 733847459d1626a93ff6ed2435dc2570cd3102cb
Parents: 4406188
Author: Ufuk Celebi <uc...@apache.org>
Authored: Mon Jan 25 17:23:27 2016 +0100
Committer: Ufuk Celebi <uc...@apache.org>
Committed: Mon Jan 25 17:45:43 2016 +0100

----------------------------------------------------------------------
 docs/apis/batch/dataset_transformations.md      |   2 +-
 docs/apis/batch/hadoop_compatibility.md         |   8 +-
 docs/apis/batch/index.md                        |   3 +-
 docs/apis/batch/zip_elements_guide.md           | 111 +++++++++++++++++++
 docs/apis/filesystems.md                        |   2 +-
 docs/apis/streaming/connectors/elasticsearch.md |   2 +-
 docs/apis/streaming/connectors/hdfs.md          |   2 +-
 docs/apis/streaming/connectors/kafka.md         |   2 +-
 docs/apis/streaming/connectors/rabbitmq.md      |   2 +-
 docs/apis/streaming/connectors/twitter.md       |   2 +-
 docs/apis/streaming/fault_tolerance.md          |   2 +-
 docs/apis/streaming/index.md                    |   3 +-
 docs/apis/streaming/savepoints.md               |   6 +-
 docs/apis/streaming/state_backends.md           |   4 +-
 docs/apis/streaming/storm_compatibility.md      |  10 +-
 docs/libs/ml/index.md                           |   2 +-
 16 files changed, 136 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/batch/dataset_transformations.md
----------------------------------------------------------------------
diff --git a/docs/apis/batch/dataset_transformations.md b/docs/apis/batch/dataset_transformations.md
index 7315ec2..763de0f 100644
--- a/docs/apis/batch/dataset_transformations.md
+++ b/docs/apis/batch/dataset_transformations.md
@@ -27,7 +27,7 @@ under the License.
 -->
 
 This document gives a deep-dive into the available transformations on DataSets. For a general introduction to the
-Flink Java API, please refer to the [Programming Guide](programming_guide.html).
+Flink Java API, please refer to the [Programming Guide](index.html).
 
 For zipping elements in a data set with a dense index, please refer to the [Zip Elements Guide](zip_elements_guide.html).
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/batch/hadoop_compatibility.md
----------------------------------------------------------------------
diff --git a/docs/apis/batch/hadoop_compatibility.md b/docs/apis/batch/hadoop_compatibility.md
index 187aa6b..bb02931 100644
--- a/docs/apis/batch/hadoop_compatibility.md
+++ b/docs/apis/batch/hadoop_compatibility.md
@@ -29,9 +29,9 @@ reusing code that was implemented for Hadoop MapReduce.
 
 You can:
 
-- use Hadoop's `Writable` [data types](programming_guide.html#data-types) in Flink programs.
-- use any Hadoop `InputFormat` as a [DataSource](programming_guide.html#data-sources).
-- use any Hadoop `OutputFormat` as a [DataSink](programming_guide.html#data-sinks).
+- use Hadoop's `Writable` [data types](index.html#data-types) in Flink programs.
+- use any Hadoop `InputFormat` as a [DataSource](index.html#data-sources).
+- use any Hadoop `OutputFormat` as a [DataSink](index.html#data-sinks).
 - use a Hadoop `Mapper` as [FlatMapFunction](dataset_transformations.html#flatmap).
 - use a Hadoop `Reducer` as [GroupReduceFunction](dataset_transformations.html#groupreduce-on-grouped-dataset).
 
@@ -70,7 +70,7 @@ and Reducers.
 Flink supports all Hadoop `Writable` and `WritableComparable` data types
 out-of-the-box. You do not need to include the Hadoop Compatibility dependency,
 if you only want to use your Hadoop data types. See the
-[Programming Guide](programming_guide.html#data-types) for more details.
+[Programming Guide](index.html#data-types) for more details.
 
 ### Using Hadoop InputFormats
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/batch/index.md
----------------------------------------------------------------------
diff --git a/docs/apis/batch/index.md b/docs/apis/batch/index.md
index 2009340..6415492 100644
--- a/docs/apis/batch/index.md
+++ b/docs/apis/batch/index.md
@@ -263,8 +263,7 @@ Typically, you only need to use `getExecutionEnvironment()`, since this
 will do the right thing depending on the context: if you are executing
 your program inside an IDE or as a regular Java program it will create
 a local environment that will execute your program on your local machine. If
-you created a JAR file from your program, and invoke it through the [command line]({{ site.baseurl }}/apis/cli.html)
-or the [web interface]({{ site.baseurl }}/apis/web_client.html),
+you created a JAR file from your program, and invoke it through the [command line]({{ site.baseurl }}/apis/cli.html),
 the Flink cluster manager will execute your main method and `getExecutionEnvironment()` will return
 an execution environment for executing your program on a cluster.
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/batch/zip_elements_guide.md
----------------------------------------------------------------------
diff --git a/docs/apis/batch/zip_elements_guide.md b/docs/apis/batch/zip_elements_guide.md
new file mode 100644
index 0000000..8193c35
--- /dev/null
+++ b/docs/apis/batch/zip_elements_guide.md
@@ -0,0 +1,111 @@
+---
+title: "Zipping Elements in a DataSet"
+# Sub-level navigation
+sub-nav-group: batch
+sub-nav-parent: dataset_api
+sub-nav-pos: 2
+sub-nav-title: Zipping Elements
+---
+<!--
+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.
+-->
+
+In certain algorithms, one may need to assign unique identifiers to data set elements.
+This document shows how {% gh_link /flink-java/src/main/java/org/apache/flink/api/java/utils/DataSetUtils.java "DataSetUtils" %} can be used for that purpose.
+
+* This will be replaced by the TOC
+{:toc}
+
+### Zip with a Dense Index
+For assigning consecutive labels to the elements, the `zipWithIndex` method should be called. It receives a data set as input and returns a new data set of unique id, initial value tuples.
+For example, the following code:
+
+<div class="codetabs" markdown="1">
+<div data-lang="java" markdown="1">
+{% highlight java %}
+ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
+env.setParallelism(1);
+DataSet<String> in = env.fromElements("A", "B", "C", "D", "E", "F");
+
+DataSet<Tuple2<Long, String>> result = DataSetUtils.zipWithIndex(in);
+
+result.writeAsCsv(resultPath, "\n", ",");
+env.execute();
+{% endhighlight %}
+</div>
+
+<div data-lang="scala" markdown="1">
+{% highlight scala %}
+import org.apache.flink.api.scala._
+
+val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
+env.setParallelism(1)
+val input: DataSet[String] = env.fromElements("A", "B", "C", "D", "E", "F")
+
+val result: DataSet[(Long, String)] = input.zipWithIndex
+
+result.writeAsCsv(resultPath, "\n", ",")
+env.execute()
+{% endhighlight %}
+</div>
+
+</div>
+
+will yield the tuples: (0,A), (1,B), (2,C), (3,D), (4,E), (5,F)
+
+[Back to top](#top)
+
+### Zip with an Unique Identifier
+In many cases, one may not need to assign consecutive labels.
+`zipWIthUniqueId` works in a pipelined fashion, speeding up the label assignment process. This method receives a data set as input and returns a new data set of unique id, initial value tuples.
+For example, the following code:
+
+<div class="codetabs" markdown="1">
+<div data-lang="java" markdown="1">
+{% highlight java %}
+ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
+env.setParallelism(1);
+DataSet<String> in = env.fromElements("A", "B", "C", "D", "E", "F");
+
+DataSet<Tuple2<Long, String>> result = DataSetUtils.zipWithUniqueId(in);
+
+result.writeAsCsv(resultPath, "\n", ",");
+env.execute();
+{% endhighlight %}
+</div>
+
+<div data-lang="scala" markdown="1">
+{% highlight scala %}
+import org.apache.flink.api.scala._
+
+val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
+env.setParallelism(1)
+val input: DataSet[String] = env.fromElements("A", "B", "C", "D", "E", "F")
+
+val result: DataSet[(Long, String)] = input.zipWithUniqueId
+
+result.writeAsCsv(resultPath, "\n", ",")
+env.execute()
+{% endhighlight %}
+</div>
+
+</div>
+
+will yield the tuples: (0,A), (2,B), (4,C), (6,D), (8,E), (10,F)
+
+[Back to top](#top)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/filesystems.md
----------------------------------------------------------------------
diff --git a/docs/apis/filesystems.md b/docs/apis/filesystems.md
index e100cdd..cc071e9 100644
--- a/docs/apis/filesystems.md
+++ b/docs/apis/filesystems.md
@@ -100,7 +100,7 @@ One implementation of these `InputFormat`s is the `HadoopInputFormat`. This is a
 users to use all existing Hadoop input formats with Flink.
 
 This section shows some examples for connecting Flink to other systems.
-[Read more about Hadoop compatibility in Flink](hadoop_compatibility.html).
+[Read more about Hadoop compatibility in Flink]({{site.baseurl}}/apis/batch/hadoop_compatibility.html).
 
 ## Avro support in Flink
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/connectors/elasticsearch.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/connectors/elasticsearch.md b/docs/apis/streaming/connectors/elasticsearch.md
index 0b766cb..51d138d 100644
--- a/docs/apis/streaming/connectors/elasticsearch.md
+++ b/docs/apis/streaming/connectors/elasticsearch.md
@@ -40,7 +40,7 @@ following dependency to your project:
 
 Note that the streaming connectors are currently not part of the binary
 distribution. See
-[here](cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution)
+[here]({{site.baseurl}}/apis/cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution)
 for information about how to package the program with the libraries for
 cluster execution.
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/connectors/hdfs.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/connectors/hdfs.md b/docs/apis/streaming/connectors/hdfs.md
index 1d7c927..95ab4fd 100644
--- a/docs/apis/streaming/connectors/hdfs.md
+++ b/docs/apis/streaming/connectors/hdfs.md
@@ -40,7 +40,7 @@ following dependency to your project:
 
 Note that the streaming connectors are currently not part of the binary
 distribution. See
-[here](cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution)
+[here]({{site.baseurl}}/apis/cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution)
 for information about how to package the program with the libraries for
 cluster execution.
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/connectors/kafka.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/connectors/kafka.md b/docs/apis/streaming/connectors/kafka.md
index f0757ce..0a0313c 100644
--- a/docs/apis/streaming/connectors/kafka.md
+++ b/docs/apis/streaming/connectors/kafka.md
@@ -85,7 +85,7 @@ Then, import the connector in your maven project:
 </dependency>
 {% endhighlight %}
 
-Note that the streaming connectors are currently not part of the binary distribution. See how to link with them for cluster execution [here](cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution).
+Note that the streaming connectors are currently not part of the binary distribution. See how to link with them for cluster execution [here]({{ site.baseurl}}/apis/cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution).
 
 #### Installing Apache Kafka
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/connectors/rabbitmq.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/connectors/rabbitmq.md b/docs/apis/streaming/connectors/rabbitmq.md
index 134ec5d..8c92cf5 100644
--- a/docs/apis/streaming/connectors/rabbitmq.md
+++ b/docs/apis/streaming/connectors/rabbitmq.md
@@ -36,7 +36,7 @@ This connector provides access to data streams from [RabbitMQ](http://www.rabbit
 </dependency>
 {% endhighlight %}
 
-Note that the streaming connectors are currently not part of the binary distribution. See linking with them for cluster execution [here](cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution).
+Note that the streaming connectors are currently not part of the binary distribution. See linking with them for cluster execution [here]({{site.baseurl}}/apis/cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution).
 
 #### Installing RabbitMQ
 Follow the instructions from the [RabbitMQ download page](http://www.rabbitmq.com/download.html). After the installation the server automatically starts, and the application connecting to RabbitMQ can be launched.

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/connectors/twitter.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/connectors/twitter.md b/docs/apis/streaming/connectors/twitter.md
index 8d33e04..0d813b3 100644
--- a/docs/apis/streaming/connectors/twitter.md
+++ b/docs/apis/streaming/connectors/twitter.md
@@ -36,7 +36,7 @@ Twitter Streaming API provides opportunity to connect to the stream of tweets ma
 </dependency>
 {% endhighlight %}
 
-Note that the streaming connectors are currently not part of the binary distribution. See linking with them for cluster execution [here](cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution).
+Note that the streaming connectors are currently not part of the binary distribution. See linking with them for cluster execution [here]({{site.baseurl}}/apis/cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution).
 
 #### Authentication
 In order to connect to Twitter stream the user has to register their program and acquire the necessary information for the authentication. The process is described below.

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/fault_tolerance.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/fault_tolerance.md b/docs/apis/streaming/fault_tolerance.md
index 6b54bd9..4b91c61 100644
--- a/docs/apis/streaming/fault_tolerance.md
+++ b/docs/apis/streaming/fault_tolerance.md
@@ -39,7 +39,7 @@ Streaming Fault Tolerance (DataStream API)
 Flink has a checkpointing mechanism that recovers streaming jobs after failues. The checkpointing mechanism requires a *persistent* (or *durable*) source that
 can be asked for prior records again (Apache Kafka is a good example of such a source).
 
-The checkpointing mechanism stores the progress in the data sources and data sinks, the state of windows, as well as the user-defined state (see [Working with State]({{ site.baseurl }}/apis/streaming_guide.html#working-with-state)) consistently to provide *exactly once* processing semantics. Where the checkpoints are stored (e.g., JobManager memory, file system, database) depends on the configured [state backend]({{ site.baseurl }}/apis/state_backends.html).
+The checkpointing mechanism stores the progress in the data sources and data sinks, the state of windows, as well as the user-defined state (see [Working with State]({{ site.baseurl }}/apis/streaming_guide.html#working-with-state)) consistently to provide *exactly once* processing semantics. Where the checkpoints are stored (e.g., JobManager memory, file system, database) depends on the configured [state backend](state_backends.html).
 
 The [docs on streaming fault tolerance]({{ site.baseurl }}/internals/stream_checkpointing.html) describe in detail the technique behind Flink's streaming fault tolerance mechanism.
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/index.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/index.md b/docs/apis/streaming/index.md
index 9d2481c..e4b8424 100644
--- a/docs/apis/streaming/index.md
+++ b/docs/apis/streaming/index.md
@@ -249,8 +249,7 @@ Typically, you only need to use `getExecutionEnvironment()`, since this
 will do the right thing depending on the context: if you are executing
 your program inside an IDE or as a regular Java program it will create
 a local environment that will execute your program on your local machine. If
-you created a JAR file from your program, and invoke it through the [command line]({{ site.baseurl }}/apis/cli.html)
-or the [web interface]({{ site.baseurl }}/apis/web_client.html),
+you created a JAR file from your program, and invoke it through the [command line]({{ site.baseurl }}/apis/cli.html),
 the Flink cluster manager will execute your main method and `getExecutionEnvironment()` will return
 an execution environment for executing your program on a cluster.
 

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/savepoints.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/savepoints.md b/docs/apis/streaming/savepoints.md
index ee4155f..910f503 100644
--- a/docs/apis/streaming/savepoints.md
+++ b/docs/apis/streaming/savepoints.md
@@ -23,7 +23,7 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-Programs written in the [Data Stream API]({{ site.baseurl }}/apis/streaming_guide.html) can resume execution from a **savepoint**. Savepoints allow both updating your programs and your Flink cluster without losing any state. This page covers all steps to trigger, restore, and dispose savepoints. For more details on how Flink handles state and failures, check out the [State in Streaming Programs]({{ site.baseurl }}/apis/state_backends.html) and [Fault Tolerance]({{ site.baseurl }}/apis/fault_tolerance.html) pages.
+Programs written in the [Data Stream API](index.html) can resume execution from a **savepoint**. Savepoints allow both updating your programs and your Flink cluster without losing any state. This page covers all steps to trigger, restore, and dispose savepoints. For more details on how Flink handles state and failures, check out the [State in Streaming Programs](state_backends.html) and [Fault Tolerance](fault_tolerance.html) pages.
 
 * toc
 {:toc}
@@ -42,7 +42,7 @@ Note that **s<sub>1</sub>** is only a **pointer to the actual checkpoint data c<
 
 ## Configuration
 
-Savepoints point to regular checkpoints and store their state in a configured [state backend]({{ site.baseurl }}/apis/state_backends.html). Currently, the supported state backends are **jobmanager** and **filesystem**. The state backend configuration for the regular periodic checkpoints is **independent** of the savepoint state backend configuration. Checkpoint data is **not copied** for savepoints, but points to the configured checkpoint state backend.
+Savepoints point to regular checkpoints and store their state in a configured [state backend](state_backends.html). Currently, the supported state backends are **jobmanager** and **filesystem**. The state backend configuration for the regular periodic checkpoints is **independent** of the savepoint state backend configuration. Checkpoint data is **not copied** for savepoints, but points to the configured checkpoint state backend.
 
 ### JobManager
 
@@ -105,6 +105,6 @@ You control the savepoints via the [command line client]({{site.baseurl}}/apis/c
 
 - **Parallelism**: When restoring a savepoint, the parallelism of the program has to match the parallelism of the original program from which the savepoint was drawn. There is no mechanism to re-partition the savepoint's state yet.
 
-- **Chaining**: Chained operators are identified by the ID of the first task. It's not possible to manually assign an ID to an intermediate chained task, e.g. in the chain `[  a -> b -> c ]` only **a** can have its ID assigned manually, but not **b** or **c**. To work around this, you can [manually define the task chains](streaming_guide.html#task-chaining-and-resource-groups). If you rely on the automatic ID assignment, a change in the chaining behaviour will also change the IDs.
+- **Chaining**: Chained operators are identified by the ID of the first task. It's not possible to manually assign an ID to an intermediate chained task, e.g. in the chain `[  a -> b -> c ]` only **a** can have its ID assigned manually, but not **b** or **c**. To work around this, you can [manually define the task chains](index.html#task-chaining-and-resource-groups). If you rely on the automatic ID assignment, a change in the chaining behaviour will also change the IDs.
 
 - **Disposing custom state handles**: Disposing an old savepoint does not work with custom state handles (if you are using a custom state backend), because the user code class loader is not available during disposal.

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/state_backends.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/state_backends.md b/docs/apis/streaming/state_backends.md
index 06f9b24..2993b69 100644
--- a/docs/apis/streaming/state_backends.md
+++ b/docs/apis/streaming/state_backends.md
@@ -23,13 +23,13 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-Programs written in the [Data Stream API]({{ site.baseurl }}/apis/streaming_guide.html) often hold state in various forms:
+Programs written in the [Data Stream API](index.html) often hold state in various forms:
 
 - Windows gather elements or aggregates until they are triggered
 - Transformation functions may use the key/value state interface to store values
 - Transformation functions may implement the `Checkpointed` interface to make their local variables fault tolerant
 
-See also [Working with State]({{ site.baseurl }}/apis/streaming_guide.html#working_with_state) in the streaming API guide.
+See also [Working with State](index.html#working-with-state) in the streaming API guide.
 
 When checkpointing is activated, such state is persisted upon checkpoints to guard against data loss and recover consistently.
 How the state is represented internally, and how and where it is persisted upon checkpoints depends on the

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/apis/streaming/storm_compatibility.md
----------------------------------------------------------------------
diff --git a/docs/apis/streaming/storm_compatibility.md b/docs/apis/streaming/storm_compatibility.md
index 0ea0b01..9ac3d1f 100644
--- a/docs/apis/streaming/storm_compatibility.md
+++ b/docs/apis/streaming/storm_compatibility.md
@@ -23,7 +23,7 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-[Flink streaming](streaming_guide.html) is compatible with Apache Storm interfaces and therefore allows
+[Flink streaming](index.html) is compatible with Apache Storm interfaces and therefore allows
 reusing code that was implemented for Storm.
 
 You can:
@@ -104,7 +104,7 @@ if(runLocal) { // submit to test cluster
 As an alternative, Spouts and Bolts can be embedded into regular streaming programs.
 The Storm compatibility layer offers a wrapper classes for each, namely `SpoutWrapper` and `BoltWrapper` (`org.apache.flink.storm.wrappers`).
 
-Per default, both wrappers convert Storm output tuples to Flink's [Tuple](programming_guide.html#tuples-and-case-classes) types (ie, `Tuple0` to `Tuple25` according to the number of fields of the Storm tuples).
+Per default, both wrappers convert Storm output tuples to Flink's [Tuple]({{site.baseurl}}/apis/batch/index.html#tuples-and-case-classes) types (ie, `Tuple0` to `Tuple25` according to the number of fields of the Storm tuples).
 For single field output tuples a conversion to the field's data type is also possible (eg, `String` instead of `Tuple1<String>`).
 
 Because Flink cannot infer the output field types of Storm operators, it is required to specify the output type manually.
@@ -134,7 +134,7 @@ DataStream<String> rawInput = env.addSource(
 
 If a Spout emits a finite number of tuples, `SpoutWrapper` can be configures to terminate automatically by setting `numberOfInvocations` parameter in its constructor.
 This allows the Flink program to shut down automatically after all data is processed.
-Per default the program will run until it is [canceled](cli.html) manually.
+Per default the program will run until it is [canceled]({{site.baseurl}}/apis/cli.html) manually.
 
 
 ## Embed Bolts
@@ -165,8 +165,8 @@ DataStream<Tuple2<String, Integer>> counts = text.transform(
 Bolts can accesses input tuple fields via name (additionally to access via index).
 To use this feature with embedded Bolts, you need to have either a
 
- 1. [POJO](programming_guide.html#pojos) type input stream or
- 2. [Tuple](programming_guide.html#tuples-and-case-classes) type input stream and spedify the input schema (ie, name-to-index-mapping)
+ 1. [POJO]({{site.baseurl}}/apis/batch/index.html#pojos) type input stream or
+ 2. [Tuple]({{site.baseurl}}/apis/batch/index.html#tuples-and-case-classes) type input stream and spedify the input schema (ie, name-to-index-mapping)
 
 For POJO input types, Flink accesses the fields via reflection.
 For this case, Flink expects either a corresponding public member variable or public getter method.

http://git-wip-us.apache.org/repos/asf/flink/blob/73384745/docs/libs/ml/index.md
----------------------------------------------------------------------
diff --git a/docs/libs/ml/index.md b/docs/libs/ml/index.md
index 973c4f3..7818705 100644
--- a/docs/libs/ml/index.md
+++ b/docs/libs/ml/index.md
@@ -68,7 +68,7 @@ FlinkML currently supports the following algorithms:
 You can check out our [quickstart guide](quickstart.html) for a comprehensive getting started
 example.
 
-If you want to jump right in, you have to [set up a Flink program](http://ci.apache.org/projects/flink/flink-docs-master/apis/programming_guide.html#linking-with-flink).
+If you want to jump right in, you have to [set up a Flink program]({{ site.baseurl }}/apis/batch/index.html#linking-with-flink).
 Next, you have to add the FlinkML dependency to the `pom.xml` of your project.
 
 {% highlight xml %}