gateway-experiments / hadoop-yarn-api-python-client

Python client for Hadoop® YARN API
https://yarn-api-client-python.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
110 stars 48 forks source link
hacktoberfest hadoop yarn

hadoop-yarn-api-python-client

Python client for Apache Hadoop® YARN API

Latest Version Downloads Travis CI build status Latest documentation status Test coverage

Package documentation: yarn-api-client-python.readthedocs.org

REST API documentation: hadoop.apache.org

Warning: CLI is outdated & broken. Please don't use CLI. This will be resolved in future releases.


Compatibility Matrix

yarn-api-client-python Apache Hadoop
1.0.2 3.2.1
1.0.3 3.3.0, 3.3.1

If u have version other than mentioned (or vendored variant like Hortonworks), certain APIs might be not working or have differences in implementation. If u plan to use certain API long-term, you might want to make sure its not in Alpha stage in documentation.

Installation

From PyPI

pip install yarn-api-client

From Anaconda (conda forge)

conda install -c conda-forge yarn-api-client

From source code

pip install git+https://github.com/CODAIT/hadoop-yarn-api-python-client.git

Enabling support for SimpleAuth

See example below:

from yarn_api_client.auth import SimpleAuth
from yarn_api_client.history_server import HistoryServer
auth = SimpleAuth('impersonated_account_name')
history_server = HistoryServer('https://127.0.0.2:5678', auth=auth)

Enabling support for Kerberos/SPNEGO Security

  1. First option - using requests_kerberos package

To avoid deployment issues on a non Kerberized environment, the requests_kerberos dependency is optional and needs to be explicit installed in order to enable access to YARN console protected by Kerberos/SPNEGO.

pip install requests_kerberos

From python code

from yarn_api_client.history_server import HistoryServer
from requests_kerberos import HTTPKerberosAuth
history_server = HistoryServer('https://127.0.0.2:5678', auth=HTTPKerberosAuth())

PS: You need to get valid kerberos ticket in systemwide kerberos cache before running your code, otherwise calls to kerberized environment won't go through (run kinit before proceeding to run code)

  1. Second option - using gssapi package

If you want to avoid using terminal calls, you have to perform SPNEGO handshake to retrieve ticket yourself. Full API documentation: https://pythongssapi.github.io/python-gssapi/latest/

Usage

CLI interface

Warning: CLI is outdated & broken. Please don't use CLI. This will be resolved in future releases.

  1. First way

    bin/yarn_client --help
  2. Alternative way

    python -m yarn_api_client --help

Programmatic interface

from yarn_api_client import ApplicationMaster, HistoryServer, NodeManager, ResourceManager
am = ApplicationMaster('https://127.0.0.2:5678')
app_information = am.application_information('application_id')

Changelog

1.0.3 Release

1.0.2 Release

1.0.1 Release

1.0.0 Release

0.3.7 Release

0.3.6 Release

0.3.5 Release

0.3.4 Release

0.3.3 Release

0.3.2 Release

0.3.1 Release

0.3.0 Release

0.2.5 Release

0.2.4 Release

Team

YARN API client is developed by an open community, and the current maintainers are listed below in alphabetical order: