mirror of
https://github.com/apache/impala.git
synced 2026-02-02 06:00:36 -05:00
Change-Id: I7a06c94b397c872636d2ecf68cc6a2e193a3b047 Reviewed-on: http://gerrit.cloudera.org:8080/11637 Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Reviewed-by: Bikramjeet Vig <bikramjeet.vig@cloudera.com>
246 lines
10 KiB
XML
246 lines
10 KiB
XML
<?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 rev="1.2.1" id="timeouts">
|
|
|
|
<title>Setting Timeout Periods for Daemons, Queries, and Sessions</title>
|
|
|
|
<titlealts audience="PDF">
|
|
|
|
<navtitle>Setting Timeouts</navtitle>
|
|
|
|
</titlealts>
|
|
|
|
<prolog>
|
|
<metadata>
|
|
<data name="Category" value="Impala"/>
|
|
<data name="Category" value="Administrators"/>
|
|
<data name="Category" value="Scheduling"/>
|
|
<data name="Category" value="Scalability"/>
|
|
</metadata>
|
|
</prolog>
|
|
|
|
<conbody>
|
|
|
|
<p>
|
|
Depending on how busy your <keyword keyref="distro"/> cluster is, you might increase or decrease various timeout
|
|
values. Increase timeouts if Impala is cancelling operations prematurely, when the system
|
|
is responding slower than usual but the operations are still successful if given extra
|
|
time. Decrease timeouts if operations are idle or hanging for long periods, and the idle
|
|
or hung operations are consuming resources and reducing concurrency.
|
|
</p>
|
|
|
|
<p outputclass="toc inpage"/>
|
|
|
|
</conbody>
|
|
|
|
<concept id="statestore_timeout">
|
|
|
|
<title>Increasing the Statestore Timeout</title>
|
|
|
|
<conbody>
|
|
|
|
<p rev="IMP-1210">
|
|
If you have an extensive Impala schema, for example with hundreds of databases, tens of
|
|
thousands of tables, and so on, you might encounter timeout errors during startup as the
|
|
Impala catalog service broadcasts metadata to all the Impala nodes using the statestore
|
|
service. To avoid such timeout errors on startup, increase the statestore timeout value
|
|
from its default of 10 seconds. Specify the timeout value using the
|
|
<codeph>-statestore_subscriber_timeout_seconds</codeph> option for the statestore
|
|
service, using the configuration instructions in
|
|
<xref href="impala_config_options.xml#config_options"/>. The symptom of this problem is
|
|
messages in the <codeph>impalad</codeph> log such as:
|
|
</p>
|
|
|
|
<codeblock>Connection with state-store lost
|
|
Trying to re-register with state-store</codeblock>
|
|
|
|
<p>
|
|
See <xref href="impala_scalability.xml#statestore_scalability"/> for more details about
|
|
statestore operation and settings on clusters with a large number of Impala-related
|
|
objects such as tables and partitions.
|
|
</p>
|
|
|
|
</conbody>
|
|
|
|
</concept>
|
|
|
|
<concept id="impalad_timeout">
|
|
|
|
<title>Setting the Idle Query and Idle Session Timeouts for impalad</title>
|
|
|
|
<conbody>
|
|
|
|
<p>
|
|
To keep long-running queries or idle sessions from tying up cluster resources, you can
|
|
set timeout intervals for both individual queries, and entire sessions.
|
|
</p>
|
|
|
|
<note conref="../shared/impala_common.xml#common/timeout_clock_blurb"/>
|
|
|
|
<p>
|
|
Use the following startup options for the <cmdname>impalad</cmdname>
|
|
daemon to specify timeout values:
|
|
</p>
|
|
|
|
<ul>
|
|
<li><codeph>--idle_query_timeout</codeph>
|
|
<p>
|
|
Specifies the time in
|
|
seconds after which an idle query is cancelled. This could be a
|
|
query whose results were all fetched but was never closed, or one
|
|
whose results were partially fetched and then the client program
|
|
stopped requesting further results. This condition is most likely to
|
|
occur in a client program using the JDBC or ODBC interfaces, rather
|
|
than in the interactive <cmdname>impala-shell</cmdname> interpreter.
|
|
Once a query is cancelled, the client program cannot retrieve any
|
|
further results from the query.
|
|
</p>
|
|
<p rev="2.0.0">
|
|
You can reduce
|
|
the idle query timeout by using the <codeph>QUERY_TIMEOUT_S</codeph>
|
|
query option. Any non-zero value specified for the
|
|
<codeph>--idle_query_timeout</codeph> startup option serves as an
|
|
upper limit for the <codeph>QUERY_TIMEOUT_S</codeph> query option.
|
|
See <xref href="impala_query_timeout_s.xml#query_timeout_s"/> about
|
|
the query option.
|
|
</p>
|
|
<p rev="2.0.0">A zero value for
|
|
<codeph>--idle_query_timeout</codeph> disables query timeouts.
|
|
</p>
|
|
<p>
|
|
Cancelled queries remain in the open state but use only the
|
|
minimal resources.
|
|
</p>
|
|
</li>
|
|
|
|
<li><codeph>--idle_session_timeout</codeph>
|
|
<p>
|
|
Specifies the time in
|
|
seconds after which an idle session expires. A session is idle when
|
|
no activity is occurring for any of the queries in that session, and
|
|
the session has not started any new queries. Once a session is
|
|
expired, you cannot issue any new query requests to it. The session
|
|
remains open, but the only operation you can perform is to close it.
|
|
</p>
|
|
<p>
|
|
The default value of 0 specifies sessions never
|
|
expire.
|
|
</p>
|
|
<p rev="2.12.0">
|
|
You can override the
|
|
<codeph>--idle_session_timeout</codeph> value with the <xref
|
|
href="impala_idle_session_timeout.xml#idle_session_timeout"/> at
|
|
the session level.
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>
|
|
For instructions on changing <cmdname>impalad</cmdname> startup options, see
|
|
<xref href="impala_config_options.xml#config_options"/>.
|
|
</p>
|
|
|
|
<note>
|
|
<p rev="IMPALA-5108">
|
|
Impala checks periodically for idle sessions and queries
|
|
to cancel. The actual idle time before cancellation might be up to 50% greater than
|
|
the specified configuration setting. For example, if the timeout setting was 60, the
|
|
session or query might be cancelled after being idle between 60 and 90 seconds.
|
|
</p>
|
|
</note>
|
|
|
|
</conbody>
|
|
|
|
</concept>
|
|
<concept id="concept_rfy_jl1_rx">
|
|
<title>Setting Timeout and Retries for Thrift Connections to the Backend
|
|
Client</title>
|
|
<conbody>
|
|
<p>Impala connections to the backend client are subject to failure in
|
|
cases when the network is momentarily overloaded. To avoid failed
|
|
queries due to transient network problems, you can configure the number
|
|
of Thrift connection retries using the following option: </p>
|
|
<ul id="ul_bj3_ql1_rx">
|
|
<li>The <codeph>--backend_client_connection_num_retries</codeph> option
|
|
specifies the number of times Impala will try connecting to the
|
|
backend client after the first connection attempt fails. By default,
|
|
<cmdname>impalad</cmdname> will attempt three re-connections before
|
|
it returns a failure. </li>
|
|
</ul>
|
|
<p>You can configure timeouts for sending and receiving data from the
|
|
backend client. Therefore, if for some reason a query hangs, instead of
|
|
waiting indefinitely for a response, Impala will terminate the
|
|
connection after a configurable timeout.</p>
|
|
<ul id="ul_vm2_2v1_rx">
|
|
<li>The <codeph>--backend_client_rpc_timeout_ms</codeph> option can be
|
|
used to specify the number of milliseconds Impala should wait for a
|
|
response from the backend client before it terminates the connection
|
|
and signals a failure. The default value for this property is 300000
|
|
milliseconds, or 5 minutes. </li>
|
|
</ul>
|
|
</conbody>
|
|
</concept>
|
|
|
|
<concept id="cancel_query">
|
|
|
|
<title>Cancelling a Query</title>
|
|
|
|
<conbody>
|
|
<p> Occasionally, an Impala query might run for an unexpectedly long time,
|
|
tying up resources in the cluster. This section describes the options to
|
|
terminate such runaway queries.</p>
|
|
</conbody>
|
|
<concept id="cancel_query_with_query_option">
|
|
<title>Setting a Time Limit on Query Execution</title>
|
|
<conbody>
|
|
<p>An Impala administrator can set a default value of the
|
|
<codeph>EXEC_TIME_LIMIT_S</codeph> query option for a resource pool.
|
|
If a user accidentally runs a large query that executes for longer
|
|
than the limit, it will be automatically terminated after the time
|
|
limit expires to free up resources. </p>
|
|
<p>You can override the default value per query or per session if you do
|
|
not want to apply the default <codeph>EXEC_TIME_LIMIT_S</codeph> value
|
|
to a specific query or a session. See <xref
|
|
href="impala_exec_time_limit_s.xml#exec_time_limit_s"/> for the
|
|
details of the query option.</p>
|
|
</conbody>
|
|
</concept>
|
|
<concept id="cancel_query_in_webUI">
|
|
<title>Interactively Cancelling a Query </title>
|
|
<conbody>
|
|
<p> You can cancel the query explicitly, independent of the timeout
|
|
period, by going into the web UI for the <cmdname>impalad</cmdname>
|
|
host (on port 25000 by default), and using the link on the
|
|
<codeph>/queries</codeph> tab to cancel the running query. </p>
|
|
<p> Various client applications let you interactively cancel queries
|
|
submitted or monitored through those applications. For example: <ul>
|
|
<li> Press <systemoutput>^C</systemoutput> in
|
|
<cmdname>impala-shell</cmdname>. </li>
|
|
<li> Click <b>Cancel</b> from the <b>Watch</b>page in Hue. </li>
|
|
</ul>
|
|
</p>
|
|
</conbody>
|
|
</concept>
|
|
|
|
</concept>
|
|
|
|
</concept>
|