Update interfacing.asciidoc

Update interfacing.asciidoc

Interfacing Kakoune with external programs
==========================================

In order to interact with the external world, Kakoune uses the shell, mainly
through the +%sh{ ... }+ string type, and it's control socket.

Basic interaction
-----------------

For synchronous operations, +%sh{ ... }+ blocks are easy to use, they behave
similarly to +$( ... )+ shell construct.

For example, one can echo the current time in Kakoune status line using:

[source,bash]
----
:echo %sh{ date }
----

For asynchronous operations, the Kakoune Unix stream socket can be used. This
is the same socket that Kakoune clients connect to. It is available through
+kak_session+ environment variable: the socket is +/tmp/kak-${kak_session}+

For example, we can echo a message in Kakoune in 10 seconds with:

[source,bash]
----
:nop %sh{ (
    sleep 10
    echo "eval -client '$kak_client' 'echo sleep ended'" |
        kak -p ${kak_session}
) > /dev/null 2>&1 < /dev/null & }
----

 * The +nop+ command is used so that any eventual output from the
   +%sh{ ... }+ is not interpreted by Kakoune
 * When writing to the socket, Kakoune has no way to guess in which
   client's context the command should be evaluated. A temporary
   context is used, which does not have any user interface, so if we want
   to interact with the user, we need to use the +eval+ command, with
   it's +-client+ option to send commands to a specific client.
 * For the command to run asynchronously, we wrap it in a sub shell
   with parenthesis, redirect it's +std{in,err,out}+ to +/dev/null+, and
   run it in background with +&+. Using this pattern, the shell does
   not wait for this sub shell to finish before quitting.

Interactive output
------------------

It is a frequent interaction mode to run a program and display it's output
in a Kakoune buffer.

The common pattern to do that is to use a fifo buffer:

