无法使用 gethue/hue docker 图片配置 HDFS 地址
cannot configure HDFS address using gethue/hue docker image
我正在尝试从 gethue/hue 获取 Hue docker 图像,但它似乎忽略了我给他的配置并且总是在本地主机上寻找 HDFS 而不是 docker 集装箱我让他找。
这里是一些上下文:
- 我正在使用以下 docker 组合来启动 HDFS 集群:
hdfs-namenode:
image: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8
hostname: namenode
environment:
- CLUSTER_NAME=davidov
ports:
- "8020:8020"
- "50070:50070"
volumes:
- ./data/hdfs/namenode:/hadoop/dfs/name
env_file:
- ./hadoop.env
hdfs-datanode1:
image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8
depends_on:
- hdfs-namenode
links:
- hdfs-namenode:namenode
volumes:
- ./data/hdfs/datanode1:/hadoop/dfs/data
env_file:
- ./hadoop.env
这将启动来自 BigDataEurope 的图像,这些图像已经正确配置,包括:
- the activation of webhdfs (in /etc/hadoop/hdfs-site.xml):
- dfs.webhdfs.enabled set to true
- the hue proxy user (in /etc/hadoop/core-site.xml):
- hadoop.proxyuser.hue.hosts set to *
- hadoop.proxyuser.hue.groups set to *
那个,我在他们instructions之后推出hue:
首先,我在 docker 容器内启动一个 bash 提示符:
docker run -it -p 8888:8888 gethue/hue:latest bash
然后,我修改 desktop/conf/pseudo-distributed.ini 以指向正确的 hadoop "node"(在我的例子中是地址为 172.30.0.2 的 docker 容器:
[hadoop]
# Configuration for HDFS NameNode
# ------------------------------------------------------------------------
[[hdfs_clusters]]
# HA support by using HttpFs
[[[default]]]
# Enter the filesystem uri
fs_defaultfs=hdfs://172.30.0.2:8020
# NameNode logical name.
## logical_name=
# Use WebHdfs/HttpFs as the communication mechanism.
# Domain should be the NameNode or HttpFs host.
# Default port is 14000 for HttpFs.
## webhdfs_url=http://172.30.0.2:50070/webhdfs/v1
# Change this if your HDFS cluster is Kerberos-secured
## security_enabled=false
# In secure mode (HTTPS), if SSL certificates from YARN Rest APIs
# have to be verified against certificate authority
## ssl_cert_ca_verify=True
然后我使用以下命令启动 hue(仍在 hue 容器内):
./build/env/bin/hue runserver_plus 0.0.0.0:8888
然后我将浏览器指向 localhost:8888,创建一个新用户(在我的例子中是 'hdfs'),然后启动 HDFS 文件浏览器模块。然后我收到以下错误消息:
Cannot access: /user/hdfs/.
HTTPConnectionPool(host='localhost', port=50070): Max retries exceeded with url: /webhdfs/v1/user/hdfs?op=GETFILESTATUS&user.name=hue&doas=hdfs (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 99] Cannot assign requested address',))
有趣的一点是 它仍然尝试连接到 localhost(这当然不能工作),即使我修改了它配置文件指向 172.30.0.2.
谷歌搜索问题,我发现了另一个配置文件:desktop/conf.dist/hue.ini。我尝试修改这个并再次启动 hue,但结果相同。
有人知道我如何正确配置色调吗?
在此先感谢您的帮助。
此致,
洛朗
您的 one-off docker run
命令与 docker-compose 容器不在同一网络上。
您需要这样的东西,将 [projectname]
替换为您在
中启动 docker-compose up
的文件夹
docker run -ti -p 8888:8888 --network="[projectname]_default" gethue/hue bash
我建议对 Hue 容器使用 Docker Compose,对 desktop/conf/
下的 INI 文件使用卷挂载,您可以简单地指定
fs_defaultfs=hdfs://namenode:8020
(因为你把 hostname: namenode
放在了撰写文件中)
您还需要取消注释 WebHDFS 行以使您的更改生效
Hue
的所有 INI 文件都合并到 conf
文件夹中
我正在尝试从 gethue/hue 获取 Hue docker 图像,但它似乎忽略了我给他的配置并且总是在本地主机上寻找 HDFS 而不是 docker 集装箱我让他找。
这里是一些上下文:
- 我正在使用以下 docker 组合来启动 HDFS 集群:
hdfs-namenode: image: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8 hostname: namenode environment: - CLUSTER_NAME=davidov ports: - "8020:8020" - "50070:50070" volumes: - ./data/hdfs/namenode:/hadoop/dfs/name env_file: - ./hadoop.env hdfs-datanode1: image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 depends_on: - hdfs-namenode links: - hdfs-namenode:namenode volumes: - ./data/hdfs/datanode1:/hadoop/dfs/data env_file: - ./hadoop.env
这将启动来自 BigDataEurope 的图像,这些图像已经正确配置,包括:
- the activation of webhdfs (in /etc/hadoop/hdfs-site.xml): - dfs.webhdfs.enabled set to true - the hue proxy user (in /etc/hadoop/core-site.xml): - hadoop.proxyuser.hue.hosts set to * - hadoop.proxyuser.hue.groups set to *
那个,我在他们instructions之后推出hue:
首先,我在 docker 容器内启动一个 bash 提示符:
docker run -it -p 8888:8888 gethue/hue:latest bash
然后,我修改 desktop/conf/pseudo-distributed.ini 以指向正确的 hadoop "node"(在我的例子中是地址为 172.30.0.2 的 docker 容器:
[hadoop] # Configuration for HDFS NameNode # ------------------------------------------------------------------------ [[hdfs_clusters]] # HA support by using HttpFs [[[default]]] # Enter the filesystem uri fs_defaultfs=hdfs://172.30.0.2:8020 # NameNode logical name. ## logical_name= # Use WebHdfs/HttpFs as the communication mechanism. # Domain should be the NameNode or HttpFs host. # Default port is 14000 for HttpFs. ## webhdfs_url=http://172.30.0.2:50070/webhdfs/v1 # Change this if your HDFS cluster is Kerberos-secured ## security_enabled=false # In secure mode (HTTPS), if SSL certificates from YARN Rest APIs # have to be verified against certificate authority ## ssl_cert_ca_verify=True
然后我使用以下命令启动 hue(仍在 hue 容器内):
./build/env/bin/hue runserver_plus 0.0.0.0:8888
然后我将浏览器指向 localhost:8888,创建一个新用户(在我的例子中是 'hdfs'),然后启动 HDFS 文件浏览器模块。然后我收到以下错误消息:
Cannot access: /user/hdfs/. HTTPConnectionPool(host='localhost', port=50070): Max retries exceeded with url: /webhdfs/v1/user/hdfs?op=GETFILESTATUS&user.name=hue&doas=hdfs (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 99] Cannot assign requested address',))
有趣的一点是 它仍然尝试连接到 localhost(这当然不能工作),即使我修改了它配置文件指向 172.30.0.2.
谷歌搜索问题,我发现了另一个配置文件:desktop/conf.dist/hue.ini。我尝试修改这个并再次启动 hue,但结果相同。
有人知道我如何正确配置色调吗?
在此先感谢您的帮助。
此致,
洛朗
您的 one-off docker run
命令与 docker-compose 容器不在同一网络上。
您需要这样的东西,将 [projectname]
替换为您在
docker-compose up
的文件夹
docker run -ti -p 8888:8888 --network="[projectname]_default" gethue/hue bash
我建议对 Hue 容器使用 Docker Compose,对 desktop/conf/
下的 INI 文件使用卷挂载,您可以简单地指定
fs_defaultfs=hdfs://namenode:8020
(因为你把 hostname: namenode
放在了撰写文件中)
您还需要取消注释 WebHDFS 行以使您的更改生效
Hue
的所有 INI 文件都合并到conf
文件夹中