dask-gateway icon indicating copy to clipboard operation
dask-gateway copied to clipboard

Dask Gateway Start Up Error on EMR Cluster

Open rileyhun opened this issue 3 years ago • 0 comments

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

rileyhun avatar Nov 15 '21 06:11 rileyhun