You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2019/07/02 02:45:18 UTC

[kudu] branch branch-1.10.x updated: [docs] Add new Docker based quickstart page

This is an automated email from the ASF dual-hosted git repository.

granthenke pushed a commit to branch branch-1.10.x
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/branch-1.10.x by this push:
     new fd71b4c  [docs] Add new Docker based quickstart page
fd71b4c is described below

commit fd71b4c241382632d7bc47d6e071c9ff3a455b61
Author: Grant Henke <gr...@apache.org>
AuthorDate: Wed Jun 26 22:08:56 2019 -0700

    [docs] Add new Docker based quickstart page
    
    This patch adds back the quickstart page now using the
    published Docker images and `docker-compose`.
    
    Follow up improvments can add more substantial demos
    including ones that use other services and Docker images.
    
    Change-Id: I2162922ba409578c59277398c47e7362e8a9775e
    Reviewed-on: http://gerrit.cloudera.org:8080/13747
    Tested-by: Grant Henke <gr...@apache.org>
    Reviewed-by: Andrew Wong <aw...@cloudera.com>
    (cherry picked from commit c46efd29b78ddf3461886f3479d18e76a109c9b8)
    Reviewed-on: http://gerrit.cloudera.org:8080/13779
    Tested-by: Kudu Jenkins
---
 docker/quickstart.yml                           | 201 ++++++++++++++++++++++++
 docs/configuration.adoc                         |   1 +
 docs/index.adoc                                 |   1 +
 docs/quickstart.adoc                            | 190 ++++++++++++++++++++++
 docs/release_notes.adoc                         |   1 +
 docs/support/jekyll-templates/document.html.erb |   1 +
 6 files changed, 395 insertions(+)

diff --git a/docker/quickstart.yml b/docker/quickstart.yml
new file mode 100644
index 0000000..ec7d0e1
--- /dev/null
+++ b/docker/quickstart.yml
@@ -0,0 +1,201 @@
+# 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.
+version: "3"
+services:
+  kudu-master-1:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    ports:
+      - "7051:7051"
+      - "8051:8051"
+    command: ["master"]
+    volumes:
+      - kudu-master-1:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      # TODO: Use `host.docker.internal` instead of KUDU_QUICKSTART_IP when it
+      # works on Linux (https://github.com/docker/for-linux/issues/264)
+      - >
+        MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
+        --rpc_bind_addresses=0.0.0.0:7051
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP:?Please set KUDU_QUICKSTART_IP environment variable}:7051
+        --webserver_port=8051
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8051
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-master-2:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    ports:
+      - "7151:7151"
+      - "8151:8151"
+    command: ["master"]
+    volumes:
+      - kudu-master-2:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
+        --rpc_bind_addresses=0.0.0.0:7151
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7151
+        --webserver_port=8151
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8151
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-master-3:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    ports:
+      - "7251:7251"
+      - "8251:8251"
+    command: ["master"]
+    volumes:
+      - kudu-master-3:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        MASTER_ARGS=--fs_wal_dir=/var/lib/kudu/master
+        --rpc_bind_addresses=0.0.0.0:7251
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7251
+        --webserver_port=8251
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8251
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-tserver-1:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    depends_on:
+      - kudu-master-1
+      - kudu-master-2
+      - kudu-master-3
+    ports:
+      - "7050:7050"
+      - "8050:8050"
+    command: ["tserver"]
+    volumes:
+      - kudu-tserver-1:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
+        --rpc_bind_addresses=0.0.0.0:7050
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7050
+        --webserver_port=8050
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8050
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-tserver-2:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    depends_on:
+      - kudu-master-1
+      - kudu-master-2
+      - kudu-master-3
+    ports:
+      - "7150:7150"
+      - "8150:8150"
+    command: ["tserver"]
+    volumes:
+      - kudu-tserver-2:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
+        --rpc_bind_addresses=0.0.0.0:7150
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7150
+        --webserver_port=8150
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8150
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-tserver-3:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    depends_on:
+      - kudu-master-1
+      - kudu-master-2
+      - kudu-master-3
+    ports:
+      - "7250:7250"
+      - "8250:8250"
+    command: ["tserver"]
+    volumes:
+      - kudu-tserver-3:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
+        --rpc_bind_addresses=0.0.0.0:7250
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7250
+        --webserver_port=8250
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8250
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-tserver-4:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    depends_on:
+      - kudu-master-1
+      - kudu-master-2
+      - kudu-master-3
+    ports:
+      - "7350:7350"
+      - "8350:8350"
+    command: ["tserver"]
+    volumes:
+      - kudu-tserver-4:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
+        --rpc_bind_addresses=0.0.0.0:7350
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7350
+        --webserver_port=8350
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8350
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+  kudu-tserver-5:
+    image: apache/kudu:${KUDU_QUICKSTART_VERSION:-latest}
+    depends_on:
+      - kudu-master-1
+      - kudu-master-2
+      - kudu-master-3
+    ports:
+      - "7450:7450"
+      - "8450:8450"
+    command: ["tserver"]
+    volumes:
+      - kudu-tserver-5:/var/lib/kudu
+    environment:
+      - KUDU_MASTERS=kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+      - >
+        TSERVER_ARGS=--fs_wal_dir=/var/lib/kudu/tserver
+        --rpc_bind_addresses=0.0.0.0:7450
+        --rpc_advertised_addresses=${KUDU_QUICKSTART_IP}:7450
+        --webserver_port=8450
+        --webserver_advertised_addresses=${KUDU_QUICKSTART_IP}:8450
+        --webserver_doc_root=/opt/kudu/www
+        --logtostderr
+        --use_hybrid_clock=false
+volumes:
+  kudu-master-1:
+  kudu-master-2:
+  kudu-master-3:
+  kudu-tserver-1:
+  kudu-tserver-2:
+  kudu-tserver-3:
+  kudu-tserver-4:
+  kudu-tserver-5:
\ No newline at end of file
diff --git a/docs/configuration.adoc b/docs/configuration.adoc
index 77455fb..56d3ef8 100644
--- a/docs/configuration.adoc
+++ b/docs/configuration.adoc
@@ -141,4 +141,5 @@ link:configuration_reference.html#kudu-tserver_supported[Kudu Tablet Server Conf
 
 
 == Next Steps
