当前位置: 首页 > 知识库问答 >
问题:

无法使用gethue/hue docker映像配置HDFS地址

唐涛
2023-03-14

我试图从gethue/Hue获取色调docker图像,但它似乎忽略了我给他的配置,总是在localhost上查找HDFS,而不是我要求他查找的docker容器。

以下是一些背景:

  1. 我使用以下docker compose来启动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 *

我按照他们的指示发布色调:

首先,我在docker容器中启动一个bash提示符:

docker run -it -p 8888:8888 gethue/hue:latest bash

然后,修改desktop/conf/pseudo-distributed。ini指向正确的hadoop“节点”(在我的例子中是地址为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

然后我使用以下命令启动色调(仍在色调容器中):

./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',))

有趣的是,尽管我将其配置文件修改为指向172.30.0.2,但它仍然尝试连接到localhost(当然无法工作)。

谷歌这个问题,我发现了另一个配置文件:桌面/conf.dist/hue.ini.我试图修改这个并再次启动色调,但结果相同。

有人知道在我的情况下如何正确配置色调吗?

提前感谢你的帮助。

当做

劳伦特。

共有1个答案

阮疏珂
2023-03-14

您的一次性docker run命令与docker compose容器不在同一网络上。

您需要这样的东西,将[projectname]替换为您在中启动的文件夹docker compose up

docker run -ti -p 8888:8888 --network="[projectname]_default" gethue/hue bash

我建议在desktop/conf/下为色调容器和INI文件使用Docker Compose,您可以简单地指定

fs_defaultfs=hdfs://namenode:8020

(因为您将hostname:namenode放入了compose文件)

您还需要取消对WebHDFS行的注释,以便更改生效

所有INI文件都合并到色调的conf文件夹中

 类似资料:
  • 主要内容:HDFS 配置和启动,HDFS 使用,实例之前提到过的 Hadoop 三种模式:单机模式、伪集群模式和集群模式。 单机模式:Hadoop 仅作为库存在,可以在单计算机上执行 MapReduce 任务,仅用于开发者搭建学习和试验环境。 伪集群模式:此模式 Hadoop 将以守护进程的形式在单机运行,一般用于开发者搭建学习和试验环境。 集群模式:此模式是 Hadoop 的生产环境模式,也就是说这才是 Hadoop 真正使用的模式,用于提供生产

  • 我在我的项目中使用jsPlumb库,我有一个函数,如果endpoint图像连接,则会更改它们。当页面加载并且一切正常时,我调用它,但是当我在连接事件中调用它时,什么都不会发生。这是我的代码: 如果断开连接,我还尝试将endpoint图像更改回第一个外观,但在这种情况下,只有源endpoint更改,目标保持不变: 我错过了什么,或者我如何解决这个问题? 编辑:这里是JSFIDLE: https://

  • https://github.com/dstore-dbap/logstash-webhdfs This plugin based on WebHDFS api of Hadoop, it just POST data to WebHDFS port. So, it’s a native Ruby code. output { hadoop_webhdfs { worker

  • 目录结构 编辑: Docker图像

  • 失败:生成失败,出现异常。 错误:执行任务“:QuarkusBuild”失败。Io.Quarkus.Builder.BuildException:生成失败:由于错误导致生成失败[error]:生成步骤Io.Quarkus.Deployment.Pkg.Steps.NativeImageBuildStep#Build引发异常:java.lang.RuntimeException:未能在io.Quar

  • 我正在运行从docker hub mongo image中提取的mongo docker image 它工作正常,但当我启动Robomongo时,我无法连接到localhost。出现以下错误消息: 无法连接到本地主机27017上的MongoDB。 错误:无法访问网络 谢谢你的帮助,谢谢。 编辑:我使用以下命令解决了问题: