mirror of
https://github.com/apache/impala.git
synced 2026-01-05 12:01:11 -05:00
Add a note that idle_session_timeout and idle_query_timeout might take up to 50% longer than the specified interval before cancellation occurs. Also rearrange the text a little to put QUERY_TIMEOUT_S explanation adjacent to the idle_query_timeout explanation. This results in an indentation change that makes the diff look bigger than it really is. The <note> element is the only actual added content. Change-Id: I0b19912dac1df13bfcbcb67f0bd4ed0064ad8db9 Reviewed-on: http://gerrit.cloudera.org:8080/6463 Tested-by: Impala Public Jenkins Reviewed-by: Michael Brown <mikeb@cloudera.com>
200 lines
8.1 KiB
XML
200 lines
8.1 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>
|
|
Specify the following startup options for the <cmdname>impalad</cmdname> daemon:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
The <codeph>--idle_query_timeout</codeph> option 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 the query is cancelled, the client
|
|
program cannot retrieve any further results.
|
|
</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.
|
|
A zero value for <codeph>--idle_query_timeout</codeph> disables query timeouts.
|
|
See <xref href="impala_query_timeout_s.xml#query_timeout_s"/> for details.
|
|
</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>
|
|
The <codeph>--idle_session_timeout</codeph> option specifies the time in seconds after
|
|
which an idle session is expired. 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. The default value
|
|
of 0 means that sessions never expire.
|
|
</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>
|
|
Sometimes, an Impala query might run for an unexpectedly long time, tying up resources
|
|
in the cluster. 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. For example, press <codeph>^C</codeph> in <cmdname>impala-shell</cmdname>.
|
|
</p>
|
|
|
|
</conbody>
|
|
|
|
</concept>
|
|
|
|
</concept>
|