[source,bash]
-----
%sh{
     # Create a temporary fifo for communication
     output=$(mktemp -d -t kak-temp-XXXXXXXX)/fifo
     mkfifo ${output}
     # run command detached from the shell
     ( run command here > ${output} ) > /dev/null 2>&1 < /dev/null &
     # Open the file in Kakoune and add a hook to remove the fifo
     echo "edit! -fifo %{output} *buffer-name*
           hook buffer BufClose .* %{ nop %sh{ rm -r $(dirname ${output}} }"
}
-----

This is a very simple example, most of the time, the echo command will as
well contains

-----
set buffer filetype <...>
-----

and some hooks for this filetype will have been written

Completion candidates
---------------------

Most of the time, filetype specific completion should be provided by
external programs.

external completions are provided using an option to store completion, which
have the following format.

----
line.column[+len]@timestamp:candidate1[@desc1]:candidate2[@desc2]:...
----

the first element of this string list specify where and when this completions
applies, the others are simply completion candidates, eventually containing
a descriptive text (after an `@` separator).

to effectively use that completion option, it should get added to the completers
option.

---
set -add buffer completers option=my_option_name
---

As a completion program may take some time to compute the candidates, it should
run asynchronously. In order to do that, the following pattern may be used:

[source,bash]
-----
# Declare the option which will store the temporary filename
decl str plugin_filename
# Declare the completion option
decl str plugin_completions
# Add plugin_completions to completers for files of good filetype
hook global BufSetOption filetype=my_filetype %{
    set -add buff completers option=plugin_completions
}
%sh{
    # ask Kakoune to write current buffer to temporary file
    filename=$(mktemp -t kak-temp.XXXXXXXX)
    echo "set buffer plugin_filename '$filename'
          write '$filename'"
}
# End the %sh{} so that it's output gets executed by Kakoune.
# Use a nop so that any eventual output of this %sh does not get interpreted.
nop %sh{ ( # launch a detached shell
    buffer="${kak_opt_plugin_filename}"
    line="${kak_cursor_line}"
    column="${kak_cursor_column}"
    # run completer program and put output in colon separated format
    candidates=$(completer $buffer $line $column | completer_filter)
    # remove temporary file
    rm $buffer
    # generate completion option value
    completions="$line.$column@$kak_timestamp:$candidates"
    # write to Kakoune socket for the buffer that triggered the completion
    echo "set buffer=${kak_bufname} plugin_completions '$completions'" |
        kak -p ${kak_session}
) > /dev/null 2>&1 < /dev/null & }
-----

Interfacing Kakoune with external programs
==========================================

In order to interact with the external world, Kakoune uses the shell, mainly
through the +%sh{ ... }+ string type, and it's control socket.

Basic interaction
-----------------

For synchronous operations, +%sh{ ... }+ blocks are easy to use, they behave
similarly to +$( ... )+ shell construct.

For example, one can echo the current time in Kakoune status line using:

[source,bash]
----
:echo %sh{ date }
----

For asynchronous operations, the Kakoune Unix stream socket can be used. This
is the same socket that Kakoune clients connect to. It is available through
+kak_session+ environment variable: the socket is +/tmp/kak-${kak_session}+

For example, we can echo a message in Kakoune in 10 seconds with:

[source,bash]
----
:nop %sh{ (
    sleep 10
    echo "eval -client '$kak_client' 'echo sleep ended'" |
        kak -p ${kak_session}
) > /dev/null 2>&1 < /dev/null & }
----

 * The +nop+ command is used so that any eventual output from the
   +%sh{ ... }+ is not interpreted by Kakoune
 * When writing to the socket, Kakoune has no way to guess in which
   client's context the command should be evaluated. A temporary
   context is used, which does not have any user interface, so if we want
   to interact with the user, we need to use the +eval+ command, with
   it's +-client+ option to send commands to a specific client.
 * For the command to run asynchronously, we wrap it in a sub shell
   with parenthesis, redirect it's +std{in,err,out}+ to +/dev/null+, and
   run it in background with +&+. Using this pattern, the shell does
   not wait for this sub shell to finish before quitting.

Interactive output
------------------

It is a frequent interaction mode to run a program and display it's output
in a Kakoune buffer.

The common pattern to do that is to use a fifo buffer:

[source,bash]
-----
%sh{
     # Create a temporary fifo for communication
     output=$(mktemp -d -t kak-temp-XXXXXXXX)/fifo
     mkfifo ${output}
     # run command detached from the shell
     ( run command here > ${output} ) > /dev/null 2>&1 < /dev/null &
     # Open the file in Kakoune and add a hook to remove the fifo
     echo "edit! -fifo %{output} *buffer-name*
           hook buffer BufClose .* %{ nop %sh{ rm -r $(dirname ${output}} }"
}
-----

This is a very simple example, most of the time, the echo command will as
well contains

-----
set buffer filetype <...>
-----

and some hooks for this filetype will have been written

Completion candidates
---------------------

Most of the time, filetype specific completion should be provided by
external programs.

external completions are provided using the +completions+ option, which
have the following format.

----
line.column[+len]@timestamp:candidate1:candidate2:...
----

the first element of this string list specify where and when this completions
applies, the others are simply completion candidates.

As a completion program may take some time to compute the candidates, it should
run asynchronously. In order to do that, the following pattern may be used:

[source,bash]
-----
# Declare the option which will store the temporary filename
decl str plugin_filename
%sh{
    # ask Kakoune to write current buffer to temporary file
    filename=$(mktemp -t kak-temp.XXXXXXXX)
    echo "set buffer plugin_filename '$filename'
          write '$filename'"
}
# End the %sh{} so that it's output gets executed by Kakoune.
# Use a nop so that any eventual output of this %sh does not get interpreted.
nop %sh{ ( # launch a detached shell
    buffer="${kak_opt_plugin_filename}"
    line="${kak_cursor_line}"
    column="${kak_cursor_column}"
    # run completer program and put output in colon separated format
    candidates=$(completer $buffer $line $column | completer_filter)
    # remove temporary file
    rm $buffer
    # generate completion option value
    completions="$line.$column@$kak_timestamp:$candidates"
    # write to Kakoune socket for the buffer that triggered the completion
    echo "set buffer=${kak_bufname} completions '$completions'" |
        kak -p ${kak_session}
) > /dev/null 2>&1 < /dev/null & }
-----


docs: add notes for multi master migration

Change-Id: I7e469bc23b650f3b99c785311acc665ac20f33ea
Reviewed-on: http://gerrit.cloudera.org:8080/5728
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo <866ca730bfc7f544e3ebce604ceeba4879f23df0@cloudera.com>

// 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.

[[administration]]
= Apache Kudu Administration

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

NOTE: Kudu is easier to manage with link:http://www.cloudera.com/content/www/en-us/products/cloudera-manager.html[Cloudera Manager]
than in a standalone installation. See Cloudera's
link:http://www.cloudera.com/content/www/en-us/documentation/betas/kudu/latest/topics/kudu_installation.html[Kudu documentation]
for more details about using Kudu with Cloudera Manager.

== Starting and Stopping Kudu Processes

NOTE: These instructions are relevant only when Kudu is installed using operating system packages
(e.g. `rpm` or `deb`).

include::installation.adoc[tags=start_stop]

== Kudu Web Interfaces

Kudu tablet servers and masters expose useful operational information on a built-in web interface,

=== Kudu Master Web Interface

Kudu master processes serve their web interface on port 8051. The interface exposes several pages
with information about the cluster state:

- A list of tablet servers, their host names, and the time of their last heartbeat.
- A list of tables, including schema and tablet location information for each.
- SQL code which you can paste into Impala Shell to add an existing table to Impala's list of known data sources.

=== Kudu Tablet Server Web Interface

Each tablet server serves a web interface on port 8050. The interface exposes information
about each tablet hosted on the server, its current state, and debugging information
about maintenance background operations.

=== Common Web Interface Pages

Both Kudu masters and tablet servers expose a common set of information via their web interfaces:

- HTTP access to server logs.
- an `/rpcz` endpoint which lists currently running RPCs via JSON.
- pages giving an overview and detailed information on the memory usage of different
  components of the process.
- information on the current set of configuration flags.
- information on the currently running threads and their resource consumption.
- a JSON endpoint exposing metrics about the server.
- information on the deployed version number of the daemon.

These interfaces are linked from the landing page of each daemon's web UI.

== Kudu Metrics

Kudu daemons expose a large number of metrics. Some metrics are associated with an entire
server process, whereas others are associated with a particular tablet replica.

=== Listing available metrics

The full set of available metrics for a Kudu server can be dumped via a special command
line flag:

[source,bash]
----
$ kudu-tserver --dump_metrics_json
$ kudu-master --dump_metrics_json
----

This will output a large JSON document. Each metric indicates its name, label, description,
units, and type. Because the output is JSON-formatted, this information can easily be
parsed and fed into other tooling which collects metrics from Kudu servers.

=== Collecting metrics via HTTP

Metrics can be collected from a server process via its HTTP interface by visiting
`/metrics`. The output of this page is JSON for easy parsing by monitoring services.
This endpoint accepts several `GET` parameters in its query string:

- `/metrics?metrics=<substring1>,<substring2>,...` - limits the returned metrics to those which contain
at least one of the provided substrings. The substrings also match entity names, so this
may be used to collect metrics for a specific tablet.

- `/metrics?include_schema=1` - includes metrics schema information such as unit, description,
and label in the JSON output. This information is typically elided to save space.

- `/metrics?compact=1` - eliminates unnecessary whitespace from the resulting JSON, which can decrease
bandwidth when fetching this page from a remote host.

- `/metrics?include_raw_histograms=1` - include the raw buckets and values for histogram metrics,
enabling accurate aggregation of percentile metrics over time and across hosts.

For example:

[source,bash]
----
$ curl -s 'http://example-ts:8050/metrics?include_schema=1&metrics=connections_accepted'
----

[source,json]
----
[
    {
        "type": "server",
        "id": "kudu.tabletserver",
        "attributes": {},
        "metrics": [
            {
                "name": "rpc_connections_accepted",
                "label": "RPC Connections Accepted",
                "type": "counter",
                "unit": "connections",
                "description": "Number of incoming TCP connections made to the RPC server",
                "value": 92
            }
        ]
    }
]
----

[source,bash]
----
$ curl -s 'http://example-ts:8050/metrics?metrics=log_append_latency'
----

[source,json]
----
[
    {
        "type": "tablet",
        "id": "c0ebf9fef1b847e2a83c7bd35c2056b1",
        "attributes": {
            "table_name": "lineitem",
            "partition": "hash buckets: (55), range: [(<start>), (<end>))",
            "table_id": ""
        },
        "metrics": [
            {
                "name": "log_append_latency",
                "total_count": 7498,
                "min": 4,
                "mean": 69.3649,
                "percentile_75": 29,
                "percentile_95": 38,
                "percentile_99": 45,
                "percentile_99_9": 95,
                "percentile_99_99": 167,
                "max": 367244,
                "total_sum": 520098
            }
        ]
    }
]
----

NOTE: All histograms and counters are measured since the server start time, and are not reset upon collection.

=== Collecting metrics to a log

Kudu may be configured to periodically dump all of its metrics to a local log file using the
`--metrics_log_interval_ms` flag. Set this flag to the interval at which metrics should be written
to a log file.

The metrics log will be written to the same directory as the other Kudu log files, with the same
naming format. After any metrics log file reaches 64MB uncompressed, the log will be rolled and
the previous file will be gzip-compressed.

The log file generated has three space-separated fields. The first field is the word
`metrics`. The second field is the current timestamp in microseconds since the Unix epoch.
The third is the current value of all metrics on the server, using a compact JSON encoding.
The encoding is the same as the metrics fetched via HTTP described above.

WARNING: Although metrics logging automatically rolls and compresses previous log files, it does
not remove old ones. Since metrics logging can use significant amounts of disk space,
consider setting up a system utility to monitor space in the log directory and archive or
delete old segments.

== Common Kudu workflows

[[migrate_to_multi_master]]
=== Migrating to Multiple Kudu Masters

For high availability and to avoid a single point of failure, Kudu clusters should be created with
multiple masters. Many Kudu clusters were created with just a single master, either for simplicity
or because Kudu multi-master support was still experimental at the time. This workflow demonstrates
how to migrate to a multi-master configuration.

WARNING: The workflow is unsafe for adding new masters to an existing multi-master configuration.
Do not use it for that purpose.

WARNING: The workflow presupposes at least basic familiarity with Kudu configuration management. If
using Cloudera Manager (CM), the workflow also presupposes familiarity with it.

WARNING: All of the command line steps below should be executed as the Kudu UNIX user, typically
`kudu`.

==== Prepare for the migration

. Establish a maintenance window (one hour should be sufficient). During this time the Kudu cluster
  will be unavailable.

. Decide how many masters to use. The number of masters should be odd. Three or five node master
  configurations are recommendeded; they can tolerate one or two failures respectively.

. Perform the following preparatory steps for the existing master:
* Identify and record the directory where the master's data lives. If using Kudu system packages,
  the default value is /var/lib/kudu/master, but it may be customized via the `fs_wal_dir` and
  `fs_data_dirs` configuration parameter. Please note if you've set fs_data_dirs to some directories
  other than the value of fs_wal_dir, it should be explicitly included in every command below where
  fs_wal_dir is also included.
* Identify and record the port the master is using for RPCs. The default port value is 7051, but it
  may have been customized using the `rpc_bind_addresses` configuration parameter.
* Identify the master's UUID. It can be fetched using the following command:
+
[source,bash]
----
$ kudu fs dump uuid --fs_wal_dir=<master_data_dir> 2>/dev/null
----
master_data_dir:: existing master's previously recorded data directory
+
[source,bash]
Example::
+
----
$ kudu fs dump uuid --fs_wal_dir=/var/lib/kudu/master 2>/dev/null
4aab798a69e94fab8d77069edff28ce0
----
+
* Optional: configure a DNS alias for the master. The alias could be a DNS cname (if the machine
  already has an A record in DNS), an A record (if the machine is only known by its IP address),
  or an alias in /etc/hosts. The alias should be an abstract representation of the master (e.g.
  `master-1`).
+
WARNING: Without DNS aliases it is not possible to recover from permanent master failures, and as
such it is highly recommended.
+
. Perform the following preparatory steps for each new master:
* Choose an unused machine in the cluster. The master generates very little load so it can be
  colocated with other data services or load-generating processes, though not with another Kudu
  master from the same configuration.
* Ensure Kudu is installed on the machine, either via system packages (in which case the `kudu` and
  `kudu-master` packages should be installed), or via some other means.
* Choose and record the directory where the master's data will live.
* Choose and record the port the master should use for RPCs.
* Optional: configure a DNS alias for the master (e.g. `master-2`, `master-3`, etc).

==== Perform the migration

. Stop all the Kudu processes in the entire cluster.

. Format the data directory on each new master machine, and record the generated UUID. Use the
  following command sequence:
+
[source,bash]
----
$ kudu fs format --fs_wal_dir=<master_data_dir>
$ kudu fs dump uuid --fs_wal_dir=<master_data_dir> 2>/dev/null
----
+
master_data_dir:: new master's previously recorded data directory
+
[source,bash]
Example::
+
----
$ kudu fs format --fs_wal_dir=/var/lib/kudu/master
$ kudu fs dump uuid --fs_wal_dir=/var/lib/kudu/master 2>/dev/null
f5624e05f40649b79a757629a69d061e
----

. If using CM, add the new Kudu master roles now, but do not start them.
* If using DNS aliases, override the empty value of the `Master Address` parameter for each role
  (including the existing master role) with that master's alias.
* Add the port number (separated by a colon) if using a non-default RPC port value.

. Rewrite the master's Raft configuration with the following command, executed on the existing
  master machine:
+
[source,bash]
----
$ kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=<master_data_dir> <tablet_id> <all_masters>
----
+
master_data_dir:: existing master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
all_masters:: space-separated list of masters, both new and existing. Each entry in the list must be
  a string of the form `<uuid>:<hostname>:<port>`
uuid::: master's previously recorded UUID
hostname::: master's previously recorded hostname or alias
port::: master's previously recorded RPC port number
+
[source,bash]
Example::
+
----
$ kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 4aab798a69e94fab8d77069edff28ce0:master-1:7051 f5624e05f40649b79a757629a69d061e:master-2:7051 988d8ac6530f426cbe180be5ba52033d:master-3:7051
----

. Modify the value of the `master_addresses` configuration parameter for both existing master and new masters.
  The new value must be a comma-separated list of all of the masters. Each entry is a string of the form `<hostname>:<port>`
hostname:: master's previously recorded hostname or alias
port:: master's previously recorded RPC port number

. Start the existing master.

. Copy the master data to each new master with the following command, executed on each new master
  machine:
+
[source,bash]
----
$ kudu local_replica copy_from_remote --fs_wal_dir=<master_data_dir> <tablet_id> <existing_master>
----
+
master_data_dir:: new master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
existing_master:: RPC address of the existing master and must be a string of the form
`<hostname>:<port>`
hostname::: existing master's previously recorded hostname or alias
port::: existing master's previously recorded RPC port number
+
[source,bash]
Example::
+
----
$ kudu local_replica copy_from_remote --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 master-1:7051
----

. Start all of the new masters.
+
WARNING: Skip the next step if using CM.
+
. Modify the value of the `tserver_master_addrs` configuration parameter for each tablet server.
  The new value must be a comma-separated list of masters where each entry is a string of the form
  `<hostname>:<port>`
hostname:: master's previously recorded hostname or alias
port:: master's previously recorded RPC port number

. Start all of the tablet servers.

Congratulations, the cluster has now been migrated to multiple masters! To verify that all masters
are working properly, consider performing the following sanity checks:

* Using a browser, visit each master's web UI. Look at the /masters page. All of the masters should
  be listed there with one master in the LEADER role and the others in the FOLLOWER role. The
  contents of /masters on each master should be the same.

* Run a Kudu system check (ksck) on the cluster using the `kudu` command line tool. Help for ksck
  can be viewed via `kudu cluster ksck --help`.

=== Recovering from a dead Kudu Master in a Multi-Master Deployment

Kudu multi-master deployments function normally in the event of a master loss. However, it is
important to replace the dead master; otherwise a second failure may lead to a loss of availability,
depending on the number of available masters. This workflow describes how to replace the dead
master.

Due to https://issues.apache.org/jira/browse/KUDU-1620[KUDU-1620], it is not possible to perform
this workflow without also restarting the live masters. As such, the workflow requires a
maintenance window, albeit a brief one as masters generally restart quickly.

WARNING: Kudu does not yet support Raft configuration changes for masters. As such, it is only
possible to replace a master if the deployment was created with DNS aliases. See the
<<migrate_to_multi_master,multi-master migration workflow>> for more details.

WARNING: The workflow presupposes at least basic familiarity with Kudu configuration management. If
using Cloudera Manager (CM), the workflow also presupposes familiarity with it.

WARNING: All of the command line steps below should be executed as the Kudu UNIX user, typically
`kudu`.

==== Prepare for the recovery

. Ensure that the dead master is well and truly dead. Take whatever steps needed to prevent it from
  accidentally restarting; this can be quite dangerous for the cluster post-recovery.

. Choose one of the remaining live masters to serve as a basis for recovery. The rest of this
  workflow will refer to this master as the "reference" master.

. Choose an unused machine in the cluster where the new master will live. The master generates very
  little load so it can be colocated with other data services or load-generating processes, though
  not with another Kudu master from the same configuration. The rest of this workflow will refer to
  this master as the "replacement" master.

. Perform the following preparatory steps for the replacement master:
* Ensure Kudu is installed on the machine, either via system packages (in which case the `kudu` and
  `kudu-master` packages should be installed), or via some other means.
* Choose and record the directory where the master's data will live.

. Perform the following preparatory steps for each live master:
* Identify and record the directory where the master's data lives. If using Kudu system packages,
  the default value is /var/lib/kudu/master, but it may be customized via the `fs_wal_dir` and
  `fs_data_dirs` configuration parameter. Please note if you've set fs_data_dirs to some directories
  other than the value of fs_wal_dir, it should be explicitly included in every command below where
  fs_wal_dir is also included.
* Identify and record the master's UUID. It can be fetched using the following command:
+
[source,bash]
----
$ kudu fs dump uuid --fs_wal_dir=<master_data_dir> 2>/dev/null
----
master_data_dir:: live master's previously recorded data directory
+
[source,bash]
Example::
+
----
$ kudu fs dump uuid --fs_wal_dir=/var/lib/kudu/master 2>/dev/null
80a82c4b8a9f4c819bab744927ad765c
----
+
. Perform the following preparatory steps for the reference master:
* Identify and record the directory where the master's data lives. If using Kudu system packages,
  the default value is /var/lib/kudu/master, but it may be customized via the `fs_wal_dir` and
  `fs_data_dirs` configuration parameter. Please note if you've set fs_data_dirs to some directories
  other than the value of fs_wal_dir, it should be explicitly included in every command below where
  fs_wal_dir is also included.
* Identify and record the UUIDs of every master in the cluster, using the following command:
+
[source,bash]
----
$ kudu local_replica cmeta print_replica_uuids --fs_wal_dir=<master_data_dir> <tablet_id> 2>/dev/null
----
master_data_dir:: reference master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
+
[source,bash]
Example::
+
----
$ kudu local_replica cmeta print_replica_uuids --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 2>/dev/null
80a82c4b8a9f4c819bab744927ad765c 2a73eeee5d47413981d9a1c637cce170 1c3f3094256347528d02ec107466aef3
----
+
. Using the two previously-recorded lists of UUIDs (one for all live masters and one for all
  masters), determine and record (by process of elimination) the UUID of the dead master.

==== Perform the recovery

. Format the data directory on the replacement master machine using the previously recorded
  UUID of the dead master. Use the following command sequence:
+
[source,bash]
----
$ kudu fs format --fs_wal_dir=<master_data_dir> --uuid=<uuid>
----
+
master_data_dir:: replacement master's previously recorded data directory
uuid:: dead master's previously recorded UUID
+
[source,bash]
Example::
+
----
$ kudu fs format --fs_wal_dir=/var/lib/kudu/master --uuid=80a82c4b8a9f4c819bab744927ad765c
----
+
. Copy the master data to the replacement master with the following command:
+
[source,bash]
----
$ kudu local_replica copy_from_remote --fs_wal_dir=<master_data_dir> <tablet_id> <reference_master>
----
+
master_data_dir:: replacement master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
reference_master:: RPC address of the reference master and must be a string of the form
`<hostname>:<port>`
hostname::: reference master's previously recorded hostname or alias
port::: reference master's previously recorded RPC port number
+
[source,bash]
Example::
+
----
$ kudu local_replica copy_from_remote --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 master-2:7051
----
+
. If using CM, add the replacement Kudu master role now, but do not start it.
* Override the empty value of the `Master Address` parameter for the new role with the replacement
  master's alias.
* Add the port number (separated by a colon) if using a non-default RPC port value.

. Reconfigure the DNS alias for the dead master to point at the replacement master.

. Start the replacement master.

. Restart the existing live masters. This results in a brief availability outage, but it should
  last only as long as it takes for the masters to come back up.

Congratulations, the dead master has been replaced! To verify that all masters are working properly,
consider performing the following sanity checks:

* Using a browser, visit each master's web UI. Look at the /masters page. All of the masters should
  be listed there with one master in the LEADER role and the others in the FOLLOWER role. The
  contents of /masters on each master should be the same.

* Run a Kudu system check (ksck) on the cluster using the `kudu` command line tool. Help for ksck
  can be viewed via `kudu cluster ksck --help`.

// 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.

[[administration]]
= Apache Kudu Administration

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

NOTE: Kudu is easier to manage with link:http://www.cloudera.com/content/www/en-us/products/cloudera-manager.html[Cloudera Manager]
than in a standalone installation. See Cloudera's
link:http://www.cloudera.com/content/www/en-us/documentation/betas/kudu/latest/topics/kudu_installation.html[Kudu documentation]
for more details about using Kudu with Cloudera Manager.

== Starting and Stopping Kudu Processes

NOTE: These instructions are relevant only when Kudu is installed using operating system packages
(e.g. `rpm` or `deb`).

include::installation.adoc[tags=start_stop]

== Kudu Web Interfaces

Kudu tablet servers and masters expose useful operational information on a built-in web interface,

=== Kudu Master Web Interface

Kudu master processes serve their web interface on port 8051. The interface exposes several pages
with information about the cluster state:

- A list of tablet servers, their host names, and the time of their last heartbeat.
- A list of tables, including schema and tablet location information for each.
- SQL code which you can paste into Impala Shell to add an existing table to Impala's list of known data sources.

=== Kudu Tablet Server Web Interface

Each tablet server serves a web interface on port 8050. The interface exposes information
about each tablet hosted on the server, its current state, and debugging information
about maintenance background operations.

=== Common Web Interface Pages

Both Kudu masters and tablet servers expose a common set of information via their web interfaces:

- HTTP access to server logs.
- an `/rpcz` endpoint which lists currently running RPCs via JSON.
- pages giving an overview and detailed information on the memory usage of different
  components of the process.
- information on the current set of configuration flags.
- information on the currently running threads and their resource consumption.
- a JSON endpoint exposing metrics about the server.
- information on the deployed version number of the daemon.

These interfaces are linked from the landing page of each daemon's web UI.

== Kudu Metrics

Kudu daemons expose a large number of metrics. Some metrics are associated with an entire
server process, whereas others are associated with a particular tablet replica.

=== Listing available metrics

The full set of available metrics for a Kudu server can be dumped via a special command
line flag:

[source,bash]
----
$ kudu-tserver --dump_metrics_json
$ kudu-master --dump_metrics_json
----

This will output a large JSON document. Each metric indicates its name, label, description,
units, and type. Because the output is JSON-formatted, this information can easily be
parsed and fed into other tooling which collects metrics from Kudu servers.

=== Collecting metrics via HTTP

Metrics can be collected from a server process via its HTTP interface by visiting
`/metrics`. The output of this page is JSON for easy parsing by monitoring services.
This endpoint accepts several `GET` parameters in its query string:

- `/metrics?metrics=<substring1>,<substring2>,...` - limits the returned metrics to those which contain
at least one of the provided substrings. The substrings also match entity names, so this
may be used to collect metrics for a specific tablet.

- `/metrics?include_schema=1` - includes metrics schema information such as unit, description,
and label in the JSON output. This information is typically elided to save space.

- `/metrics?compact=1` - eliminates unnecessary whitespace from the resulting JSON, which can decrease
bandwidth when fetching this page from a remote host.

- `/metrics?include_raw_histograms=1` - include the raw buckets and values for histogram metrics,
enabling accurate aggregation of percentile metrics over time and across hosts.

For example:

[source,bash]
----
$ curl -s 'http://example-ts:8050/metrics?include_schema=1&metrics=connections_accepted'
----

[source,json]
----
[
    {
        "type": "server",
        "id": "kudu.tabletserver",
        "attributes": {},
        "metrics": [
            {
                "name": "rpc_connections_accepted",
                "label": "RPC Connections Accepted",
                "type": "counter",
                "unit": "connections",
                "description": "Number of incoming TCP connections made to the RPC server",
                "value": 92
            }
        ]
    }
]
----

[source,bash]
----
$ curl -s 'http://example-ts:8050/metrics?metrics=log_append_latency'
----

[source,json]
----
[
    {
        "type": "tablet",
        "id": "c0ebf9fef1b847e2a83c7bd35c2056b1",
        "attributes": {
            "table_name": "lineitem",
            "partition": "hash buckets: (55), range: [(<start>), (<end>))",
            "table_id": ""
        },
        "metrics": [
            {
                "name": "log_append_latency",
                "total_count": 7498,
                "min": 4,
                "mean": 69.3649,
                "percentile_75": 29,
                "percentile_95": 38,
                "percentile_99": 45,
                "percentile_99_9": 95,
                "percentile_99_99": 167,
                "max": 367244,
                "total_sum": 520098
            }
        ]
    }
]
----

NOTE: All histograms and counters are measured since the server start time, and are not reset upon collection.

=== Collecting metrics to a log

Kudu may be configured to periodically dump all of its metrics to a local log file using the
`--metrics_log_interval_ms` flag. Set this flag to the interval at which metrics should be written
to a log file.

The metrics log will be written to the same directory as the other Kudu log files, with the same
naming format. After any metrics log file reaches 64MB uncompressed, the log will be rolled and
the previous file will be gzip-compressed.

The log file generated has three space-separated fields. The first field is the word
`metrics`. The second field is the current timestamp in microseconds since the Unix epoch.
The third is the current value of all metrics on the server, using a compact JSON encoding.
The encoding is the same as the metrics fetched via HTTP described above.

WARNING: Although metrics logging automatically rolls and compresses previous log files, it does
not remove old ones. Since metrics logging can use significant amounts of disk space,
consider setting up a system utility to monitor space in the log directory and archive or
delete old segments.

== Common Kudu workflows

[[migrate_to_multi_master]]
=== Migrating to Multiple Kudu Masters

For high availability and to avoid a single point of failure, Kudu clusters should be created with
multiple masters. Many Kudu clusters were created with just a single master, either for simplicity
or because Kudu multi-master support was still experimental at the time. This workflow demonstrates
how to migrate to a multi-master configuration.

WARNING: The workflow is unsafe for adding new masters to an existing multi-master configuration.
Do not use it for that purpose.

WARNING: The workflow presupposes at least basic familiarity with Kudu configuration management. If
using Cloudera Manager (CM), the workflow also presupposes familiarity with it.

WARNING: All of the command line steps below should be executed as the Kudu UNIX user, typically
`kudu`.

==== Prepare for the migration

. Establish a maintenance window (one hour should be sufficient). During this time the Kudu cluster
  will be unavailable.

. Decide how many masters to use. The number of masters should be odd. Three or five node master
  configurations are recommendeded; they can tolerate one or two failures respectively.

. Perform the following preparatory steps for the existing master:
* Identify and record the directory where the master's data lives. If using Kudu system packages,
  the default value is /var/lib/kudu/master, but it may be customized via the `fs_wal_dir`
  configuration parameter.
* Identify and record the port the master is using for RPCs. The default port value is 7051, but it
  may have been customized using the `rpc_bind_addresses` configuration parameter.
* Identify the master's UUID. It can be fetched using the following command:
+
[source,bash]
----
$ kudu fs dump uuid --fs_wal_dir=<master_data_dir> 2>/dev/null
----
master_data_dir:: existing master's previously recorded data directory
+
[source,bash]
Example::
+
----
$ kudu fs dump uuid --fs_wal_dir=/var/lib/kudu/master 2>/dev/null
4aab798a69e94fab8d77069edff28ce0
----
+
* Optional: configure a DNS alias for the master. The alias could be a DNS cname (if the machine
  already has an A record in DNS), an A record (if the machine is only known by its IP address),
  or an alias in /etc/hosts. The alias should be an abstract representation of the master (e.g.
  `master-1`).
+
WARNING: Without DNS aliases it is not possible to recover from permanent master failures, and as
such it is highly recommended.
+
. Perform the following preparatory steps for each new master:
* Choose an unused machine in the cluster. The master generates very little load so it can be
  colocated with other data services or load-generating processes, though not with another Kudu
  master from the same configuration.
* Ensure Kudu is installed on the machine, either via system packages (in which case the `kudu` and
  `kudu-master` packages should be installed), or via some other means.
* Choose and record the directory where the master's data will live.
* Choose and record the port the master should use for RPCs.
* Optional: configure a DNS alias for the master (e.g. `master-2`, `master-3`, etc).

==== Perform the migration

. Stop all the Kudu processes in the entire cluster.

. Format the data directory on each new master machine, and record the generated UUID. Use the
  following command sequence:
+
[source,bash]
----
$ kudu fs format --fs_wal_dir=<master_data_dir>
$ kudu fs dump uuid --fs_wal_dir=<master_data_dir> 2>/dev/null
----
+
master_data_dir:: new master's previously recorded data directory
+
[source,bash]
Example::
+
----
$ kudu fs format --fs_wal_dir=/var/lib/kudu/master
$ kudu fs dump uuid --fs_wal_dir=/var/lib/kudu/master 2>/dev/null
f5624e05f40649b79a757629a69d061e
----

. If using CM, add the new Kudu master roles now, but do not start them.
* If using DNS aliases, override the empty value of the `Master Address` parameter for each role
  (including the existing master role) with that master's alias.
* Add the port number (separated by a colon) if using a non-default RPC port value.

. Rewrite the master's Raft configuration with the following command, executed on the existing
  master machine:
+
[source,bash]
----
$ kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=<master_data_dir> <tablet_id> <all_masters>
----
+
master_data_dir:: existing master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
all_masters:: space-separated list of masters, both new and existing. Each entry in the list must be
  a string of the form `<uuid>:<hostname>:<port>`
uuid::: master's previously recorded UUID
hostname::: master's previously recorded hostname or alias
port::: master's previously recorded RPC port number
+
[source,bash]
Example::
+
----
$ kudu local_replica cmeta rewrite_raft_config --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 4aab798a69e94fab8d77069edff28ce0:master-1:7051 f5624e05f40649b79a757629a69d061e:master-2:7051 988d8ac6530f426cbe180be5ba52033d:master-3:7051
----

. Start the existing master.

. Copy the master data to each new master with the following command, executed on each new master
  machine:
+
[source,bash]
----
$ kudu local_replica copy_from_remote --fs_wal_dir=<master_data_dir> <tablet_id> <existing_master>
----
+
master_data_dir:: new master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
existing_master:: RPC address of the existing master and must be a string of the form
`<hostname>:<port>`
hostname::: existing master's previously recorded hostname or alias
port::: existing master's previously recorded RPC port number
+
[source,bash]
Example::
+
----
$ kudu local_replica copy_from_remote --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 master-1:7051
----

. Start all of the new masters.
+
WARNING: Skip the next step if using CM.
+
. Modify the value of the `tserver_master_addrs` configuration parameter for each tablet server.
  The new value must be a comma-separated list of masters where each entry is a string of the form
  `<hostname>:<port>`
hostname:: master's previously recorded hostname or alias
port:: master's previously recorded RPC port number

. Start all of the tablet servers.

Congratulations, the cluster has now been migrated to multiple masters! To verify that all masters
are working properly, consider performing the following sanity checks:

* Using a browser, visit each master's web UI. Look at the /masters page. All of the masters should
  be listed there with one master in the LEADER role and the others in the FOLLOWER role. The
  contents of /masters on each master should be the same.

* Run a Kudu system check (ksck) on the cluster using the `kudu` command line tool. Help for ksck
  can be viewed via `kudu cluster ksck --help`.

=== Recovering from a dead Kudu Master in a Multi-Master Deployment

Kudu multi-master deployments function normally in the event of a master loss. However, it is
important to replace the dead master; otherwise a second failure may lead to a loss of availability,
depending on the number of available masters. This workflow describes how to replace the dead
master.

Due to https://issues.apache.org/jira/browse/KUDU-1620[KUDU-1620], it is not possible to perform
this workflow without also restarting the live masters. As such, the workflow requires a
maintenance window, albeit a brief one as masters generally restart quickly.

WARNING: Kudu does not yet support Raft configuration changes for masters. As such, it is only
possible to replace a master if the deployment was created with DNS aliases. See the
<<migrate_to_multi_master,multi-master migration workflow>> for more details.

WARNING: The workflow presupposes at least basic familiarity with Kudu configuration management. If
using Cloudera Manager (CM), the workflow also presupposes familiarity with it.

WARNING: All of the command line steps below should be executed as the Kudu UNIX user, typically
`kudu`.

==== Prepare for the recovery

. Ensure that the dead master is well and truly dead. Take whatever steps needed to prevent it from
  accidentally restarting; this can be quite dangerous for the cluster post-recovery.

. Choose one of the remaining live masters to serve as a basis for recovery. The rest of this
  workflow will refer to this master as the "reference" master.

. Choose an unused machine in the cluster where the new master will live. The master generates very
  little load so it can be colocated with other data services or load-generating processes, though
  not with another Kudu master from the same configuration. The rest of this workflow will refer to
  this master as the "replacement" master.

. Perform the following preparatory steps for the replacement master:
* Ensure Kudu is installed on the machine, either via system packages (in which case the `kudu` and
  `kudu-master` packages should be installed), or via some other means.
* Choose and record the directory where the master's data will live.

. Perform the following preparatory steps for each live master:
* Identify and record the directory where the master's data lives. If using Kudu system packages,
  the default value is /var/lib/kudu/master, but it may be customized via the `fs_wal_dir`
  configuration parameter.
* Identify and record the master's UUID. It can be fetched using the following command:
+
[source,bash]
----
$ kudu fs dump uuid --fs_wal_dir=<master_data_dir> 2>/dev/null
----
master_data_dir:: live master's previously recorded data directory
+
[source,bash]
Example::
+
----
$ kudu fs dump uuid --fs_wal_dir=/var/lib/kudu/master 2>/dev/null
80a82c4b8a9f4c819bab744927ad765c
----
+
. Perform the following preparatory steps for the reference master:
* Identify and record the directory where the master's data lives. If using Kudu system packages,
  the default value is /var/lib/kudu/master, but it may be customized via the `fs_wal_dir`
  configuration parameter.
* Identify and record the UUIDs of every master in the cluster, using the following command:
+
[source,bash]
----
$ kudu local_replica cmeta print_replica_uuids --fs_wal_dir=<master_data_dir> <tablet_id> 2>/dev/null
----
master_data_dir:: reference master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
+
[source,bash]
Example::
+
----
$ kudu local_replica cmeta print_replica_uuids --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 2>/dev/null
80a82c4b8a9f4c819bab744927ad765c 2a73eeee5d47413981d9a1c637cce170 1c3f3094256347528d02ec107466aef3
----
+
. Using the two previously-recorded lists of UUIDs (one for all live masters and one for all
  masters), determine and record (by process of elimination) the UUID of the dead master.

==== Perform the recovery

. Format the data directory on the replacement master machine using the previously recorded
  UUID of the dead master. Use the following command sequence:
+
[source,bash]
----
$ kudu fs format --fs_wal_dir=<master_data_dir> --uuid=<uuid>
----
+
master_data_dir:: replacement master's previously recorded data directory
uuid:: dead master's previously recorded UUID
+
[source,bash]
Example::
+
----
$ kudu fs format --fs_wal_dir=/var/lib/kudu/master --uuid=80a82c4b8a9f4c819bab744927ad765c
----
+
. Copy the master data to the replacement master with the following command:
+
[source,bash]
----
$ kudu local_replica copy_from_remote --fs_wal_dir=<master_data_dir> <tablet_id> <reference_master>
----
+
master_data_dir:: replacement master's previously recorded data directory
tablet_id:: must be the string `00000000000000000000000000000000`
reference_master:: RPC address of the reference master and must be a string of the form
`<hostname>:<port>`
hostname::: reference master's previously recorded hostname or alias
port::: reference master's previously recorded RPC port number
+
[source,bash]
Example::
+
----
$ kudu local_replica copy_from_remote --fs_wal_dir=/var/lib/kudu/master 00000000000000000000000000000000 master-2:7051
----
+
. If using CM, add the replacement Kudu master role now, but do not start it.
* Override the empty value of the `Master Address` parameter for the new role with the replacement
  master's alias.
* Add the port number (separated by a colon) if using a non-default RPC port value.

. Reconfigure the DNS alias for the dead master to point at the replacement master.

. Start the replacement master.

. Restart the existing live masters. This results in a brief availability outage, but it should
  last only as long as it takes for the masters to come back up.

Congratulations, the dead master has been replaced! To verify that all masters are working properly,
consider performing the following sanity checks:

* Using a browser, visit each master's web UI. Look at the /masters page. All of the masters should
  be listed there with one master in the LEADER role and the others in the FOLLOWER role. The
  contents of /masters on each master should be the same.

* Run a Kudu system check (ksck) on the cluster using the `kudu` command line tool. Help for ksck
  can be viewed via `kudu cluster ksck --help`.


Update 2015-10-11-MapReduce-Tutorial.adoc

fatal: unable to access 'https://github.com/milantracy/milantracy.github.io.git/': The requested URL returned error: 403


job:  #10530  introducing analysis to make an outline for the lunch and learn

fatal: unable to access 'https://github.com/leviathan747/mc.git/': The requested URL returned error: 403


Fixed broken cross-doc link.

Fixed broken cross-doc link.

fatal: unable to access 'https://github.com/xjrk58/elasticsearch-hadoop.git/': The requested URL returned error: 403


Update 2016-08-12-Why-Using-Framework.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2017-02-17-title2.adoc

Update 2017-02-17-title2.adoc

fatal: unable to access 'https://github.com/gsha0/hubpress.io.git/': The requested URL returned error: 403


Update 2019-02-28-Perl10.adoc

Update 2019-02-28-Perl10.adoc


chore(Ch3): add index

chore(Ch3): add index

fatal: unable to access 'https://github.com/mzbac/promises-book.git/': The requested URL returned error: 403


Update 2015-10-10-Implementacion-de-una-pantalla-completa-en-JSF-La-pantalla-de-Gestion-de-Trabajos-2-de-2.adoc

fatal: unable to access 'https://github.com/lametaweb/lametaweb.github.io.git/': The requested URL returned error: 403


Update 2016-02-16-Wordpress-Needs-To-Die.adoc

fatal: unable to access 'https://github.com/jmelfi/jmelfi.github.io.git/': The requested URL returned error: 403


Update 2016-04-12-F-B-I-Stumped-by-Apple.adoc

fatal: unable to access 'https://github.com/wattsap/wattsap.github.io.git/': The requested URL returned error: 403


v1.84

fatal: unable to access 'https://github.com/kisel/trex-core.git/': The requested URL returned error: 403


Part 1 IoCs

Part 1 IoCs

fatal: unable to access 'https://github.com/eset/malware-ioc.git/': The requested URL returned error: 403


Python: Adding global packages to virtualenv

fatal: unable to access 'https://github.com/cmpitg/programming-language-notes.git/': The requested URL returned error: 403


Python note - pip install inside Python

Python note - pip install inside Python


Added Troubleshooting Step About Local Database

I found out that in https://github.com/HubPress/hubpress.io/issues/87, you can only resync HubPress on Mobile if you clear app data and cache. This addition may help others with the same issue, until a more permanent fix can be implemented.

fatal: unable to access 'https://github.com/bithunshal/shalsblog.git/': The requested URL returned error: 403


Update 2015-03-18-.adoc

Update 2015-03-18-.adoc

fatal: unable to access 'https://github.com/hinaloe/hubpress.git/': The requested URL returned error: 403


Update 2016-03-15-.adoc

Update 2016-03-15-.adoc

fatal: unable to access 'https://github.com/s-f-ek971/s-f-ek971.github.io.git/': The requested URL returned error: 403


Add scaling documentation

Add scaling documentation

fatal: unable to access 'https://github.com/redhat-openstack/openshift-on-openstack.git/': The requested URL returned error: 403


Create README.adoc

Create README.adoc

fatal: unable to access 'https://github.com/robo-kids/scratch-for-kids.git/': The requested URL returned error: 403


Released v0.2.0

Released v0.2.0

fatal: unable to access 'https://github.com/resilience4j/resilience4j.git/': The requested URL returned error: 403


[docs] Add docs on full data dirs

[docs] Add docs on full data dirs

Change-Id: If1081cab4c84789d29a0ccdccfd11c190b6164cf
Reviewed-on: http://gerrit.cloudera.org:8080/9967
Reviewed-by: Adar Dembo <866ca730bfc7f544e3ebce604ceeba4879f23df0@cloudera.com>
Reviewed-by: Alexey Serbin <864f6b82bd94e8dda64141d4274519ee66e0102e@cloudera.com>
Tested-by: Will Berkeley <c74686ab413a71926fc1bc9d16ebfa30e619336a@gmail.com>

fatal: unable to access 'https://github.com/InspurUSA/kudu.git/': The requested URL returned error: 403


Update 2016-08-30-Hello.adoc

Update 2016-08-30-Hello.adoc

fatal: unable to access 'https://github.com/RandomWebCrap/randomwebcrap.github.io.git/': The requested URL returned error: 403


Update 2016-09-03-Title.adoc

Update 2016-09-03-Title.adoc

fatal: unable to access 'https://github.com/bbsome/bbsome.github.io.git/': The requested URL returned error: 403


Installing PIL in virtualenv

Installing PIL in virtualenv


Updated documentation

Updated documentation


add a README

add a README

fatal: unable to access 'https://github.com/getreu/asciidoctor-fopub.git/': The requested URL returned error: 403


doc update

doc update

fatal: unable to access 'https://github.com/SergeyPirogov/kirk.git/': The requested URL returned error: 403


Added Http Session Handling docs

Added Http Session Handling docs

fatal: unable to access 'https://github.com/pax95/camel.git/': The requested URL returned error: 403


Update README.adoc

Update README.adoc

Fixed links to follow the asciidoctor syntax, not MD.

fatal: unable to access 'https://github.com/thomasdarimont/spring-cloud-config.git/': The requested URL returned error: 403


Add HTML version for Python

Add HTML version for Python


Create README.adoc

Create README.adoc

fatal: unable to access 'https://github.com/peterivarsson/rest-doc.git/': The requested URL returned error: 403


README: rewrite/revisement of many sections

The introduction uses wording mostly copied from the web site to
maintain consistency within the project, and the usage of the term
"IWAD" is greatly reduced.  I still define it, but only so that
someone might become familiar with the term when other people use it,
rather than as a primary term.  Like wise, "port" and "source port"
are largely replaced with "engine," but while defining the former so a
newbie can understand what community members are speaking of.

"How to play" has some additional information about how to actually
get an engine to play the game.  It was previously lacking.  Odamex is
the only port actually outright named as a recommendation, but I try
to keep from sounding like it's the _only_ choice.

The "general rules" to follow has been reduced from four to three, the
first one heavily rewriting so as to not imply that derived works are
completely forbidden.

The "Using Git" section also had a major reworking.  I don't really
like the section entirely myself.  Either needs more revisement or
ejected entirely.

Quite a few linguistic tweaks in all of the sections.

Game names are more consistently italicized.

fatal: unable to access 'https://github.com/CWolfRU/freedoom.git/': The requested URL returned error: 403


Add archive text to README.adoc

Add archive text to README.adoc

fatal: unable to access 'https://github.com/spring-projects/spring-android.git/': The requested URL returned error: 403


Update 2016-01-23-Not-your-Fathers-XQuery.adoc

fatal: unable to access 'https://github.com/xquery/xquery.github.io.git/': The requested URL returned error: 403


Update 2017-08-21-.adoc

Update 2017-08-21-.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2017-10-27-.adoc

Update 2017-10-27-.adoc


Update 2015-08-27-Railroads-Silicon-and-Tigers-My-Asian-American-Dream.adoc

fatal: unable to access 'https://github.com/extrapolate/extrapolate.github.io.git/': The requested URL returned error: 403


Delete the file at '_posts/2018-07-0-Quick-Tips-3-How-to-create-a-pure-CSS-Off-Canvas-Menu.adoc'

fatal: unable to access 'https://github.com/heliomsolivas/heliomsolivas.github.io.git/': The requested URL returned error: 403


fixing a link

fixing a link

fatal: unable to access 'https://github.com/ManoMarks/labs.git/': The requested URL returned error: 403


lecture part 1 on chapter 09

lecture part 1 on chapter 09

fatal: unable to access 'https://github.com/jzacsh/netwtcpip-cmp405.git/': The requested URL returned error: 403


updated description of apoc user guide

updated description of apoc user guide

fatal: unable to access 'https://github.com/larusba/neo4j-apoc-procedures.git/': The requested URL returned error: 403


Update 2015-05-03-Weihenstephan-mit-Wolken.adoc

fatal: unable to access 'https://github.com/fundstuecke/fundstuecke.github.io.git/': The requested URL returned error: 403


Update 2015-06-09-JS-ES6-language-features.adoc

fatal: unable to access 'https://github.com/ragingsmurf/ragingsmurf.github.io.git/': The requested URL returned error: 403


Update 2018-01-29-Whats-up-Flutter-February-2018.adoc

fatal: unable to access 'https://github.com/triskell/triskell.github.io.git/': The requested URL returned error: 403


Import release notes for Groovy 1.7

Import release notes for Groovy 1.7

fatal: unable to access 'https://github.com/rahulsom/sdkman-website.git/': The requested URL returned error: 403


Import release notes for Groovy 2.4

Import release notes for Groovy 2.4


Update 2015-04-15-Mon-Blog.adoc

Update 2015-04-15-Mon-Blog.adoc

fatal: unable to access 'https://github.com/yoanndupuy/yoanndupuy.github.io.git/': The requested URL returned error: 403


Update 2015-04-15-Mon-Blog.adoc

Update 2015-04-15-Mon-Blog.adoc


Update 2015-09-06-Second-Post.adoc

Update 2015-09-06-Second-Post.adoc

fatal: unable to access 'https://github.com/glitched01/glitched01.github.io.git/': The requested URL returned error: 403


Update 2015-11-25-My-title.adoc

Update 2015-11-25-My-title.adoc

fatal: unable to access 'https://github.com/jakkypan/jakkypan.github.io.git/': The requested URL returned error: 403


Update 2016-11-19-Ankurs-blog.adoc

Update 2016-11-19-Ankurs-blog.adoc

fatal: unable to access 'https://github.com/yuyudhan/yuyudhan.github.io.git/': The requested URL returned error: 403


Update 2017-02-17-jquery-xxxx.adoc

Update 2017-02-17-jquery-xxxx.adoc


Update 2018-02-06-Concurrency.adoc

Update 2018-02-06-Concurrency.adoc

fatal: unable to access 'https://github.com/lonelee-kirsi/lonelee-kirsi.github.io.git/': The requested URL returned error: 403


Update 2018-11-08-A-W-S-Azure.adoc

Update 2018-11-08-A-W-S-Azure.adoc


update title

update title

fatal: unable to access 'https://github.com/podviaznikov/podviaznikov.com.git/': The requested URL returned error: 403


Update 2015-09-21-Introduction-to-Object.adoc

fatal: unable to access 'https://github.com/milantracy/milantracy.github.io.git/': The requested URL returned error: 403


add articles

add articles

fatal: unable to access 'https://github.com/oreillyross/developer-notes.git/': The requested URL returned error: 403


Update 2016-01-01-2016-The-goldern-year.adoc

fatal: unable to access 'https://github.com/JacobSamro/blog.git/': The requested URL returned error: 403


Update 2017-05-06-Saturday-May-6th-2017.adoc

fatal: unable to access 'https://github.com/scottellis64/scottellis64.github.io.git/': The requested URL returned error: 403


[docs] - Update 1.1 release notes for Python.

Includes various notes about changes to the Python client in the
1.1 release.

Change-Id: Icac07a016c3707ff5a4a027f8a07ea112318c790
Reviewed-on: http://gerrit.cloudera.org:8080/4998
Tested-by: Kudu Jenkins
Reviewed-by: Jean-Daniel Cryans <4bf4c125525b8623ac45dfd7774cbf531df19085@apache.org>
Reviewed-by: Todd Lipcon <2c763d726a8c2f6afda9be7e0e56a2caa6bb5e6b@apache.org>

fatal: unable to access 'https://github.com/InspurUSA/kudu.git/': The requested URL returned error: 403


Update 2016-09-21-Curso-Online-Abierto-Seguridad-2016-Hacking-etico-2-ed-Unidad-2-Parte-1.adoc

fatal: unable to access 'https://github.com/neocarvajal/neocarvajal.github.io.git/': The requested URL returned error: 403


Update 2017-10-08-Getting-started-with-AWS.adoc


Update 2017-02-27-Episode-90-Test-Post.adoc

fatal: unable to access 'https://github.com/blahcadepodcast/blahcadepodcast.github.io.git/': The requested URL returned error: 403


Update 2016-02-12-Why.adoc

Update 2016-02-12-Why.adoc

fatal: unable to access 'https://github.com/jblemee/jblemee.github.io.git/': The requested URL returned error: 403


Update 2017-07-09-Serverless-Framework-E-C-M-A-Script2015-1.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2015-02-25-Por-que-amo-lo-que-hago.adoc

fatal: unable to access 'https://github.com/devopSkill/devopskill.github.io.git/': The requested URL returned error: 403


Changing image name

Changing image name

fatal: unable to access 'https://github.com/ManoMarks/labs.git/': The requested URL returned error: 403


y2b create post Headphones Made Of Wood!

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


Update 2017-09-18-Functional-Rotterdam-15.adoc

fatal: unable to access 'https://github.com/pepite/hubpress.io.git/': The requested URL returned error: 403


Update README

Update README

fatal: unable to access 'https://github.com/pjanouch/json-rpc-shell.git/': The requested URL returned error: 403


Update readme file

Update readme file

fatal: unable to access 'https://github.com/Adopt-a-JSR/JCache-CDI.git/': The requested URL returned error: 403


Adds README with ASCIIDoc format, will replace exisiting

fatal: unable to access 'https://github.com/HelioGuilherme66/RIDE.git/': The requested URL returned error: 403


added documentation

added documentation

fatal: unable to access 'https://github.com/hivemq/hivemq-hello-world-plugin.git/': The requested URL returned error: 403


added README

added README

fatal: unable to access 'https://github.com/ollin/wstageorg.git/': The requested URL returned error: 403


Update 2017-07-05-Test-on-Header-Image.adoc

fatal: unable to access 'https://github.com/TsungmingLiu/tsungmingliu.github.io.git/': The requested URL returned error: 403


Fix README

Fix README

fatal: unable to access 'https://github.com/pjanouch/termo.git/': The requested URL returned error: 403


Readme initial install was missing -P clone in Readme

fatal: unable to access 'https://github.com/skaterkamp/szoo-faces.git/': The requested URL returned error: 403


Switch back to travis

Switch back to travis

fatal: unable to access 'https://github.com/lburgazzoli/hazelcast-discovery-dns.git/': The requested URL returned error: 403


Added twitter batch

Added twitter batch

fatal: unable to access 'https://github.com/ronsmits/markup-document-builder.git/': The requested URL returned error: 403


add clojurebridge seattle event

add clojurebridge seattle event

fatal: unable to access 'https://github.com/clojure/clojure-site.git/': The requested URL returned error: 403


y2b create post Sony DualShock 3 Charging Station Unboxing


y2b create post I Bought The Cheapest Smartphone on Amazon...


notes

notes

GUA work/GUA papers/Quick Notes on papers/Notes TPD HREELS of GUA on Zn Pt(111).adoc

fatal: unable to access 'https://github.com/mannyfin/IRAS.git/': The requested URL returned error: 403


- Added README.asciidoc

- Added README.asciidoc

fatal: unable to access 'https://github.com/davidkirwan/workshops.git/': The requested URL returned error: 403


Add documentation for the integration of ES pagination fixes Issue #179 (#351)

* url-encoding only on query values #345
* add documentation to use pagination with ES fixes #179

fatal: unable to access 'https://github.com/larusba/neo4j-apoc-procedures.git/': The requested URL returned error: 403


Update 2017-01-10-Pancake-C-M-S-A-new-approach-to-C-M-S-using-web-components-and-server-less-architecture.adoc

fatal: unable to access 'https://github.com/prateekjadhwani/prateekjadhwani.github.io.git/': The requested URL returned error: 403


Renamed '_posts/2018-12-01-Programmers-Guide-to-Working-in-Open-Floor-Plan-Offices.adoc' to '_posts/2018-12-01-Software-Developers-Guide-to-Working-in-Open-Floor-Plan-Offices.adoc'

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


Update 2018-04-02-.adoc

Update 2018-04-02-.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update dbm-clear-checksums.adoc

Update dbm-clear-checksums.adoc

fatal: unable to access 'https://github.com/jako512/grails-database-migration.git/': The requested URL returned error: 403


Update 2015-07-22-DDR-Dance-Dance-Robots.adoc

fatal: unable to access 'https://github.com/GWCATT/gwcatt.github.io.git/': The requested URL returned error: 403


Update 2016-11-09-Google-Yelp-or-how-Google-Local-Guides-just-became-more-relevant.adoc

fatal: unable to access 'https://github.com/jaredmorgs/jaredmorgs.github.io.git/': The requested URL returned error: 403


Update 2017-05-26-Learning-Deep-Learning.adoc

fatal: unable to access 'https://github.com/PertuyF/PertuyF.github.io.git/': The requested URL returned error: 403


Added gitter badge

Added gitter badge

fatal: unable to access 'https://github.com/GYMY-16/gymybook.git/': The requested URL returned error: 403


Readme: remove duplicated entry

Readme: remove duplicated entry

(hawkular-alerts-bus-api)

fatal: unable to access 'https://github.com/jsanda/hawkular-alerts.git/': The requested URL returned error: 403


Added readme

Added readme

fatal: unable to access 'https://github.com/aroq/drubone.git/': The requested URL returned error: 403


replacing tabs and adding a README

replacing tabs and adding a README

fatal: unable to access 'https://github.com/rmannibucau/boon-jaxrs-provider.git/': The requested URL returned error: 403


docs: Fix perf links

docs: Fix perf links

Signed-off-by: jaa127 <5d4b395afd293423da3540113194aa7266e85bd8@sn127.fi>

fatal: unable to access 'https://github.com/jaa127/tackler.git/': The requested URL returned error: 403


Update 2015-09-14-I-found-it-diffcult-to-order-in-a-restaurant.adoc

fatal: unable to access 'https://github.com/stay-india/stay-india.github.io.git/': The requested URL returned error: 403


Update 2017-10-13-making-L-A-M-P-by-A-W-S.adoc


Create FP.adoc

Create FP.adoc

fatal: unable to access 'https://github.com/oreillyross/developer-notes.git/': The requested URL returned error: 403


common-training snippet

common-training snippet

fatal: unable to access 'https://github.com/grails/grails-guides.git/': The requested URL returned error: 403


Update 2015-01-31-Blog-Title-TG-has-a-small-DICK.adoc

fatal: unable to access 'https://github.com/oppemism/oppemism.github.io.git/': The requested URL returned error: 403


Update 2017-06-20-Episode-104-Dessert-Fries-Blah.adoc

fatal: unable to access 'https://github.com/blahcadepodcast/blahcadepodcast.github.io.git/': The requested URL returned error: 403


Publish 04-06-2015-RIP-Postachio-and-Cilantroio.adoc

fatal: unable to access 'https://github.com/Sth0nian/hubpress.io.git/': The requested URL returned error: 403


release notes: update_dirs and fs_metadata_dir

This patch adds release notes for support of data dir removal via the
`kudu fs update_dirs` tool and for the configuration of the metadata
directory.

Note: These blurbs are taken from the configuration docs.

Change-Id: I87f0857c3e7d9d98865fbb50e5e69b78e03c6fe2
Reviewed-on: http://gerrit.cloudera.org:8080/9581
Reviewed-by: Adar Dembo <866ca730bfc7f544e3ebce604ceeba4879f23df0@cloudera.com>
Reviewed-by: Alexey Serbin <864f6b82bd94e8dda64141d4274519ee66e0102e@cloudera.com>
Tested-by: Andrew Wong <b68e4fdc6430321a6b47400732ff97d7ae91234e@cloudera.com>

fatal: unable to access 'https://github.com/InspurUSA/kudu.git/': The requested URL returned error: 403


Publish 2016-6-28-PHPER-authority-control-RBAC.adoc


Update 2013-06-09-Code-As-You-Would-Order-A-Burger.adoc

fatal: unable to access 'https://github.com/bigkahuna1uk/bigkahuna1uk.github.io.git/': The requested URL returned error: 403


Adds README.adoc

Adds README.adoc

Adds README.adoc with information on how to use Arquillian Cube.

fatal: unable to access 'https://github.com/spolti/arquillian-cube.git/': The requested URL returned error: 403


Update README

Update README

Add a reference to hachoir.

fatal: unable to access 'https://github.com/pjanouch/hex.git/': The requested URL returned error: 403


docs: Fix gitter link

docs: Fix gitter link

Signed-off-by: jaa127 <5d4b395afd293423da3540113194aa7266e85bd8@sn127.fi>


Add readme

Add readme

fatal: unable to access 'https://github.com/snoopee/snoopee.github.io.git/': The requested URL returned error: 403


job:  #12050  added implementation note

job:  #12050  added implementation note

fatal: unable to access 'https://github.com/xtuml/mc.git/': The requested URL returned error: 403


[#18103] Add guide for Hibernate Reactive

fatal: unable to access 'https://github.com/quarkusio/quarkus.git/': The requested URL returned error: 403


Fix markup in Zen discovery docs

Fix markup in Zen discovery docs

This commit fixes a markup issue in the Zen discovery docs where a link
and its referring text were not on the same line tripping the renderer.

fatal: unable to access 'https://github.com/mohit/elasticsearch.git/': The requested URL returned error: 403


Update 2015-02-01-the-AsciiDoc-introduction.adoc

fatal: unable to access 'https://github.com/deepwind/deepwind.github.io.git/': The requested URL returned error: 403


Create New article

Create New article

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2016-01-01-2016-The-Goldern-year.adoc

fatal: unable to access 'https://github.com/JacobSamro/blog.git/': The requested URL returned error: 403


Update 2016-03-30-Subiendo-el-exploit.adoc

fatal: unable to access 'https://github.com/camilo28/camilo28.github.io.git/': The requested URL returned error: 403


Update 2016-06-11-Main-Title-Subtitle.adoc

fatal: unable to access 'https://github.com/LearningTools/LearningTools.github.io.git/': The requested URL returned error: 403


add tools.build guide

add tools.build guide

fatal: unable to access 'https://github.com/clojure/clojure-site.git/': The requested URL returned error: 403


Update 2015-06-12-JS-ES6-classes.adoc

Update 2015-06-12-JS-ES6-classes.adoc

fatal: unable to access 'https://github.com/ragingsmurf/ragingsmurf.github.io.git/': The requested URL returned error: 403


Added Otherwise EIP docs

Added Otherwise EIP docs

fatal: unable to access 'https://github.com/pax95/camel.git/': The requested URL returned error: 403


Update 2014-08-14-Episode-10-Pinball-Galore.adoc

fatal: unable to access 'https://github.com/blahcadepodcast/blahcadepodcast.github.io.git/': The requested URL returned error: 403


Update 2015-02-16-Getting-started-with-Hubpress.adoc

fatal: unable to access 'https://github.com/alchapone/alchapone.github.io.git/': The requested URL returned error: 403


Remove submodules configuration

Remove submodules configuration

fatal: unable to access 'https://github.com/uclouvain/osis.git/': The requested URL returned error: 403


Update 2016-02-04-Merge-vs-Rebase-in-Git.adoc

fatal: unable to access 'https://github.com/mikealdo/mikealdo.github.io.git/': The requested URL returned error: 403


Update 2017-02-21-2.adoc

Update 2017-02-21-2.adoc

fatal: unable to access 'https://github.com/luckypoem/blog.hubpress.io.git/': The requested URL returned error: 403


chore(promise-resolve): 文章が対となるように

chore(promise-resolve): 文章が対となるように

fixes #73

fatal: unable to access 'https://github.com/mzbac/promises-book.git/': The requested URL returned error: 403


Update 2015-02-12-a.adoc

Update 2015-02-12-a.adoc

fatal: unable to access 'https://github.com/hinaloe/hubpress.git/': The requested URL returned error: 403


Update 2016-04-07-A.adoc

Update 2016-04-07-A.adoc


Updated AUTHORS.adoc

Updated AUTHORS.adoc

fatal: unable to access 'https://github.com/joshuagn/ANPR.git/': The requested URL returned error: 403


Added IoCs for TeleBots

Added IoCs for TeleBots

fatal: unable to access 'https://github.com/eset/malware-ioc.git/': The requested URL returned error: 403


Changing branching system

Changing branching system


Adds ReadMe file to repository

Adds ReadMe file to repository

fatal: unable to access 'https://github.com/rajadileepkolli/POC.git/': The requested URL returned error: 403


Update 2015-09-06-.adoc

Update 2015-09-06-.adoc

fatal: unable to access 'https://github.com/suning-wireless/Suning-Wireless.github.io.git/': The requested URL returned error: 403


Publish 2017-02-25adocadoc-part-1.adoc

Publish 2017-02-25adocadoc-part-1.adoc

fatal: unable to access 'https://github.com/faldah/faldah.github.io.git/': The requested URL returned error: 403


y2b create post 65\

y2b create post 65\

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


linking to Compose file

linking to Compose file

fatal: unable to access 'https://github.com/ManoMarks/labs.git/': The requested URL returned error: 403


Update 2016-03-03-Playing-with-Source-Maps.adoc

fatal: unable to access 'https://github.com/prateekjadhwani/prateekjadhwani.github.io.git/': The requested URL returned error: 403


Update 2016-05-16-blabla-1-2-3.adoc

Update 2016-05-16-blabla-1-2-3.adoc

fatal: unable to access 'https://github.com/sgalles/sgalles.github.io.git/': The requested URL returned error: 403


Update 2017-08-03-sed-add-plus.adoc

Update 2017-08-03-sed-add-plus.adoc

fatal: unable to access 'https://github.com/debbiezhu/debbiezhu.github.io.git/': The requested URL returned error: 403


Update 2014-09-19-Apologizing-for-exuberance.adoc

fatal: unable to access 'https://github.com/jarcane/jarcane.github.io.git/': The requested URL returned error: 403


Gf ⇒ GF

Gf ⇒ GF

fatal: unable to access 'https://github.com/oliviercailloux/jee.git/': The requested URL returned error: 403


Update 2012-04-20-Enabling-SOAP-message-signing-for-EJB-webservice-client-in-Glassfish.adoc

fatal: unable to access 'https://github.com/pdudits/hubpress.git/': The requested URL returned error: 403


Update 2016-6-25-Git-one.adoc

Update 2016-6-25-Git-one.adoc

fatal: unable to access 'https://github.com/oppemism/oppemism.github.io.git/': The requested URL returned error: 403


Update 2017-12-08-Go-O-R.adoc

Update 2017-12-08-Go-O-R.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2015-08-14-MEGA-Link-Downloader-FAQ.adoc

fatal: unable to access 'https://github.com/shinchiro/shinchiro.github.io.git/': The requested URL returned error: 403


Update 2017-09-09-Postgre-S-Q-L-My-S-Q-L-8.adoc


Update 2015-08-04-Writting-macro-with-Asciidoctor.adoc

fatal: unable to access 'https://github.com/gscheibel/blog.git/': The requested URL returned error: 403


Delete 2017-08-14-Azure-6.adoc

Delete 2017-08-14-Azure-6.adoc


Update 2015-09-17-first-commit.adoc

Update 2015-09-17-first-commit.adoc

fatal: unable to access 'https://github.com/popurax/popurax.github.io.git/': The requested URL returned error: 403


Update 2017-10-27-Go-lang-memo.adoc

Update 2017-10-27-Go-lang-memo.adoc

fatal: unable to access 'https://github.com/remi-hernandez/remi-hernandez.github.io.git/': The requested URL returned error: 403


y2b create post The Best Bluetooth Speaker?


y2b create post 5 Crazy Things At CES 2016


Update 2016-02-12-The-start.adoc

Update 2016-02-12-The-start.adoc

fatal: unable to access 'https://github.com/jblemee/jblemee.github.io.git/': The requested URL returned error: 403


Update 2017-04-14-Test-Post.adoc

Update 2017-04-14-Test-Post.adoc

fatal: unable to access 'https://github.com/roobyz/roobyz.github.io.git/': The requested URL returned error: 403


Update 03_task_publishToConfluence.adoc

Update 03_task_publishToConfluence.adoc

Fix spelling error

fatal: unable to access 'https://github.com/docToolchain/docToolchain.git/': The requested URL returned error: 403


Fix grid column sort order documentation (#8650)

* Fix grid column sort order documentation

fatal: unable to access 'https://github.com/peterl1084/framework.git/': The requested URL returned error: 403


Updated table in single node document.

Updated table in single node document.

fatal: unable to access 'https://github.com/lowcloudnine/singularity-spark.git/': The requested URL returned error: 403


Update 2010-12-04-Ways-to-Reduce-Paper-Reliance-Through-Technology.adoc

fatal: unable to access 'https://github.com/jaredmorgs/jaredmorgs.github.io.git/': The requested URL returned error: 403


Polish contribution

Polish contribution

I don't think we want to keep this on a single line.

Closes gh-4309

fatal: unable to access 'https://github.com/mbogoevici/spring-boot.git/': The requested URL returned error: 403


Update 2016-10-24-Computer-Science-Midterm.adoc

fatal: unable to access 'https://github.com/setupminimal/blog.git/': The requested URL returned error: 403


y2b create post I've Got The iPhone X Prototype!!!

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


aggiunta della sintassi

aggiunta della sintassi

fatal: unable to access 'https://github.com/gionatamassibenincasa/scrittura_con_asciidoc.git/': The requested URL returned error: 403


Update 2017-01-27-Google-Apps-Script-De-W-B-S.adoc


Update 2017-12-29-So-what-about-English-title.adoc

fatal: unable to access 'https://github.com/miroque/shirokuma.git/': The requested URL returned error: 403


Adding 1.8 Final announcement

Adding 1.8 Final announcement

fatal: unable to access 'https://github.com/debezium/debezium.github.io.git/': The requested URL returned error: 403


Write the async message passing guide

Write the async message passing guide

fatal: unable to access 'https://github.com/quarkusio/quarkus.git/': The requested URL returned error: 403


Update 2017-06-09-Gabe-loses-his-Compasses-for-a-bit.adoc

fatal: unable to access 'https://github.com/gjagush/gjagush.github.io.git/': The requested URL returned error: 403


Update 2016-07-22-Stable-Graph-Matching.adoc

fatal: unable to access 'https://github.com/mdramos/mdramos.github.io.git/': The requested URL returned error: 403


Update 2016-6-26-PHPER-H5-base64-base64.adoc

fatal: unable to access 'https://github.com/oppemism/oppemism.github.io.git/': The requested URL returned error: 403


Update code documentation

Update code documentation

fatal: unable to access 'https://github.com/psprint/zplugin.git/': The requested URL returned error: 403


Update 2016-11-10-091800-Thursday-Morning.adoc

fatal: unable to access 'https://github.com/DullestSaga/dullestsaga.github.io.git/': The requested URL returned error: 403


y2b create post Epic iPhone 4S Unboxing

y2b create post Epic iPhone 4S Unboxing


Started operator overloading notes

Started operator overloading notes

fatal: unable to access 'https://github.com/cjdb/cs6771-16s2.git/': The requested URL returned error: 403


Use primitive types

Use primitive types

fatal: unable to access 'https://github.com/oliviercailloux/jee.git/': The requested URL returned error: 403


Added instructions for downsampled data.

fatal: unable to access 'https://github.com/jotak/hawkular.github.io.git/': The requested URL returned error: 403


Update 2012-11-09-google-cloud-endpoints.adoc

fatal: unable to access 'https://github.com/mgreau/posts.git/': The requested URL returned error: 403


Camel-main-maven-plugin: Improve NOTE section

fatal: unable to access 'https://github.com/adessaigne/camel.git/': The requested URL returned error: 403


Update 2017-05-31-TWCTF-2017.adoc

Update 2017-05-31-TWCTF-2017.adoc

fatal: unable to access 'https://github.com/cothan/cothan.github.io.git/': The requested URL returned error: 403


Small changes to documentation.

Small changes to documentation.

docs/Artifacts definition format and style guide.asciidoc

fatal: unable to access 'https://github.com/crankyoldgit/artifacts.git/': The requested URL returned error: 403


Update 2015-03-20-dictcc-direct-search.adoc

fatal: unable to access 'https://github.com/woehrl01/woehrl01.hubpress.io.git/': The requested URL returned error: 403


Update 2018-04-20-deploy-by-kubernetes.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


y2b create post You've Never Seen A Mouse Do This...

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


Delete 2018-02-05-.adoc

Delete 2018-02-05-.adoc


Update 2016-06-09-I-Phone-A-P-Pin-Philippines.adoc


common snippet: add functionalTests intro

fatal: unable to access 'https://github.com/grails/grails-guides.git/': The requested URL returned error: 403


Update regexp-syntax.asciidoc (#20973)

Update regexp-syntax.asciidoc (#20973)

fatal: unable to access 'https://github.com/mohit/elasticsearch.git/': The requested URL returned error: 403


Update 2016-04-07-Banner-grabbing.adoc

Update 2016-04-07-Banner-grabbing.adoc

fatal: unable to access 'https://github.com/camilo28/camilo28.github.io.git/': The requested URL returned error: 403


Update 2016-04-11-Inyeccion-S-S-I.adoc

Update 2016-04-11-Inyeccion-S-S-I.adoc


Update 2015-03-24-Episode-16-Drunken-Farmer.adoc

fatal: unable to access 'https://github.com/blahcadepodcast/blahcadepodcast.github.io.git/': The requested URL returned error: 403


Update 2015-10-22-On-your-marks-Get-set-Die.adoc

fatal: unable to access 'https://github.com/2wce/2wce.github.io.git/': The requested URL returned error: 403


created stub architecture doc and added notes about what happens when JMS is down

fatal: unable to access 'https://github.com/claudiu-stanciu/kylo.git/': The requested URL returned error: 403


y2b create post Unboxing Cool Survival Gear


Update 2017-09-09-Postgre-S-Q-L-My-S-Q-L-8.adoc


Renamed '_posts/2018-01-09-Build-Blog-With-Hub-Press.adoc' to '_posts/2018-01-09-Build-Blog-With-Hubpress.adoc'

fatal: unable to access 'https://github.com/lonelee-kirsi/lonelee-kirsi.github.io.git/': The requested URL returned error: 403


Update 2017-11-12-.adoc

Update 2017-11-12-.adoc


Update 2017-06-20-DL-meet-with-Neuroscience-3.adoc

fatal: unable to access 'https://github.com/SRTjiawei/SRTjiawei.github.io.git/': The requested URL returned error: 403


Publish 2016-7-8.adoc

Publish 2016-7-8.adoc

fatal: unable to access 'https://github.com/oppemism/oppemism.github.io.git/': The requested URL returned error: 403


Publish 2016-7-8.adoc

Publish 2016-7-8.adoc


Fix typo in 0.8 release notes

Fix typo in 0.8 release notes

Change-Id: I1650870b087e4999aee9a5f8eb6828035084cb52
Reviewed-on: http://gerrit.cloudera.org:8080/2700
Reviewed-by: Jean-Daniel Cryans
Tested-by: Kudu Jenkins

fatal: unable to access 'https://github.com/InspurUSA/kudu.git/': The requested URL returned error: 403


initial cut of GEP-4

initial cut of GEP-4

fatal: unable to access 'https://github.com/groovy/groovy-website.git/': The requested URL returned error: 403


Update 2016-03-10-Grand-Central-Dispatch-i-O-S.adoc

fatal: unable to access 'https://github.com/jtsiros/jtsiros.github.io.git/': The requested URL returned error: 403


Talk about the Hawkular-metrics 0.3.1 release

fatal: unable to access 'https://github.com/jotak/hawkular.github.io.git/': The requested URL returned error: 403


Create README.adoc

Create README.adoc

fatal: unable to access 'https://github.com/Accordance/microservice-dojo.git/': The requested URL returned error: 403


Update 2017-12-03-visual-studio-code-extension.adoc


Create fr/les_principes.adoc

Create fr/les_principes.adoc

fatal: unable to access 'https://github.com/reyman/mageo-documentation.git/': The requested URL returned error: 403


Update 2015-06-08-Lorem-ipsum-4.adoc

Update 2015-06-08-Lorem-ipsum-4.adoc

fatal: unable to access 'https://github.com/Ellixo/ellixo.github.io.git/': The requested URL returned error: 403


Update 2016-03-28-this-is-a-day.adoc

Update 2016-03-28-this-is-a-day.adoc

fatal: unable to access 'https://github.com/regdog/regdog.github.io.git/': The requested URL returned error: 403


Create 2016-08-08-Session-Notes.adoc

Create 2016-08-08-Session-Notes.adoc

fatal: unable to access 'https://github.com/chackomathew/blog.git/': The requested URL returned error: 403


Update Kaui_Guide_Draft (4) (1).adoc

Update Kaui_Guide_Draft (4) (1).adoc

fatal: unable to access 'https://github.com/killbill/killbill-docs.git/': The requested URL returned error: 403


Update 2012-12-31-1-an-a-Lateral-Thoughts.adoc

fatal: unable to access 'https://github.com/fbiville/fbiville.github.io.git/': The requested URL returned error: 403


Update terminology from front page

Update terminology from front page

fatal: unable to access 'https://github.com/joachimmetz/artifacts.git/': The requested URL returned error: 403


y2b create post DIY Custom Apple Watch

y2b create post DIY Custom Apple Watch

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


Update 2017-02-25-egy.adoc

Update 2017-02-25-egy.adoc

fatal: unable to access 'https://github.com/neurodiversitas/neurodiversitas.github.io.git/': The requested URL returned error: 403


Typo in the description for include_in_all

I know this is uber-minor, but I was confused by the phrase "the raw field value to be copied". I assume "is" was supposed to be instead of "to"

fatal: unable to access 'https://github.com/ouyangkongtong/elasticsearch.git/': The requested URL returned error: 403


y2b create post What's in my bag? (Tech Edition)


Update 2017-06-30-First-work-of-my-data-sience.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2015-11-14-Curriculos-e-programacao.adoc

fatal: unable to access 'https://github.com/homenslibertemse/homenslibertemse.github.io.git/': The requested URL returned error: 403


Update 2017-02-10-eps-wroom-32-and-esp-idf.adoc


Update 2017-04-13-Suffer-Fortigate-V-L-A-N.adoc


Update 2017-05-29-Fortigate-Policy-Routing.adoc


Document release process for 3.0.x

Document release process for 3.0.x

Issueh gh-2036

fatal: unable to access 'https://github.com/vpavic/spring-session.git/': The requested URL returned error: 403


Update 2015-06-28-Binary-matrix-effect-in-blue.adoc

fatal: unable to access 'https://github.com/Ugotsta/Ugotsta.github.io.git/': The requested URL returned error: 403


y2b create post The iPhone Notification Case!


lab 05 v2

lab 05 v2

fatal: unable to access 'https://github.com/dm-academy/aitm-labs.git/': The requested URL returned error: 403


Update 2015-09-10-Centos-7-on-VirtualBox-notes.adoc

fatal: unable to access 'https://github.com/blater/blater.github.io.git/': The requested URL returned error: 403


Update 2018-09-30-Microservices-With-Nodejs.adoc

fatal: unable to access 'https://github.com/jbrizio/jbrizio.github.io.git/': The requested URL returned error: 403


Publish DS_Store-Breizhcamp-Saison-5.adoc


add documentation

add documentation

fatal: unable to access 'https://github.com/Kronos-Integration/kronos-service-manager-admin.git/': The requested URL returned error: 403


Update 2015-11-17-Projeto-Homens-Libertem-se.adoc


y2b create post Ever Tried Bone Conduction?


Update 2016-06-24-Midterm-Lets-go-to-O-H-M-B.adoc

fatal: unable to access 'https://github.com/erramuzpe/gsoc2016.git/': The requested URL returned error: 403


Update 2018-09-27-repair-grub2-lvm2-luks-encrypted-system-volume-group-not-found.adoc

fatal: unable to access 'https://github.com/anwfr/blog.anw.fr.git/': The requested URL returned error: 403


Update 2018-12-01-Software-Developers-Guide-to-Working-in-Open-Floor-Plan-Office.adoc


Update README.adoc

Update README.adoc

fatal: unable to access 'https://github.com/constantlearner/spring-xd.git/': The requested URL returned error: 403


Initial proposal on migrating to CRDs (#3231)

* Initial proposal on migrating to CRDs
* Update proposal based on review feedback

fatal: unable to access 'https://github.com/jenmalloy/enmasse.git/': The requested URL returned error: 403


Renamed '_posts/2016-05-23-Horoshij-spravochnik-po-ASCIIDOC-AsciiDoc-cheatsheet.adoc' to '_posts/2016-05-23-ASCIIDOC-Ascii-Doc-cheatsheet.adoc'

fatal: unable to access 'https://github.com/miroque/shirokuma.git/': The requested URL returned error: 403


Update 2017-03-15-E-Gt-showing-Nothing-to-fetch.adoc

fatal: unable to access 'https://github.com/jsiu22/blog.git/': The requested URL returned error: 403


Update 2017-05-12-Phantom-J-S-on-Raspberry-Pi-3.adoc


Update 2017-11-23-Azure-8.adoc

Update 2017-11-23-Azure-8.adoc


Update 2016-02-29-Meine-ersten-Schritte-mit-dem-Hubpress-Blog-via-Git-Hub-Repository.adoc

fatal: unable to access 'https://github.com/AlexL777/hubpressblog.git/': The requested URL returned error: 403


Update 2016-07-22-Stable-Matching-Algorithm-in-progress.adoc

fatal: unable to access 'https://github.com/mdramos/mdramos.github.io.git/': The requested URL returned error: 403


y2b create post Motorola Mystery Box Unboxing

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


Publish 2011-10-112-Peak-Java.adoc

Publish 2011-10-112-Peak-Java.adoc

fatal: unable to access 'https://github.com/bigkahuna1uk/bigkahuna1uk.github.io.git/': The requested URL returned error: 403


Update 2017-06-04-Route53-S-E-S-S3-Lambda-Gmail.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


created guide for crimping RJ-45 cables

created guide for crimping RJ-45 cables

fatal: unable to access 'https://github.com/UCSolarCarTeam/Recruit-Resources.git/': The requested URL returned error: 403


copy releasenotes to master

copy releasenotes to master

fatal: unable to access 'https://github.com/appNG/appng.git/': The requested URL returned error: 403


Update 2016-01-23-Not-your-Fathers-XQuery.adoc

fatal: unable to access 'https://github.com/xquery/xquery.github.io.git/': The requested URL returned error: 403


Update 2017-05-03-Server-Virtualization-Management-Part3.adoc

fatal: unable to access 'https://github.com/roobyz/roobyz.github.io.git/': The requested URL returned error: 403


Update 2016-11-14-231000-Monday.adoc

Update 2016-11-14-231000-Monday.adoc

fatal: unable to access 'https://github.com/DullestSaga/dullestsaga.github.io.git/': The requested URL returned error: 403


Added description of request extension functions and warning about not installing in directory containing spaces

fatal: unable to access 'https://github.com/Armatiek/xslweb.git/': The requested URL returned error: 403


Update 2016-08-09-TP.adoc

Update 2016-08-09-TP.adoc

fatal: unable to access 'https://github.com/oppemism/oppemism.github.io.git/': The requested URL returned error: 403


Update 2018-01-27-react-router-4-hash-History-link-not-rendering-view-rendered-after-refresh.adoc

fatal: unable to access 'https://github.com/anwfr/blog.anw.fr.git/': The requested URL returned error: 403


Update 2017-05-20-oi.adoc

Update 2017-05-20-oi.adoc

fatal: unable to access 'https://github.com/mairandomness/randomblog.git/': The requested URL returned error: 403


Update 2017-09-22-aa.adoc

Update 2017-09-22-aa.adoc


Include folder is duplicated everywhere

Include folder is duplicated everywhere

Introduce `:includedir:`.

fatal: unable to access 'https://github.com/dulanov/emerald-rs.git/': The requested URL returned error: 403


Update 2015-09-23-Story-of-my-Life.adoc

Update 2015-09-23-Story-of-my-Life.adoc

fatal: unable to access 'https://github.com/2wce/2wce.github.io.git/': The requested URL returned error: 403


Update 2016-11-23-what-buy-accepting-bitcoin.adoc


new release

new release

fatal: unable to access 'https://github.com/clojure/clojurescript-site.git/': The requested URL returned error: 403


Update 2016-08-17-The-Dangers-of-Multirepo.adoc

fatal: unable to access 'https://github.com/MatanRubin/MatanRubin.github.io.git/': The requested URL returned error: 403


Docs: Fix indentation in has-child-query.asciidoc (#23565)

fatal: unable to access 'https://github.com/mohit/elasticsearch.git/': The requested URL returned error: 403


olfs: GSOC 2019 1st draft

olfs: GSOC 2019 1st draft

fatal: unable to access 'https://github.com/OPENDAP/olfs.git/': The requested URL returned error: 403


Update 2014-07-17-Give-it-back-to-the-community.adoc

fatal: unable to access 'https://github.com/wanjee/wanjee.github.io.git/': The requested URL returned error: 403


add Ch2_HowToWrite/promise-all.adoc

add Ch2_HowToWrite/promise-all.adoc

fatal: unable to access 'https://github.com/mzbac/promises-book.git/': The requested URL returned error: 403


y2b create post A Cool Desk Gadget Under $30

fatal: unable to access 'https://github.com/live-smart/live-smart.github.io.git/': The requested URL returned error: 403


Publish 2010-12-7-Recenberg-15th-success-rule-applied-to-life.adoc

fatal: unable to access 'https://github.com/raghakot/raghakot.github.io.git/': The requested URL returned error: 403


Update 2016-10-07-The-5-types-of-Millennials-In-The-World.adoc

fatal: unable to access 'https://github.com/gudhakesa/gudhakesa.github.io.git/': The requested URL returned error: 403


Update 2016-02-16-Netter-coden-door-Java-8-Interfaces.adoc

fatal: unable to access 'https://github.com/topicusonderwijs/topicusonderwijs.github.io.git/': The requested URL returned error: 403


create post I've Never Tried Anything Like It...


Added best-practices section

Added best-practices section

`Handling multiple stages` and `Integrating external Services` is close
to being finalized and will be made available tomorrow

fatal: unable to access 'https://github.com/wombat/kubernetes-aws-workshop.git/': The requested URL returned error: 403


dmr demo on wildfly

dmr demo on wildfly

fatal: unable to access 'https://github.com/fmarchioni/mastertheboss.git/': The requested URL returned error: 403


Update components-grid.asciidoc (#9813)

Update components-grid.asciidoc (#9813)

Updates related to #9810

fatal: unable to access 'https://github.com/mstahv/framework.git/': The requested URL returned error: 403


Update 2017-06-05-requests-via-ntlm-proxy.adoc

fatal: unable to access 'https://github.com/debbiezhu/debbiezhu.github.io.git/': The requested URL returned error: 403


Update 2016-03-28-Deploying-open-A-M-12-on-mesos.adoc

fatal: unable to access 'https://github.com/InformatiQ/informatiq.github.io.git/': The requested URL returned error: 403


Update 2018-02-13-Q-R-code-the-U-R-L-of-the-Web-site-currently-displayed-on-React-based-Chrome-extesion.adoc

fatal: unable to access 'https://github.com/innovation-jp/innovation-jp.github.io.git/': The requested URL returned error: 403


Update 2016-12-18-About-Me.adoc

Update 2016-12-18-About-Me.adoc

fatal: unable to access 'https://github.com/chowwin/chowwin.github.io.git/': The requested URL returned error: 403


update title

update title

fatal: unable to access 'https://github.com/podviaznikov/podviaznikov.com.git/': The requested URL returned error: 403


Release Candidate post

Release Candidate post

fatal: unable to access 'https://github.com/clojure/clojurescript-site.git/': The requested URL returned error: 403


y2b create post iPhone Camera Transformer!


Update 2016-12-30-Episode-82-Last-Gasp-2016.adoc

fatal: unable to access 'https://github.com/blahcadepodcast/blahcadepodcast.github.io.git/': The requested URL returned error: 403


Renamed '_posts/2017-10-20-My-first-post.adoc' to '_posts/2017-10-20-Easy-start-with-Hub-Press.adoc'

fatal: unable to access 'https://github.com/severin31/severin31.github.io.git/': The requested URL returned error: 403


add math module

add math module

fatal: unable to access 'https://github.com/oreillyross/developer-notes.git/': The requested URL returned error: 403


DBZ-1806 Community newsletter 1/2020

DBZ-1806 Community newsletter 1/2020

fatal: unable to access 'https://github.com/debezium/debezium.github.io.git/': The requested URL returned error: 403


Update 2017-04-14-Azure-3.adoc

Update 2017-04-14-Azure-3.adoc


Update 2018-2-2-Web-R-T-C.adoc

Update 2018-2-2-Web-R-T-C.adoc


Update 2014-09-01-Recursive-lambdas-in-Java-8.adoc

fatal: unable to access 'https://github.com/pysaumont/pysaumont.github.io.git/': The requested URL returned error: 403