snakebite-py3
Pure Python HDFS client
What it is and what it does
Snakebite-py3 is a pure Python HDFS client that communicates with Hadoop NameNodes and DataNodes using protobuf. It provides both a library API and a command-line tool for interacting with HDFS clusters. The package is a Python 3 fork maintained by Internet Archive, originally from Spotify, and is designed to work with modern Hadoop versions (2.2.0 and up). It supports most NameNode operations and can read data from DataNodes, with optional CRC checking during transfer (disabled by default for performance).
The library depends on protobuf for serialization and argparse for CLI argument handling. It has been tested primarily against Cloudera CDH5 and Hortonworks HDP2.0 clusters. The package is useful for Python-based applications that need direct programmatic access to HDFS without relying on shell commands.
Use it for:
- Build Python data pipelines that read or write files directly to HDFS clusters without shelling out to commands.
- Automate HDFS file management tasks (listing, checking, reading) from Python scripts in a Hadoop environment.
- Integrate HDFS access into Python applications running on or near a Hadoop cluster for data processing workflows.
- Replace shell-based HDFS access in lightweight Python tools that need to communicate with NameNodes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a pure Python HDFS client library and command-line interface for communicating with Hadoop NameNodes and reading data from DataNodes using protobuf.
Yes, if you need programmatic HDFS access from Python and are running Hadoop 2.2.0 or later (CDH5 or HDP2.0+). The package has low install friction, permissive licensing, and no known vulnerabilities. However, maintenance is aging (last release 542 days ago), so verify that it works with your specific Hadoop version before committing to production use.
Install
snakebite-py3 on PyPI
pip
pip install snakebite-py3uv
uv add snakebite-py3poetry
poetry add snakebite-py3Installing snakebite-py3
Before you install
Low install friction with only 2 runtime dependencies (protobuf and argparse). Maintenance status is aging—last release was 542 days ago—though the repository remains active with a recent commit on 2026-01-23. This is a maintained fork by Internet Archive for their CDH5 cluster needs.
License in practice
Licensed under Apache License 2.0 (permissive). You can use, modify, and distribute this package freely in commercial and private projects, with minimal restrictions.
Quickstart
pip install snakebite-py3
from snakebite.client import Client
client = Client('namenode_host', namenode_port)
for file_info in client.ls(['/path/to/file']):
print(file_info)
Requires a running Hadoop cluster; only supports Hadoop 2.2.0 and up (protocol version 9).
Verify before relying
- Whether CRC checking during transfer can be enabled without unacceptable performance impact for your use case.
- Compatibility with Hadoop versions beyond CDH5 and HDP2.0, as the description does not document tested versions.
- Current Python version support (requires_python is unspecified in the fact sheet).
- Specific port number and connection parameters for the Client API.
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — protobuf, argparse |
| Maintenance | aging — 542 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,714,136/month — #3,624 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: snakebite_py3-3.0.6-py3-none-any.whl
Keywords: hadoop, protobuf, hdfs
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
hdfsHdfsCLI provides Python bindings and a…
permissive · top 5,000 on PyPI
yarn-api-clientPython client library for querying and managing…
permissive · top 15,000 on PyPI
apache-airflow-providers-apache-hdfsIntegrates Apache Hadoop Distributed File…
permissive · top 15,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
livyA Python client for Apache Livy that enables…
permissive · top 15,000 on PyPI
qds-sdkA Python SDK for authenticating with and…
permissive · top 15,000 on PyPI
google-cloud-dataprocA Python client library for managing…
permissive · top 1,000 on PyPI
pydgraphOfficial Python client for Dgraph, a…
permissive · top 15,000 on PyPI
ClusterShellClusterShell is a Python framework for running…
copyleft · top 15,000 on PyPI
aioesphomeapiAsync Python client library for communicating…
permissive · top 5,000 on PyPI