イフブロ

イフブロ

インフラエンジニアのブログ

EMR Jupyterhub の Notebookファイルはどこに保管されているのか

備忘録的な

https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-jupyterhub-considerations.html に書いてあるとおりJupyterHubでは 永続化設定をしてない場合自分でcronで保存してね。との事。

どこにあるかは以下の手順で確認できる。

ssh hadoop@emr-instance
sudo docker inspect jupyterhub

[
    {
        "Id": "b12c789d1e2044c88cbe33e4ce1c6521b0662611cb6eec80e75f9c5b4c046104",
        "Created": "2020-02-29T06:38:28.166983484Z",
        "Path": "tini",
        "Args": [
            "-g",
            "--",
            "jupyterhub"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 14294,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2020-02-29T06:38:28.76309949Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:e28d92801f6ee34cfdd847563529d32c8d17f507229e55fff446a8257fa586a5",
        "ResolvConfPath": "/mnt/var/lib/docker/containers/b12c789d1e2044c88cbe33e4ce1c6521b0662611cb6eec80e75f9c5b4c046104/resolv.conf",
        "HostnamePath": "/mnt/var/lib/docker/containers/b12c789d1e2044c88cbe33e4ce1c6521b0662611cb6eec80e75f9c5b4c046104/hostname",
        "HostsPath": "/mnt/var/lib/docker/containers/b12c789d1e2044c88cbe33e4ce1c6521b0662611cb6eec80e75f9c5b4c046104/hosts",
        "LogPath": "/mnt/var/lib/docker/containers/b12c789d1e2044c88cbe33e4ce1c6521b0662611cb6eec80e75f9c5b4c046104/b12c789d1e2044c88cbe33e4ce1c6521b0662611cb6eec80e75f9c5b4c046104-json.log",
        "Name": "/jupyterhub",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/var/lib/jupyter/home:/home",
                "/var/log/jupyter:/var/log/jupyter",
                "/etc/jupyter:/etc/jupyter"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "9443/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "9443"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "on-failure",
                "MaximumRetryCount": 5
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": true,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": [
                "label=disable"
            ],
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": [
                {
                    "Name": "nofile",
                    "Hard": 4096,
                    "Soft": 1024
                }
            ],
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": null,
            "ReadonlyPaths": null
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/mnt/var/lib/docker/overlay2/3c409c255334c665d2fc2e5359d4ab2dc53b58fc1dc56e5498afa68f42de8d32-init/diff:/mnt/var/lib/docker/overlay2/39f4bd5781917f9d41114bf008920ff88c846cc0b06d38005bc063973290c7e0/diff:/mnt/var/lib/docker/overlay2/857c34bf8080d83361fab861945ef96ef3d58e40085bb21d9f0d9325a48a6305/diff:/mnt/var/lib/docker/overlay2/fe9149e14de47b33a211e1b32df6b02f220080625acb425ea7f330600379c62b/diff:/mnt/var/lib/docker/overlay2/bf9c0d7847f6987e689efbd802c5fb96db72b6175c45d39c99827da566e55766/diff:/mnt/var/lib/docker/overlay2/867648c5f6c13cd74d76407d92d14a2d5ca6e2d31712d8340cb9ccea06d3816c/diff:/mnt/var/lib/docker/overlay2/5806e4f02408ee9510ca8629fb47a8fa970b03d54c1ea1e40206f587fa5d90a1/diff:/mnt/var/lib/docker/overlay2/d96f9f7ee61d8632a67fb5740a76c6598c74b2a691179f4879e8e52359864452/diff:/mnt/var/lib/docker/overlay2/cbf452e49c19178f236db5d9a1921ce72c28d1cd11b2719598acb68c0e0495ae/diff:/mnt/var/lib/docker/overlay2/4a60b046e9c871dc35dc6cd141f8d632e59ae0461075ac5861f57719f3b9c014/diff:/mnt/var/lib/docker/overlay2/05859c9d7b3bf11b5fdb19e42ab7846f3c182412f3610d746e1568df9ba6d883/diff:/mnt/var/lib/docker/overlay2/c16bfb4bb3c63de845c05969a715d90582dce39b2ee3955f37ae4d47cd9f3cb9/diff:/mnt/var/lib/docker/overlay2/183edb636d260620640b13a8a1dce857ee1190f5484f453083ba723924da1977/diff:/mnt/var/lib/docker/overlay2/51e07d9f302c872dc477df04a31d09d0b033c6b138ed33537b96583f39b837c7/diff:/mnt/var/lib/docker/overlay2/9929f425eea29ae3c1c197bbae93896324059d582e95ce03f60a21ef88b9b2c7/diff:/mnt/var/lib/docker/overlay2/e796d35fdeb59ec98eeac8593b9a722bfaa271df07c0af02e1b0b79f519f5f22/diff:/mnt/var/lib/docker/overlay2/733f357bc2e355c2cbf8a1500bf590527764cd7372cda87376d9cf92df7b0a33/diff:/mnt/var/lib/docker/overlay2/02431a6e441851d9fbc6b677d27c4920e8231d9c1cdc9dd19b60989262b361d0/diff:/mnt/var/lib/docker/overlay2/deae1599d76644be7ac6f783fdc5d17970188a914e17287451eeee6065915dfb/diff:/mnt/var/lib/docker/overlay2/fb17b9c311885dd69e3e622053f82d9edec84a7d8b5bb77dfaa7d6e7f19cc550/diff:/mnt/var/lib/docker/overlay2/0043c53aeb70f0eb72506c4e67a1e73b4febeaca6e6389f5dc150d52667a4930/diff:/mnt/var/lib/docker/overlay2/1f812f8dd3a1efc9800be3f0f019604fbe8eb70e1a5edee3f5699779c01bed07/diff:/mnt/var/lib/docker/overlay2/9c87c6693667a6eb38042703d13e7ca3d286bc892c4f389d1597132c5356c1d5/diff:/mnt/var/lib/docker/overlay2/c33b8002784d8ef74734fd613515eaa82e1f0e841300a7a2d58a51781126b7ec/diff:/mnt/var/lib/docker/overlay2/24a64683b2a24a46f0bab5f4a28bb383f4319b044a53989eb7652d38fc103a9b/diff:/mnt/var/lib/docker/overlay2/04cfa3a48a64d796a596ffbf1bfbd13c0cbab0583cc1215e51e9d2162a84300b/diff:/mnt/var/lib/docker/overlay2/4d620421254a6508dd468f2edcc79e78d5dd20c7c25b5d921f96358fa38f0330/diff:/mnt/var/lib/docker/overlay2/5aa371fde9e9cee618ebec6586f44700cddedfda6aae989dbfb306c3b9f714a1/diff:/mnt/var/lib/docker/overlay2/e0ce97f1fba551ea8aeb2834b88334f6ffffee738bd6a2db05a44e5b1b155081/diff:/mnt/var/lib/docker/overlay2/c61fa0f9ed68cf8168b74ff8d3aa27465427c8f783988423b17339503606b44a/diff:/mnt/var/lib/docker/overlay2/62dfd7f2af71bce01b62ffaebe1375a8843610b0425e15de6fcb073a4267786e/diff:/mnt/var/lib/docker/overlay2/67ccfe8ee3a6ef3392ed168b944cb73c2359c6ed68c0ed0004f9134acce5392d/diff:/mnt/var/lib/docker/overlay2/2692821e480f801b2936b8f6bf7c605ca53a43b3b710520314616abf0febccb4/diff:/mnt/var/lib/docker/overlay2/135d286d9ce8149513fa0858b9d243cc569adf4316d05e35a48a4abe2b49914a/diff:/mnt/var/lib/docker/overlay2/77f6d080195f750b7c570103d00e6edca01aa0e129d34182485a6f3bc0acda15/diff",
                "MergedDir": "/mnt/var/lib/docker/overlay2/3c409c255334c665d2fc2e5359d4ab2dc53b58fc1dc56e5498afa68f42de8d32/merged",
                "UpperDir": "/mnt/var/lib/docker/overlay2/3c409c255334c665d2fc2e5359d4ab2dc53b58fc1dc56e5498afa68f42de8d32/diff",
                "WorkDir": "/mnt/var/lib/docker/overlay2/3c409c255334c665d2fc2e5359d4ab2dc53b58fc1dc56e5498afa68f42de8d32/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/etc/jupyter",
                "Destination": "/etc/jupyter",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/lib/jupyter/home",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/log/jupyter",
                "Destination": "/var/log/jupyter",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "jupyterhub",
            "Domainname": "",
            "User": "root",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "8888/tcp": {},
                "9443/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": false,
            "Env": [
                "GRANT_SUDO=yes",
                "PATH=/usr/local/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "DEBIAN_FRONTEND=noninteractive",
                "CONDA_DIR=/opt/conda",
                "SHELL=/bin/bash",
                "NB_USER=jovyan",
                "NB_UID=1000",
                "NB_GID=100",
                "LC_ALL=en_US.UTF-8",
                "LANG=en_US.UTF-8",
                "LANGUAGE=en_US.UTF-8",
                "HOME=/home/jovyan",
                "MINICONDA_VERSION=4.5.4",
                "SPARKMAGIC_VERSION=0.12.*",
                "SPARKMAGIC_KERNEL_DIRECTORY=/opt/conda/lib/python3.6/site-packages/sparkmagic/kernels",
                "S3CONTENTS_VERSION=0.1.13",
                "JUPYTERLAB_VERSION=1.0*",
                "JUPYTERHUB_VERSION=1.0.0",
                "NOTEBOOK_VERSION=5.7.8"
            ],
            "Cmd": [
                "jupyterhub"
            ],
            "ArgsEscaped": true,
            "Image": "emr/jupyter-notebook:5.7.8",
            "Volumes": null,
            "WorkingDir": "/home/jovyan",
            "Entrypoint": [
                "tini",
                "-g",
                "--"
            ],
            "OnBuild": null,
            "Labels": {
                "maintainer": "Jupyter Project <jupyter@googlegroups.com>"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "ac24e8c71881d50abd1103d2192db28be8b0732f7e0f1ba6447a36157cb4f549",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "8888/tcp": null,
                "9443/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "9443"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/ac24e8c71881",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "0800d2ca31c81d0f8a9966f48f09200cdb4a26d6fcf55dc588927a4d38121aca",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "1a2bef57a5199b3ff6964165525126aacb884ba633acf66d47278638986762bc",
                    "EndpointID": "0800d2ca31c81d0f8a9966f48f09200cdb4a26d6fcf55dc588927a4d38121aca",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                },
                "emr-docker-bridge": {
                    "IPAMConfig": {},
                    "Links": null,
                    "Aliases": [
                        "b12c789d1e20"
                    ],
                    "NetworkID": "93e00b6aee32f3204e8f99ce7b342f0fabc4784ea7d643a3f0be66ad68a1935c",
                    "EndpointID": "af289e1dda568046993107aadddbcfc19a44d87f50d7b48b011e8b87822db563",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
        "HostConfig": {
            "Binds": [
                "/var/lib/jupyter/home:/home",
                "/var/log/jupyter:/var/log/jupyter",
                "/etc/jupyter:/etc/jupyter"
            ],

/var/lib/jupyter/home に保存されていました。