Skip to content

colovu/docker-hadoop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hadoop

针对 Hadoop 应用的 Docker 镜像,用于提供 Hadoop 服务。

详细信息可参照:官方说明

hadoop-logo

版本信息

  • 3.3、latest
  • 3.2

镜像信息

  • 镜像地址:registry.cn-shenzhen.aliyuncs.com/colovu/hadoop:3.3

TL;DR

本镜像为 Hadoop 的基础镜像,具体使用需要参照相关 Node 的使用说明。相应 Node 主要为:

  • colovu/hadoop-datanode
  • colovu/hadoop-namenode
  • colovu/hadoop-journalnode
  • colovu/hadoop-historyserver
  • colovu/hadoop-nodemanager
  • colovu/hadoop-resourcemanager

默认对外声明

端口

  • 9000:Namenode 服务监听端口
  • 9870:Namenode Web 服务端口
  • 9864:DataNode 服务监听端口
  • 8088:ResourceManager Web 端口
  • 8188:HistoryManager Web 端口

数据卷

镜像默认提供以下数据卷定义,默认数据分别存储在自动生成的应用名对应Hadoop子目录中:

/var/log                # Hadoop 日志文件
/srv/conf               # Hadoop 配置文件
/srv/data               # Hadoop 数据文件

如果需要持久化存储相应数据,需要在宿主机建立本地目录,并在使用镜像初始化容器时进行映射。宿主机相关的目录中如果不存在对应应用的子目录或相应数据文件,则容器会在初始化时创建相应目录及文件。

容器配置

Hadoop 应用的参数通过设置环境变量的方式设置。格式为 <PREFIX>_<PROPERTY>。使用不同的前缀设置不同的配置文件,**PREFIX**与配置文件对应关系如下:

  • CORE_CONF: /srv/conf/hadoop/core-site.xml
  • HDFS_CONF: /srv/conf/hadoop/hdfs-site.xml
  • YARN_CONF : /srv/conf/hadoop/yarn-site.xml
  • HTTPFS_CONF : /srv/conf/hadoop/httpfs-site.xml
  • KMS_CONF : /srv/conf/hadoop/kms-site.xml
  • MAPRED_CONF : /srv/conf/hadoop/mapred-site.xml

容器的环境变量可通过两种方式设置:

  • 环境变量文件:将常规通用环境变量写入环境变量文件中,并在容器启动命令中指定相应环境变量文件;如使用文件hadoop.env
  • 命令行参数:对于特定变量,直接在命令行中使用-e参数指定各个变量(不适合大量变量的设置)

PROPETY:

在设置环境变量时,对特殊字符需要进行转义;使用 dockerdocker-compose 启动容器时,环境变量与设置的属性转义规则如下:

  • _ ==> . : 环境变量中的下划线会被转义为设置属性中的半角点
  • __ ==> _ : 环境变量中的双下划线会被转义为设置属性中的单下划线
  • ___ ==> - : 环境变量中的三下划线会被转义为设置属性中的中划线

例如如下的环境变量及对应设置的实际属性为:

  • CORE_CONF_fs_defaultFS=hdfs://namenode:8020 :设置配置文件core-site.xmlfs.defaultFS属性,设置后类似如下:

    <property><name>fs.defaultFS</name><value>hdfs://namenode:8020</value></property>
  • YARN_CONF_yarn_log___aggregation___enable=true :设置配置文件yarn-site.xmlyarn.log-aggregation-enable属性,设置后类似如下:

    <property><name>yarn.log-aggregation-enable</name><value>true</value></property>

预置的配置参数

以下配置参数,如果设置,将批量设置对应的配置属性:

MULTIHOMED_NETWORK

默认值:1。配置 Hadoop 集群在使用不同的网络时,可以正常访问;设置的配置文件及对应属性如下:

配置文件 /srv/conf/hadoop/hdfs-site.xml:

  • dfs.namenode.rpc-bind-host = 0.0.0.0
  • dfs.namenode.servicerpc-bind-host = 0.0.0.0
  • dfs.namenode.http-bind-host = 0.0.0.0
  • dfs.namenode.https-bind-host = 0.0.0.0

配置文件 /srv/conf/hadoop/yarn-site.xml:

  • yarn.resourcemanager.bind-host = 0.0.0.0
  • yarn.nodemanager.bind-host = 0.0.0.0

配置文件 /srv/conf/hadoop/mapred-site.xml:

  • yarn.nodemanager.bind-host = 0.0.0.0

GANGLIA_HOST

默认值:。配置 Hadoop 将对应的度量数据发送至指定的 ganglia gmond 守护服务。

可选配置参数

如果没有必要,可选配置参数可以不用定义,直接使用对应的默认值,主要包括:

ENV_DEBUG

默认值:false。设置是否输出容器调试信息。可设置为:1、true、yes

安全

容器安全

本容器默认使用应用对应的运行时用户及用户组运行应用,以加强容器的安全性。在使用非root用户运行容器时,相关的资源访问会受限;应用仅能操作镜像创建时指定的路径及数据。使用Non-root方式的容器,更适合在生产环境中使用。

更新记录

  • 3.3、latest
  • 3.2

本文原始来源 Endial Fang @ Github.com