在Cloudera Docker QuickStart上访问Hue

18
我已经按照这里的说明使用Docker安装了Cloudera Quickstart。

https://blog.cloudera.com/blog/2015/12/docker-is-the-new-quickstart-option-for-apache-hadoop-and-cloudera/

docker run --privileged=true --hostname=quickstart.cloudera -p 7180 -p 8888 -t -i 9f3ab06c7554 /usr/bin/docker-quickstart

你可以看到我正在进行端口映射,使用的参数是-p 7180-p 8888
当容器成功启动后,我发现hue服务启动失败了。但是我手动运行了sudo service hue restart,它显示为OK。
现在我运行了
/home/cloudera/cloudera-manager --express --force

这个命令执行成功了,我收到了一条消息,要求使用http://cloudera.quickstart:7180连接到CM。
现在,在我的主机上运行docker-machine env default命令,我可以看到输出。
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/abhishek.srivastava/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"

现在在我的主机浏览器上,我执行了以下操作

http://192.168.99.100:7180
http://192.168.99.100:8888
http://quickstart.cloudera:7180
http://quickstart.cloudera:8888

但是所有东西都无法连接到任何页面。即使进行了端口转发...我仍然无法从主机访问Cloudera Manager或HUE UI。
我正在使用OSX。
我还进入了VirtualBox管理器UI并选择了默认VM。我进入设置->网络->端口转发。并进行了以下条目。

enter image description here

但我仍然无法访问Cloudera Manager和HUE....

从我的回答中,您是否意识到在Mac或Windows上使用Docker快速启动映像没有真正的优势?它仍然是虚拟化的,您需要解决所有与此相关的内存和网络问题。 - OneCricketeer
Docker-machine是否会编辑hosts文件以便通过主机名访问它?无论如何,尝试在docker命令中使用端口映射。例如:-p 7180:7180 - OneCricketeer
6个回答

6
当您使用-p 7180-p 8888运行docker时,它会在Windows主机上分配一个随机端口。但是,如果您使用-p 7180:7180-p 8888:8888,假设这些端口在主机上空闲,它将直接映射它们。
否则,您可以执行docker ps,它会显示它将7180和8888映射到哪些端口。然后在您的主机浏览器中输入
http://192.168.99.100:<docker-allocated-port>

替代

http://192.168.99.100:7180

如果所有的东西都在你的本地机器上,你就不需要进行端口转发。


5

由于您正在虚拟机中运行docker machine,因此需要在VirtualBox上打开端口。

您可以从VirtualBox中的网络适配器面板中的端口转发按钮进行操作。

设置 > 网络 > 高级 > 端口转发

您应该已经看到一个SSH端口已经被转发用于docker。只需添加任何类似于该端口的其他端口即可。

并且这里列出了CDH使用的所有端口列表。当然您不需要全部。我建议至少使用Cloudera Manager(7180),namenode和datanode UI(50070 & 50075),以及作业服务器,如mapreduce(8088,8042 & 10020)或spark(18080 & 18081)。我个人不使用它,但是Hue是8888。


你知道我需要打开哪些端口以及如何打开吗? - Knows Not Much
实际上这对我没有起作用。我再次更新我的问题以突出我所采取的步骤。 - Knows Not Much
嗯,也许那个端口在 Dockerfile 中没有暴露出来。虽然我找不到它。 - OneCricketeer

2

容器启动后重新启动Hue

如果可以的话,将docker的内存增加到8GB。否则,至少设置为4GB。 让hue在启动容器时失败。 之后,附加到docker容器并访问其shell以运行以下命令:

停止Hue服务器:

$ sudo service hue stop

启动Hue服务器:

$ sudo service hue start

这对我在6GB分配和重新启动Hue服务上起作用了。只是试错的基础。 - deo

2

我也遇到了同样的问题。在VirtualBox中增加CPU数量后,我成功地启动了Hue。我之前也增加了内存量。原来的CPU是1个,现在改为了3个。

虚拟机CPU设置截图 -> 点击这里


2

我在这里遇到了同样的问题,并根据上面的评论和帖子解决了。上面提到了两个问题:

  1. Hue启动失败。在我的情况下,这是由于默认docker VM设置分配的资源有限造成的。根据@Ronald Teo的回答,进入

    VirtualBox -> 'default'[your docker-machine name] -> Settings -> System

    ,将基本内存增加到8192MB,并将处理器至少增加到3个,已经解决了我的问题。

  2. 无法从主机访问Hue。根据原始帖子,尝试使用docker run --privileged=true --hostname=quickstart.cloudera -p 7180:7180 -p 8888:8888 -t -i 9f3ab06c7554 /usr/bin/docker-quickstart应该可以解决此问题。


1
我只是想自己启动Cloudera快速入门docker,结果发现这似乎是解决问题的方法:

http://127.0.0.1:8888

请注意使用http而不是https,并且我使用127.0.0.1(或localhost) 请注意,这假定内部的8888端口映射到您的8888端口。
假设docker inspect返回类似于以下内容
            "8888/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "32769"
                }

然后你会想要

http://127.0.0.1:32769


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接