<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="processes">

  <title>Starting Impala</title>
  <prolog>
    <metadata>
      <data name="Category" value="Starting and Stopping"/>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Administrators"/>
      <data name="Category" value="Operators"/>
    </metadata>
  </prolog>

  <conbody>

    <p rev="1.2">
      <indexterm audience="hidden">state store</indexterm>
      <indexterm audience="hidden">starting services</indexterm>
      <indexterm audience="hidden">services</indexterm>
      To activate Impala if it is installed but not yet started:
    </p>

    <ol>
      <li>
        Set any necessary configuration options for the Impala services. See
        <xref href="impala_config_options.xml#config_options"/> for details.
      </li>

      <li>
        Start one instance of the Impala statestore. The statestore helps Impala to distribute work efficiently,
        and to continue running in the event of availability problems for other Impala nodes. If the statestore
        becomes unavailable, Impala continues to function.
      </li>

      <li>
        Start one instance of the Impala catalog service.
      </li>

      <li> Start the main Impala daemon services. </li>
    </ol>

    <p>
      Once Impala is running, you can conduct interactive experiments using the instructions in
      <xref href="impala_tutorial.xml#tutorial"/> and try <xref href="impala_impala_shell.xml#impala_shell"/>.
    </p>

    <p outputclass="toc inpage"/>
  </conbody>

  <concept id="starting_via_cmdline">

    <title>Starting Impala from the Command Line</title>

    <conbody>

      <p>
        To start the Impala state store and Impala from the command line or a script, you can either use the
        <cmdname>service</cmdname> command or you can start the daemons directly through the
        <cmdname>impalad</cmdname>, <codeph>statestored</codeph>, and <cmdname>catalogd</cmdname> executables.
      </p>

      <p>
        Start the Impala statestore and then start <codeph>impalad</codeph> instances. You can modify the values
        the service initialization scripts use when starting the statestore and Impala by editing
        <codeph>/etc/default/impala</codeph>.
      </p>

      <p>
        Start the statestore service using a command similar to the following:
      </p>

      <p>
<codeblock>$ sudo service impala-state-store start</codeblock>
      </p>

      <p rev="1.2">
        Start the catalog service using a command similar to the following:
      </p>

<codeblock rev="1.2">$ sudo service impala-catalog start</codeblock>

      <p> Start the Impala daemon services using a command similar to the
        following: </p>

      <p>
<codeblock>$ sudo service impala-server start</codeblock>
      </p>

      <note>
        <p conref="../shared/impala_common.xml#common/udf_persistence_restriction"/>
      </note>

      <p>
        If any of the services fail to start, review:
        <ul>
          <li>
            <xref href="impala_logging.xml#logs_debug"/>
          </li>

          <li>
            <xref href="impala_troubleshooting.xml#troubleshooting"/>
          </li>
        </ul>
      </p>
    </conbody>
  </concept>
</concept>