+- link:quickstart.html[Get Started With Kudu]
 - link:developing.html[Developing Applications With Kudu]
diff --git a/docs/index.adoc b/docs/index.adoc
index 196e3e0..7a301ec 100644
--- a/docs/index.adoc
+++ b/docs/index.adoc
@@ -262,4 +262,5 @@ RDBMS, and some in files in HDFS. You can access and query all of these sources
 formats using Impala, without the need to change your legacy systems.
 
 == Next Steps
+- link:quickstart.html[Get Started With Kudu]
 - link:installation.html[Installing Kudu]
diff --git a/docs/quickstart.adoc b/docs/quickstart.adoc
new file mode 100644
index 0000000..9ccaafd
--- /dev/null
+++ b/docs/quickstart.adoc
@@ -0,0 +1,190 @@
+// 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.
+
+[[quickstart]]
+= Apache Kudu Quickstart
+:author: Kudu Team
+:imagesdir: ./images
+:icons: font
+:toc: left
+:toclevels: 2
+:doctype: book
+:backend: html5
+:sectlinks:
+:experimental:
+
+Follow these instructions to set up and run a local Kudu Cluster using Docker,
+and get started using Apache Kudu in minutes.
+
+Note: This is intended for demonstration purposes only and shouldn't
+be used for production or performance/scale testing.
+
+[[quickstart_vm]]
+
+== Install Docker
+
+Follow the Docker link:https://docs.docker.com/install/[install documentation]
+to install docker in your Linux, Mac, or Windows environment.
+
+You may also want to read through the Docker getting started guide, but that isn't a requirement.
+
+== Clone the Repository
+
+Clone the Apache Kudu repository using Git and change to the `kudu` directory:
+
+[source,bash]
+----
+$ git clone https://github.com/apache/kudu
+$ cd kudu
+----
+
+== Start the Quickstart Cluster
+
+=== Set KUDU_QUICKSTART_IP
+
+Set the `KUDU_QUICKSTART_IP` environment variable to your ip address:
+
+[source,bash]
+----
+$ export KUDU_QUICKSTART_IP=$(ifconfig | grep "inet " | grep -Fv 127.0.0.1 | cut -d" " -f2 | tail -1)
+----
+
+=== Bring up the Cluster
+
+Then use `docker-compose` to start a cluster with 3 master servers and 5 tablet servers.
+When inside the docker network/containers the master addresses will be
+`kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251` and when on the host machine
+you can specify the master addresses with `localhost:7051,localhost:7151,localhost:7251`.
+
+[source,bash]
+----
+docker-compose -f docker/quickstart.yml up
+----
+
+Note: You can include the `-d` flag to run the cluster in the background.
+
+=== View the Web-UI
+
+Once the cluster is started you can view the master web-ui by visiting link:localhost:8050[localhost:8050].
+
+=== Check the cluster health
+
+Use the command below to get a bash shell in the `kudu-master-1` container:
+
+[source,bash]
+----
+docker exec -it $(docker ps -aqf "name=kudu-master-1") /bin/bash
+----
+
+You can now run the Kudu `ksck` tool to verify the cluster is healthy:
+
+[source,bash]
+----
+kudu cluster ksck kudu-master-1:7051,kudu-master-2:7151,kudu-master-3:7251
+----
+
+Alternatively, if you have a kudu binary available on your host machine,
+you can run `ksck` there via:
+
+[source,bash]
+----
+export KUDU_USER_NAME=kudu
+kudu cluster ksck localhost:7051,localhost:7151,localhost:7251
+----
+
+Note: Setting `KUDU_USER_NAME=kudu` simplifies using Kudu from various user
+accounts in a non-secure environment.
+
+== Running an Example
+
+Now that a kudu cluster is up and running, examples and integrations can be
+run against the cluster. The commands below run the `java-example` against
+the quickstart cluster:
+
+[source,bash]
+----
+export KUDU_USER_NAME=kudu
+cd examples/java/java-example
+mvn package
+java -DkuduMasters=localhost:7051,localhost:7151,localhost:7251 -jar target/kudu-java-example-1.0-SNAPSHOT.jar
+----
+
+== Destroying the Cluster
+
+Once you are done with the quickstart cluster you can shutdown in a couple of ways.
+If you ran `docker-compose` without the `-d` flag, you can use `ctrl + c` to
+stop the cluster.
+
+If you ran `docker-compose` with the `-d` flag, you can use the following to
+gracefully shutdown the cluster:
+
+[source,bash]
+----
+docker-compose -f docker/quickstart.yml down
+----
+
+Another alternative is to stop all of the Kudu containers via:
+
+[source,bash]
+----
+docker stop $(docker ps -aqf "name=kudu")
+----
+
+If you want to remove the cluster state you can also remove the docker
+containers and volumes via:
+
+[source,bash]
+----
+docker rm $(docker ps -aqf "name=kudu")
+docker volume rm $(docker volume ls --filter name=kudu -q)
+----
+
+== Troubleshooting
+
+=== Viewing the logs
+
+To view the logs you can use the `docker logs` command. Below is an example
+that will show the logs one of the tablet servers:
+
+[source,bash]
+----
+docker logs $(docker ps -aqf "name=kudu-tserver-1")
+----
+
+=== Changing the Kudu version
+
+To change the version of Kudu Docker images used you can override the default value
+of `latest` by setting the `KUDU_QUICKSTART_VERSION` environment variable.
+
+[source,bash]
+----
+export KUDU_QUICKSTART_VERSION="1.9.0"
+----
+
+=== Changing the Kudu configuration
+
+To change the configuration flags passed to the master and tablet servers you
+can edit the `docker/quickstart.yml` file before starting the cluster.
+
+=== Killing a Kudu master
+
+Due to link:https://issues.apache.org/jira/browse/KUDU-1620[KUDU-1620] master hosts
+are always expected to be reachable.
+
+== Next Steps
+- link:installation.html[Installing Kudu]
+- link:configuration.html[Configuring Kudu]
diff --git a/docs/release_notes.adoc b/docs/release_notes.adoc
index c6fd699..565cfc6 100644
--- a/docs/release_notes.adoc
+++ b/docs/release_notes.adoc
@@ -316,6 +316,7 @@ Thank you for your help in making Kudu even better!
 For full installation details, see link:installation.html[Kudu Installation].
 
 == Next Steps
+- link:quickstart.html[Kudu Quickstart]
 - link:installation.html[Installing Kudu]
 - link:configuration.html[Configuring Kudu]
 
diff --git a/docs/support/jekyll-templates/document.html.erb b/docs/support/jekyll-templates/document.html.erb
index 5125a7f..41f1aa2 100644
--- a/docs/support/jekyll-templates/document.html.erb
+++ b/docs/support/jekyll-templates/document.html.erb
@@ -86,6 +86,7 @@ end %>
       toplevels = [
         :index, "Introducing Kudu",
         :release_notes, "Kudu Release Notes",
+        :quickstart, "Getting Started with Kudu",
         :installation, "Installation Guide",
         :configuration, "Configuring Kudu",
         :kudu_impala_integration, "Using Impala with Kudu",