// Copyright 2015 Cloudera, Inc.
//
// Licensed 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]]
= Kudu Quickstart

:author: Kudu Team
:imagesdir: ./images
:icons: font
:toc: left
:toclevels: 3
:doctype: book
:backend: html5
:sectlinks:
:experimental:

This quickstart guides you through getting, installing, and starting a three-
node Kudu cluster in CDH using Cloudera Manager, putting some data into it, and
reading some data from it, without going into details. For more in-depth information, see
link:installation.html[Kudu Installation].

[[quickstart_vm]]
== Kudu Quickstart VM
You can get started even quicker! Check out the Quickstart VM  at
https://github.com/cloudera/kudu-examples/ and start using Kudu in minutes.

== Prerequisites
* A Cloudera Manager cluster with the <<how_many_hosts,right number of hosts>>.
* Write access to the `/opt/cloudera/csd` directory on the Cloudera Manager server.

[[how_many_hosts]]
== How Many Masters?
- Currently Kudu only supports a single master.
////
Uncomment once we officially support multi-master.
- For production use, three masters are recommended. With three masters,
  Kudu can survive a single master going offline or becoming unavailable.
////

// == How Many Hosts?
// .How many masters?

== How Many Tablet Servers?
- A minimum of three tablet servers is recommended in order to support a tablet
  replication factor of three. If a single tablet server fails, the tablet
  replicas on the remaining tablet servers can continue to service read and
  write requests.
- Each additional tablet server will improve performance and throughput.

One host can run both master and tablet server processes.

== Install Kudu Using Parcels

include::installation.adoc[tags=quickstart_parcels]

[[qs_access_web_ui]]
== Access the Web UIs

In addition to the Kudu service in Cloudera Manager, each of the masters and tablet
servers exposes a Web UI. By default, the web UI binds to port `8051` for masters,
and `8050` for tablet servers, on interface
`0.0.0.0`.

From any host's Web UI, you can access the Web UIs for each other master and
tablet server, as well as logs, memory reports, and a JSON dump of metrics.
Explore the Web UIs to get an idea of what you might find.

== Load Some Data

TBD

== Retrieve Some Data

TBD

== Test Fault Tolerance

If you are using a replication factor of at least three, and at least three
tablet servers, you can stop any tablet server and the Kudu cluster will remain
available for all operations. See <<how_many_hosts>>. If too many tablet servers
disappear and a quorum cannot be achieved on any tablet, writes to that tablet
will fail.

To stop a process running in the foreground, interrupt it with Ctrl-C.
Otherwise, kill the process using operating system utilities. Monitor the log
files and the Web UIs to see what happens when a failure is detected, and what
happens when a new master or tablet server joins the cluster.

== Next Steps
- link:quickstart.html[Get Started With Kudu]
- link:installation.html[Kudu Installation Guide]
