<commit_before>================
Deploying Trino
================

.. _requirements:

Requirements
------------

.. _requirements-linux:

Linux operating system
^^^^^^^^^^^^^^^^^^^^^^

* 64-bit required
* newer release preferred, especially when running on containers
* adequate ulimits for the user that runs the Trino process. These limits
  may depend on the specific Linux distribution you are using. The number
  of open file descriptors needed for a particular Trino instance scales
  as roughly the number of machines in the cluster, times some factor
  depending on the workload. We recommend the following limits, which can
  typically be set in ``/etc/security/limits.conf``:

  .. code-block:: text

      trino soft nofile 131072
      trino hard nofile 131072

.. _requirements-java:

Java runtime environment
^^^^^^^^^^^^^^^^^^^^^^^^

Trino requires a 64-bit version of Java 11, with a minimum required version of 11.0.11.
Earlier patch versions such as 11.0.2 do not work, nor will earlier major versions such as Java 8.
Newer major versions such as Java 12 or 13 are not supported -- they may work, but are not tested.

We recommend using `Azul Zulu <https://www.azul.com/downloads/zulu-community/>`_
as the JDK for Trino, as Trino is tested against that distribution.
Zulu is also the JDK used by the
`Trino Docker image <https://hub.docker.com/r/trinodb/trino>`_.

.. _requirements-python:

Python
^^^^^^

* version 2.6.x, 2.7.x, or 3.x
* required by the ``bin/launcher`` script only

Installing Trino
-----------------

Download the Trino server tarball, :maven_download:`server`, and unpack it.
The tarball contains a single top-level directory,
|trino_server_release|, which we call the *installation* directory.

Trino needs a *data* directory for storing logs, etc.
We recommend creating a data directory outside of the installation directory,
which allows it to be easily preserved when upgrading Trino.
<commit_msg>Add Java 17 as not supported<commit_after>================
Deploying Trino
================

.. _requirements:

Requirements
------------

.. _requirements-linux:

Linux operating system
^^^^^^^^^^^^^^^^^^^^^^

* 64-bit required
* newer release preferred, especially when running on containers
* adequate ulimits for the user that runs the Trino process. These limits
  may depend on the specific Linux distribution you are using. The number
  of open file descriptors needed for a particular Trino instance scales
  as roughly the number of machines in the cluster, times some factor
  depending on the workload. We recommend the following limits, which can
  typically be set in ``/etc/security/limits.conf``:

  .. code-block:: text

      trino soft nofile 131072
      trino hard nofile 131072

.. _requirements-java:

Java runtime environment
^^^^^^^^^^^^^^^^^^^^^^^^

Trino requires a 64-bit version of Java 11, with a minimum required version of 11.0.11.
Earlier patch versions such as 11.0.2 do not work, nor will earlier major versions such as Java 8.
Newer major versions such as Java 12 or 13, including Java 17, are not supported -- they may work, but are not tested.

We recommend using `Azul Zulu <https://www.azul.com/downloads/zulu-community/>`_
as the JDK for Trino, as Trino is tested against that distribution.
Zulu is also the JDK used by the
`Trino Docker image <https://hub.docker.com/r/trinodb/trino>`_.

.. _requirements-python:

Python
^^^^^^

* version 2.6.x, 2.7.x, or 3.x
* required by the ``bin/launcher`` script only

Installing Trino
-----------------

Download the Trino server tarball, :maven_download:`server`, and unpack it.
The tarball contains a single top-level directory,
|trino_server_release|, which we call the *installation* directory.

Trino needs a *data* directory for storing logs, etc.
We recommend creating a data directory outside of the installation directory,
which allows it to be easily preserved when upgrading Trino.

{'fraction_non_alphanumeric': 0.11857909532328137, 'fraction_numerical': 0.019933554817275746, 'mean_word_length': 3.923270440251572, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5209774', 'n_tokens_mistral': 1153, 'n_tokens_neox': 1056, 'n_words': 500}