Python client for Hadoop® YARN API
Project description
hadoop-yarn-api-python-client
Python client for Apache Hadoop® YARN API
Package documentation: yarn-api-client-python.readthedocs.org
REST API documentation: hadoop.apache.org
Compatibility
Library is compatible with Apache Hadoop 3.2.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
git clone https://github.com/toidi/hadoop-yarn-api-python-client.git
pushd hadoop-yarn-api-python-client
python setup.py install
popd
Enabling support for Kerberos/SPNEGO Security
- 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)
- 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
- First way
bin/yarn_client --help
- 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.2 Release
- Add support for Python 3.8.x
- Fix HTTPS url parsing
- Fix JSON body request APIs
- Handle YARN response with empty contents
- Better logging support
1.0.1 Release
- Passes the authorization instance to the Active RM check
- Establishes a new (working) documentation site in readthedocs.io: yarn-api-client-python.readthedocs.io
- Adds more python version (3.7 and 3.8) to test matrix and removes 2.6.
1.0.0 Release
- Major cleanup of API.
- Address/port parameters have been replaced with complete endpoints (includes scheme [e.g., http or https]).
- ResourceManager has been updated to take a list of endpoints for improved HA support.
- ResourceManager, ApplicationMaster, HistoryServer and NodeManager have been updated with methods corresponding to the latest REST API.
- pytest support on Windows has been provided.
- Documentation has been updated.
NOTE: Applications using APIs relative to releases prior to 1.0 should pin their dependency on yarn-api-client to less than 1.0 and are encouraged to update to 1.0 as soon as possible.
0.3.7 Release
- Honor configured HTTP Policy when no address is provided - enabling using of HTTPS in these cases.
0.3.6 Release
- Extend ResourceManager to allow applications to determine resource availability prior to submission.
0.3.5 Release
- Hotfix release to fix internal signature mismatch
0.3.4 Release
- More flexible support for discovering Hadoop configuration including multiple Resource Managers when HA is configured
- Properly support YARN post response codes
0.3.3 Release
- Properly set Content-Type in PUT requests
- Check for HADOOP_CONF_DIR env variable
0.3.2 Release
- Make Kerberos/SPNEGO dependency optional
0.3.1 Release
- Fix cluster_application_kill API
0.3.0 Release
- Add support for YARN endpoints protected by Kerberos/SPNEGO
- Moved to
requests
package for REST API invocation - Remove
http_con
property, as connections are now managed byrequests
package
0.2.5 Release
- Fixed History REST API
0.2.4 Release
- Added compatibility with HA enabled Resource Manager
Team
YARN API client is developed by an open community, and the current maintainers are listed below in alphabetical order:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file yarn-api-client-1.0.2.tar.gz
.
File metadata
- Download URL: yarn-api-client-1.0.2.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0.post20200119 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e04a3670fdae5c20d53fc10e125db8b000f4cb085844444eecd82b00f5e18c7a |
|
MD5 | fadba460e0e8738703a217d3cd990931 |
|
BLAKE2b-256 | b194139181730146f02b3236a7d67743cccd87bff912c3a84a7d6090e75cee74 |
File details
Details for the file yarn_api_client-1.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: yarn_api_client-1.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0.post20200119 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f31ab84f0acadeb7e28dd2b380f78fb911a99770909b923b44bfa99ce4f2f298 |
|
MD5 | efc903a08aaf686bad18e46fd5d35844 |
|
BLAKE2b-256 | fb6bad3c3840bb89e8c61b9e08bc23975faa315090c605e02815ed7d5f01b247 |