dask-gateway
dask-gateway copied to clipboard
Dask Gateway Start Up Error on EMR Cluster
What happened: I am trying to set up Dask Gateway on an EMR cluster following the guidelines specified here. The only difference is that I am not sure how to set up Keberos on EMR, but it says that that part is optional so I'm omitting it from my dask_gateway_config.py
. However, I am getting the following error:
[I 2021-11-15 06:44:43.894 DaskGateway] Starting dask-gateway-server - version 0.9.0
[I 2021-11-15 06:44:44.049 DaskGateway] Authenticator: 'dask_gateway_server.auth.SimpleAuthenticator'
[I 2021-11-15 06:44:44.050 DaskGateway] Backend: 'dask_gateway_server.backends.yarn.YarnBackend'
[I 2021-11-15 06:44:44.053 DaskGateway] Generating new api token for proxy
[I 2021-11-15 06:44:44.054 DaskGateway] Starting the Dask gateway proxy...
[I 2021-11-15 06:44:44.056 DaskGateway] Dask gateway proxy started
[I 2021-11-15 06:44:44.056 DaskGateway] - HTTP routes listening at http://:8000
[I 2021-11-15 06:44:44.056 DaskGateway] - Scheduler routes listening at gateway://:8000
[W 2021-11-15 06:44:44.057 Proxy] Unexpected failure fetching routing table, retrying in 0.5s: Get "http://127.0.0.1:40613/api/v1/routes": dial tcp 127.0.0.1:40613: connect: connection refused
[C 2021-11-15 06:44:44.342 DaskGateway] Failed to start gateway, shutting down
Traceback (most recent call last):
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/app.py", line 245, in main
await self.setup()
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/app.py", line 200, in setup
await self.backend.setup(self.app)
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/backends/db_base.py", line 856, in setup
await self.do_setup()
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/backends/yarn.py", line 193, in do_setup
self.skein_client = await self.async_apply(
File "/opt/dask-gateway/miniconda/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/backends/yarn.py", line 111, in <lambda>
return get_running_loop().run_in_executor(None, lambda: f(*args, **kwargs))
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/skein/core.py", line 348, in __init__
address, proc = _start_driver(security=security,
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/skein/core.py", line 185, in _start_driver
raise context.ValueError("Keytab must be specified for keytab login")
ValueError: Keytab must be specified for keytab login
[E 2021-11-15 06:44:44.344 DaskGateway] Error while shutting down:
Traceback (most recent call last):
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/app.py", line 245, in main
await self.setup()
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/app.py", line 200, in setup
await self.backend.setup(self.app)
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/backends/db_base.py", line 856, in setup
await self.do_setup()
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/backends/yarn.py", line 193, in do_setup
self.skein_client = await self.async_apply(
File "/opt/dask-gateway/miniconda/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/dask_gateway_server/backends/yarn.py", line 111, in <lambda>
return get_running_loop().run_in_executor(None, lambda: f(*args, **kwargs))
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/skein/core.py", line 348, in __init__
address, proc = _start_driver(security=security,
File "/opt/dask-gateway/miniconda/lib/python3.9/site-packages/skein/core.py", line 185, in _start_driver
raise context.ValueError("Keytab must be specified for keytab login")
ValueError: Keytab must be specified for keytab login
Anything else we need to know?:
dask_gateway_config.py
# Configure the gateway to use YARN as the backend
c.DaskGateway.backend_class = (
"dask_gateway_server.backends.yarn.YarnBackend"
)
c.SimpleAuthenticator.password = "mypassword"
c.YarnBackend.principal = "dask"
# Specify location of the archived Python environment
c.YarnClusterConfig.localize_files = {
'environment': {
'source': 'hdfs:///dask-gateway/example.tar.gz',
'visibility': 'public'
}
}
c.YarnClusterConfig.scheduler_setup = 'source environment/bin/activate'
c.YarnClusterConfig.worker_setup = 'source environment/bin/activate'
# Limit resources for a single worker
c.YarnClusterConfig.worker_memory = '4 G'
c.YarnClusterConfig.worker_cores = 2
# Specify the YARN queue to use
c.YarnClusterConfig.queue = 'dask'
Environment:
- Dask version: 2021.11.0
- Python version: 3.7.9
- Install method (conda, pip, source): conda
- EMR version: 6.2.0