Title
Create new category
Edit page index title
Edit category
Edit link
Livy 3 Limitations
Independent Livy Instances ⚠️
Impact:
Each Livy version runs as a separate process
No session sharing between Livy instances
Client applications must connect to the correct endpoint
Consideration:
Plan client routing carefully
Use load balancers if needed for each version
Document endpoint URLs for teams
Port Management
Impact:
Each Livy instance requires a unique port
Firewall rules must allow access to all ports
Client applications need port-specific configuration
Recommended Port Allocation:
Version | Port | Purpose |
|---|---|---|
3.5.5 | 8355 | Default/Production |
3.5.1 | 8351 | Compatibility Testing |
3.3.3 | 8333 | Legacy Support |
Spark Version Coupling
Impact:
Each Livy version should use its corresponding Spark version
Mixing versions can cause compatibility issues
The configuration must point to the correct Spark installation
Best Practice:
API Compatibility
Impact:
Different Livy versions may have API differences
Client applications may need version-specific code
Behavioral changes between versions
Mitigation:
Review Livy release notes for API changes
Test client applications against the target Livy version
Maintain version-specific client libraries if needed
Python2 Compatibility in Spark 3 with Livy3
Impact:
Spark 3’s PySpark code requires Python 3.
If Livy initializes a Spark 3 session using Python 2, a
SyntaxError: invalid syntaxoccurs.Spark session initialization fails because Python 2 cannot parse Python 3–only language features (e.g., type annotations like
Union[str, float]).
Error with Python 2
Mitigation / Workaround:
Configure Livy to use Python 3 by adding the following to livy3-env
Restart the Livy service after applying these changes.
Ensures both Spark driver and executors run Python 3, allowing Spark 3 sessions to start successfully.