<?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 service on one or more DataNodes, ideally on all DataNodes to maximize local
        processing and avoid network traffic due to remote reads.
      </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 service on each DataNode 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>
