Author: blrunner
Date: Wed Sep 24 02:51:24 2014
New Revision: 1627196
URL: http://svn.apache.org/r1627196
Log:
added HA configuration documentation
Added:
tajo/site/docs/current/configuration/ha_configuration.html
Added: tajo/site/docs/current/configuration/ha_configuration.html
URL:
http://svn.apache.org/viewvc/tajo/site/docs/current/configuration/ha_configuration.html?rev=1627196&view=auto
==============================================================================
--- tajo/site/docs/current/configuration/ha_configuration.html (added)
+++ tajo/site/docs/current/configuration/ha_configuration.html Wed Sep 24
02:51:24 2014
@@ -0,0 +1,343 @@
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <title>High Availability for TajoMaster — Apache Tajo 0.8.0
documentation</title>
+
+
+
+
+
+
+ <link
href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700'
rel='stylesheet' type='text/css'>
+
+
+
+
+
+
+
+
+
+ <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+
+
+ <link rel="top" title="Apache Tajo 0.8.0 documentation"
href="../index.html"/>
+ <link rel="up" title="Configuration" href="../configuration.html"/>
+ <link rel="next" title="Tajo Shell (TSQL)" href="../cli.html"/>
+ <link rel="prev" title="Configuration Defaults"
href="configuration_defaults.html"/>
+
+
+ <script
src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+ <div class="wy-grid-for-nav">
+
+
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+ <div class="wy-side-nav-search">
+ <a href="../index.html" class="fa fa-home"> Apache Tajo</a>
+ <div role="search">
+ <form id ="rtd-search-form" class="wy-form" action="../search.html"
method="get">
+ <input type="text" name="q" placeholder="Search docs" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+</div>
+ </div>
+
+ <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation"
aria-label="main navigation">
+
+
+ <ul class="current">
+<li class="toctree-l1"><a class="reference internal"
href="../introduction.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../getting_started.html">Getting Started</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../getting_started/prerequisites.html">Prerequisites</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../getting_started/downloading_source.html">Dowload and unpack the source
code of Apache Tajo</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../getting_started/building.html">Build source code</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../getting_started/local_setup.html">Setting up a local Tajo
cluster</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../getting_started/first_query.html">First query execution</a></li>
+</ul>
+</li>
+<li class="toctree-l1 current"><a class="reference internal"
href="../configuration.html">Configuration</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal"
href="preliminary.html">Preliminary</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="cluster_setup.html">Cluster Setup</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="tajo_master_configuration.html">Tajo Master Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="worker_configuration.html">Worker Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="catalog_configuration.html">Catalog Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="configuration_defaults.html">Configuration Defaults</a></li>
+<li class="toctree-l2 current"><a class="current reference internal"
href="">High Availability for TajoMaster</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../cli.html">Tajo
Shell (TSQL)</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../cli.html#synopsis">Synopsis</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../cli.html#entering-tsql-shell">Entering tsql shell</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../cli.html#meta-commands">Meta Commands</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../sql_language.html">SQL Language</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../sql_language/data_model.html">Data Model</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../sql_language/ddl.html">Data Definition Language</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../sql_language/insert.html">INSERT (OVERWRITE) INTO</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../sql_language/queries.html">Queries</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../sql_language/sql_expression.html">SQL Expressions</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../sql_language/predicates.html">Predicates</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../functions.html">Functions</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../functions/math_func_and_operators.html">Math Functions and
Operators</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../functions/string_func_and_operators.html">String Functions and
Operators</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../functions/datetime_func_and_operators.html">DateTime Functions and
Operators</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../functions/network_func_and_operators.html">Network Functions and
Operators</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../table_management.html">Table Management</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../table_management/file_formats.html">File Formats</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../table_management/compression.html">Compression</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../table_partitioning.html">Table Partitioning</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../partitioning/intro_to_partitioning.html">Introduction to
Partitioning</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../partitioning/column_partitioning.html">Column Partitioning</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../partitioning/range_partitioning.html">Range Partitioning</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../partitioning/hash_partitioning.html">Hash Partitioning</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../backup_and_restore.html">Backup and Restore</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../backup_and_restore/catalog.html">Backup and Restore Catalog</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../hcatalog_integration.html">HCatalog Integration</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../jdbc_driver.html">Tajo JDBC Driver</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="../jdbc_driver.html#how-to-get-jdbc-driver">How to get JDBC
driver</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../jdbc_driver.html#setting-the-classpath">Setting the CLASSPATH</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../jdbc_driver.html#an-example-jdbc-client">An Example JDBC
Client</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="../jdbc_driver.html#faq">FAQ</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal"
href="../tajo_client_api.html">Tajo Client API</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="../faq.html">FAQ</a></li>
+</ul>
+
+
+ </div>
+
+ </nav>
+
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+
+ <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+ <a href="../index.html">Apache Tajo</a>
+ </nav>
+
+
+
+ <div class="wy-nav-content">
+ <div class="rst-content">
+ <div role="navigation" aria-label="breadcrumbs navigation">
+ <ul class="wy-breadcrumbs">
+ <li><a href="../index.html">Docs</a> »</li>
+
+ <li><a href="../configuration.html">Configuration</a> »</li>
+
+ <li>High Availability for TajoMaster</li>
+ <li class="wy-breadcrumbs-aside">
+
+ <a href="../_sources/configuration/ha_configuration.txt"
rel="nofollow"> View page source</a>
+
+ </li>
+ </ul>
+ <hr/>
+</div>
+ <div role="main">
+
+ <div class="section" id="high-availability-for-tajomaster">
+<h1>High Availability for TajoMaster<a class="headerlink"
href="#high-availability-for-tajomaster" title="Permalink to this
headline">¶</a></h1>
+<p>TajoMaster is a Single Point of Failure in a Tajo Cluster because
TajoMaster is the central controlling entity for all components of the Tajo
system. TajoMaster failure prevents clients from submitting new queries to the
cluster, and results in the disruption of the ability to run insert overwrite
queries because the TajoWorker canât apply its statistical information to
CatalogStore. Therefore, the high-availability (HA) of TajoMaster is essential
for the high-availability of Tajo generally.</p>
+<p>Currently, TajoMaster HA provides the following elements:</p>
+<ul class="simple">
+<li>Automatic failover of TajoMaster: Even if the active TajoMaster stops, the
standby TajoMaster will become the active node.</li>
+<li>Preservation of the ongoing query in the cluster: Even if the active
TajoMaster stops, the ongoing query will still complete in the cluster.</li>
+</ul>
+<div class="section" id="terminology">
+<h2>Terminology<a class="headerlink" href="#terminology" title="Permalink to
this headline">¶</a></h2>
+<ul class="simple">
+<li>Active master: TajoMaster that is actively serving the all operation from
TajoClient and TajoWorker.</li>
+<li>Backup master: This TajoMaster waits becomes active when the Active dies
or unhealthy. Users can setup multiple back TajoMaster, and this servers
monitors the Active status to become active.</li>
+</ul>
+</div>
+<div class="section" id="configuration-file-settings">
+<h2>Configuration File Settings<a class="headerlink"
href="#configuration-file-settings" title="Permalink to this
headline">¶</a></h2>
+<p>If you want to use TajoMaster HA mode, specific your <tt class="docutils
literal"><span class="pre">tajo.master.ha.enable</span></tt> as follows:</p>
+<div class="highlight-xml"><div class="highlight"><pre><span
class="nt"><property></span>
+ <span class="nt"><name></span>tajo.master.ha.enable<span
class="nt"></name></span>
+ <span class="nt"><value></span>true<span
class="nt"></value></span>
+<span class="nt"></property></span>
+</pre></div>
+</div>
+<p>If you use HA mode, all back masters monitor the active master at 5 second
intervals. If you update this period, specific your <tt class="docutils
literal"><span class="pre">tajo.master.ha.monitor.interval</span></tt> as
follows:</p>
+<div class="highlight-xml"><div class="highlight"><pre><span
class="nt"><property></span>
+ <span class="nt"><name></span>tajo.master.ha.monitor.interval<span
class="nt"></name></span>
+ <span class="nt"><value></span>monitor interval<span
class="nt"></value></span>
+<span class="nt"></property></span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="backup-master-settings">
+<h2>Backup Master Settings<a class="headerlink" href="#backup-master-settings"
title="Permalink to this headline">¶</a></h2>
+<p>If you want to run masters with <tt class="docutils literal"><span
class="pre">start-tajo.sh</span></tt>, specific your masters in <tt
class="docutils literal"><span class="pre">conf/masters</span></tt>. The file
lists all host names of masters, one per line.By default, this file contains
the single entry <tt class="docutils literal"><span
class="pre">localhost</span></tt>. You can easily add host names of workers via
your favorite text editor.</p>
+<p>For example:</p>
+<div class="highlight-python"><pre>$ cat > conf/masters
+host1.domain.com
+host2.domain.com
+....
+
+<ctrl + d></pre>
+</div>
+<p>And then, you need to setup tarball and set configuration files on backup
masters.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p>If you want to run active master and backup master on the same host, you
may find tajo master port conflicts. To avoid this problem, you must convert
backup master primary ports to another port in <tt class="docutils
literal"><span class="pre">tajo-site.xml</span></tt> as follows:</p>
+<div class="highlight-xml"><div class="highlight"><pre><span
class="nt"><property></span>
+ <span class="nt"><name></span>tajo.master.umbilical-rpc.address<span
class="nt"></name></span>
+ <span class="nt"><value></span>localhost:36001<span
class="nt"></value></span>
+ <span class="nt"><description></span>The default port is 26001.<span
class="nt"></description></span>
+<span class="nt"></property></span>
+
+<span class="nt"><property></span>
+ <span class="nt"><name></span>tajo.master.client-rpc.address<span
class="nt"></name></span>
+ <span class="nt"><value></span>localhost:36002<span
class="nt"></value></span>
+ <span class="nt"><description></span>The default port is 26002.<span
class="nt"></description></span>
+<span class="nt"></property></span>
+
+<span class="nt"><property></span>
+ <span class="nt"><name></span>tajo.resource-tracker.rpc.address<span
class="nt"></name></span>
+ <span class="nt"><value></span>localhost:36003<span
class="nt"></value></span>
+ <span class="nt"><description></span>The default port is 26003.<span
class="nt"></description></span>
+ <span class="nt"></property></span>
+
+<span class="nt"><property></span>
+ <span class="nt"><name></span>tajo.catalog.client-rpc.address<span
class="nt"></name></span>
+ <span class="nt"><value></span>localhost:36005<span
class="nt"></value></span>
+ <span class="nt"><description></span>The default port is 26005.<span
class="nt"></description></span>
+<span class="nt"></property></span>
+
+<span class="nt"><property></span>
+ <span class="nt"><name></span>tajo.master.info-http.address<span
class="nt"></name></span>
+ <span class="nt"><value></span>0.0.0.0:36080<span
class="nt"></value></span>
+ <span class="nt"><description></span>The default port is 26080.<span
class="nt"></description></span>
+<span class="nt"></property></span>
+</pre></div>
+</div>
+<p class="last">And you need to convert <tt class="docutils literal"><span
class="pre">TAJO_PID_DIR</span></tt> to another directory in <tt
class="docutils literal"><span class="pre">tajo-env.sh</span></tt>.</p>
+</div>
+</div>
+<div class="section" id="launch-a-tajo-cluster">
+<h2>Launch a Tajo cluster<a class="headerlink" href="#launch-a-tajo-cluster"
title="Permalink to this headline">¶</a></h2>
+<p>Then, execute <tt class="docutils literal"><span
class="pre">start-tajo.sh</span></tt></p>
+<div class="highlight-python"><pre>$ $TAJO_HOME/bin/start-tajo.sh</pre>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">You can’t use HA mode in DerbyStore. Currently, just one
tajo master invoke the derby. If another master try to invoke it, it never run
itself. Also, if you set another catalog uri for backup master, it is a
incorrect configuration. Because they are unequal in every way.</p>
+</div>
+</div>
+<div class="section" id="administration-ha-state">
+<h2>Administration HA state<a class="headerlink"
href="#administration-ha-state" title="Permalink to this headline">¶</a></h2>
+<p>If you want to transit any backup master to active master, execute <tt
class="docutils literal"><span class="pre">tajo</span> <span
class="pre">hadmin</span> <span class="pre">-transitionToActive</span></tt></p>
+<div class="highlight-python"><pre>$ $TAJO_HOME/bin/tajo haadmin
-transitionToActive <target tajo.master.umbilical-rpc.address></pre>
+</div>
+<p>If you want to transit any active master to backup master, execute <tt
class="docutils literal"><span class="pre">tajo</span> <span
class="pre">hadmin</span> <span class="pre">-transitionToBackup</span></tt></p>
+<div class="highlight-python"><pre>$ $TAJO_HOME/bin/tajo haadmin
-transitionToBackup <target tajo.master.umbilical-rpc.address></pre>
+</div>
+<p>If you want to find the state of any master, execute <tt class="docutils
literal"><span class="pre">tajo</span> <span class="pre">hadmin</span> <span
class="pre">-getState</span></tt></p>
+<div class="highlight-python"><pre>$ $TAJO_HOME/bin/tajo haadmin -getState
<target tajo.master.umbilical-rpc.address></pre>
+</div>
+<p>If you want to initiate HA information, execute <tt class="docutils
literal"><span class="pre">tajo</span> <span class="pre">haadmin</span> <span
class="pre">-formatHA</span></tt></p>
+<div class="highlight-python"><pre>$ $TAJO_HOME/bin/tajo haadmin
-formatHA</pre>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Before format HA, you must shutdown the tajo cluster.</p>
+</div>
+</div>
+</div>
+
+
+ </div>
+ <footer>
+
+ <div class="rst-footer-buttons" role="navigation" aria-label="footer
navigation">
+
+ <a href="../cli.html" class="btn btn-neutral float-right" title="Tajo
Shell (TSQL)"/>Next <span class="fa fa-arrow-circle-right"></span></a>
+
+
+ <a href="configuration_defaults.html" class="btn btn-neutral"
title="Configuration Defaults"><span class="fa fa-arrow-circle-left"></span>
Previous</a>
+
+ </div>
+
+
+ <hr/>
+
+ <div role="contentinfo">
+ <p>
+ © Copyright 2014, Apache Tajo Team.
+ </p>
+ </div>
+
+ <a href="https://github.com/snide/sphinx_rtd_theme">Sphinx theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>
+</footer>
+ </div>
+ </div>
+
+ </section>
+
+ </div>
+
+
+
+
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT:'../',
+ VERSION:'0.8.0',
+ COLLAPSE_INDEX:false,
+ FILE_SUFFIX:'.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+
+
+
+
+
+ <script type="text/javascript" src="../_static/js/theme.js"></script>
+
+
+
+
+ <script type="text/javascript">
+ jQuery(function () {
+ SphinxRtdTheme.StickyNav.enable();
+ });
+ </script>
+
+
+</body>
+</html>
\ No newline at end of file