Running the Cloudera Quickstart Docker Image with WSL 2 and Powershell
In my exploration of tools for data engineering and analytics I stumbled on the Cloudera Quickstart Docker Image. It appears to be a one stop shop for getting a full data environment running on your laptop - single node. It’s not suitable for processing serious data but you can use it for learning or demoing. Only problem is it is a little older and no longer supported. What a shame.
The issue was the image wouldn’t run in docker for windows. Every attempt it would exit with code 139. Now I’m not partial to windows (or any OS … maybe OpenBSD) but the laptop was issued to me with windows so I use it. A workaround would be to run a linux machine in a vm - but that just doesn’t feel right to me. Run virtualization in order to run another layer of virtualization. You understand I’m sure.
After some research I learned it is a problem with compatibility between the base image OS (cloudera quickstart docker image) and WSL 2. I believe the solution below enables a mode to emulate hyper-v. For my own sanity I’m documenting the solution here in case I ever pass down this road again.
1. Create file at
C:\Users\gmccallum\.wslconfig
2. Add these 2 lines:
[wsl2]
kernelCommandLine = vsyscall=emulate
3. Restart WSL using command:
wsl --shutdown
4. Restart Docker Desktop
5. Run the docker command to start cloudera quickstart
docker run --hostname=quickstart.cloudera --privileged=true -t -i -v /Users/gmccallum/cloudera-files:/cloudera-files --publish-all=true -p 8888:8888 -p 80:80 cloudera/quickstart /usr/bin/docker-quickstart
Note. This has to be run in powershell. Didn’t work for me from git bash.