You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by bl...@apache.org on 2014/09/24 04:51:24 UTC

svn commit: r1627196 - /tajo/site/docs/current/configuration/ha_configuration.html

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 &mdash; 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>
+      &nbsp;
+    </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> &raquo;</li>
+      
+          <li><a href="../configuration.html">Configuration</a> &raquo;</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">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.master.ha.enable<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>true<span class="nt">&lt;/value&gt;</span>
+<span class="nt">&lt;/property&gt;</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">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.master.ha.monitor.interval<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>monitor interval<span class="nt">&lt;/value&gt;</span>
+<span class="nt">&lt;/property&gt;</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 &gt; conf/masters
+host1.domain.com
+host2.domain.com
+....
+
+&lt;ctrl + d&gt;</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">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.master.umbilical-rpc.address<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>localhost:36001<span class="nt">&lt;/value&gt;</span>
+  <span class="nt">&lt;description&gt;</span>The default port is 26001.<span class="nt">&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+
+<span class="nt">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.master.client-rpc.address<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>localhost:36002<span class="nt">&lt;/value&gt;</span>
+  <span class="nt">&lt;description&gt;</span>The default port is 26002.<span class="nt">&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+
+<span class="nt">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.resource-tracker.rpc.address<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>localhost:36003<span class="nt">&lt;/value&gt;</span>
+  <span class="nt">&lt;description&gt;</span>The default port is 26003.<span class="nt">&lt;/description&gt;</span>
+  <span class="nt">&lt;/property&gt;</span>
+
+<span class="nt">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.catalog.client-rpc.address<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>localhost:36005<span class="nt">&lt;/value&gt;</span>
+  <span class="nt">&lt;description&gt;</span>The default port is 26005.<span class="nt">&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</span>
+
+<span class="nt">&lt;property&gt;</span>
+  <span class="nt">&lt;name&gt;</span>tajo.master.info-http.address<span class="nt">&lt;/name&gt;</span>
+  <span class="nt">&lt;value&gt;</span>0.0.0.0:36080<span class="nt">&lt;/value&gt;</span>
+  <span class="nt">&lt;description&gt;</span>The default port is 26080.<span class="nt">&lt;/description&gt;</span>
+<span class="nt">&lt;/property&gt;</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&#8217;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 &lt;target tajo.master.umbilical-rpc.address&gt;</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 &lt;target tajo.master.umbilical-rpc.address&gt;</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 &lt;target tajo.master.umbilical-rpc.address&gt;</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>
+        &copy; 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