{ "info": { "author": "Yassine Azzouz", "author_email": "yassine.azzouz@agmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "[![pypi](https://badge.fury.io/py/cerastes.svg)](https://badge.fury.io/py/cerastes)\n\nCerastes\n==================================\n\nCerastes is a pure python Client and library for Hadoop Yarn. The client uses RPC protobuf for communicating with Yarn services and provides a convinient python API for performing administration tasks on Yarn.\n\nFunctionalities\n--------\n\n\n* Implement ResourceManager Administration Protocol\n* Implement ResourceManager Application Management Protocol\n* Implement HistoryServer Applications monitoring Protocol\n* Support both secure (Kerberos,Token) and insecure clusters\n* Supports HA cluster and implements HA ResourceManager Administration Tasks\n* Command line interface to interactively interact with YARN RCP apis on a python shell.\n* Works on Hadoop 2.0.0, tested mainly against CDH 5.x\n\n\nGetting started\n---------------\n\nCerastes releases are available through pypi at \n\nTo install simply run:\n\n```bash\n $ pip install cerastes\n```\n\nUSAGE\n-------\n\nCerastes provides different Clients depending on the PRC Endpoint to communicate with, currently the supported client types are:\n* YarnAdminClient : Yarn Resource Manager administration client (non HA).\n* YarnHARMClient : Yarn Resource Manager HA administration client, this client only implements the HAService protocol and is limited to one Ressource Manager.\n* YarnAdminHAClient: Yarn Resource Manager HA administration client, this client implements all yarn RM administration tasks and HA tasks (like failover).\n* YarnRMApplicationClient: Yarn Resource Manager Application protocol, perform yarn applications management tasks. \n\n\nCurrently the interactive python shell client is the easiest way to use cerastes:\n\n```python \n>>> import cerastes.client as client\n>>> RMCLIENT = client.YarnAdminClient(host=\"nn.hadoop.localdomain\", port= 8033, use_sasl=True, yarn_rm_principal=\"yarn@HADOOP.LOCALDOMAIN\", version=9)\n>>> RMCLIENT.get_groups_for_user(\"yassine.azzouz\")\n>>> RMCLIENT.add_to_cluster_node_labels('test')\n>>>\n>>> HACLIENT = client.YarnAdminHAClient([{'host': \"nn.hadoop.localdomain\", 'port': 8033},{'host': \"nn02.hadoop.localdomain\", 'port': 8033}], use_sasl=True, yarn_rm_principal=\"yarn@HADOOP.LOCALDOMAIN\", version=9)\n>>> HACLIENT.explicit_failover(force=True)\nTrue\n>>>\n>>> CLIENT = client.YarnHAAdminClient(host=\"nn.hadoop.localdomain\", port=8033, use_sasl=True, yarn_rm_principal=\"yarn/nn.hadoop.localdomain@HADOOP.LOCALDOMAIN\", version=9)\n>>> CLIENT.get_service_status()\n{'state': 'ACTIVE', 'readyToBecomeActive': True}\n>>>\n>>> APPCLIENT = client.YarnRMApplicationClient([{'host': \"nn.hadoop.localdomain\", 'port': 8032}], use_sasl=True, yarn_rm_principal=\"yarn/nn.hadoop.localdomain@HADOOP.LOCALDOMAIN\", version=9)\n>>> APPCLIENT.get_applications()\n\n```\n\nContributing\n------------\n\nI'd love to hear what you think about cerastes and appreciate any idea or suggestion, Pull requests are also very welcome!\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yassineazzouz/cerastes", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "cerastes", "package_url": "https://pypi.org/project/cerastes/", "platform": "", "project_url": "https://pypi.org/project/cerastes/", "project_urls": { "Homepage": "https://github.com/yassineazzouz/cerastes" }, "release_url": "https://pypi.org/project/cerastes/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "", "version": "1.1.0" }, "last_serial": 3167534, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0d3b6347f9c1355a411944569b86faaa", "sha256": "dac08de6dd949c14540239c43d907101329503f7c7c1fe0ba5bc452c0dae2e50" }, "downloads": -1, "filename": "cerastes-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0d3b6347f9c1355a411944569b86faaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47346, "upload_time": "2017-03-06T11:19:06", "url": "https://files.pythonhosted.org/packages/fd/34/8ba9fda28466006d65b28628db568fcf565f78de65090ed20c60daa220f1/cerastes-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "58a2a3ff47450fbd3dcbc0a8785b29c8", "sha256": "25795519689cf855e46eb706c57d143be3a1db5c554e647c8910f8f35e45a375" }, "downloads": -1, "filename": "cerastes-1.1.0.tar.gz", "has_sig": false, "md5_digest": "58a2a3ff47450fbd3dcbc0a8785b29c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71375, "upload_time": "2017-09-12T09:36:38", "url": "https://files.pythonhosted.org/packages/88/ea/a0f93a109106f53428ded2ad63be7095dabc7dc477676b07a13d1f981979/cerastes-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "58a2a3ff47450fbd3dcbc0a8785b29c8", "sha256": "25795519689cf855e46eb706c57d143be3a1db5c554e647c8910f8f35e45a375" }, "downloads": -1, "filename": "cerastes-1.1.0.tar.gz", "has_sig": false, "md5_digest": "58a2a3ff47450fbd3dcbc0a8785b29c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71375, "upload_time": "2017-09-12T09:36:38", "url": "https://files.pythonhosted.org/packages/88/ea/a0f93a109106f53428ded2ad63be7095dabc7dc477676b07a13d1f981979/cerastes-1.1.0.tar.gz" } ] }