平时搭建一套测试集群 找包 找的累死,现在使用docker搭建 cdh版本的 

1.首先在服务器上安装docker

yum install docker

2.配置国内 阿里云docker仓库服务 

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

 换成地址,重启docker服务

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://vy8pfxw7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.执行下载

docker pull cloudera/quickstart:latest

需要时间 4个g的镜像文件

3.启动

docker run --privileged=true --hostname=quickstart.cloudera -p 8020:8020 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -p 8888:8888 -t -i 4239cd2958c6 /usr/bin/docker-quickstart

docker run --privileged=true --hostname=quickstart.cloudera -p 8020:8020 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -p 8888:8888 -t -i 4239cd2958c6 /usr/bin/docker-quickstart


这条docker run命令用来启动一个名为quickstart.cloudera的Cloudera Quickstart容器,这是一个预配置的Hadoop和CDH(Cloudera Distribution Including Apache Hadoop)环境,用于快速搭建大数据处理平台。下面是对命令中各个部分的详细解释:

docker run:这是启动一个新容器的Docker命令。

--privileged=true:此标志授予容器额外的权限,使其能够访问主机的设备和资源,比如网络设备和硬件中断。这在运行某些需要直接访问底层硬件的软件时很有用,但同时也增加了安全风险。

--hostname=quickstart.cloudera:设置容器的主机名,这在容器内部的网络识别和配置中非常重要。

-p 8020:8020,-p 7180:7180...-p 8888:8888:这一系列-p标志用于端口映射,将容器内的端口映射到宿主机的相应端口。例如,-p 8020:8020意味着容器内的8020端口将被映射到宿主机的8020端口。这样,从宿主机或网络上的其他机器可以通过这些端口访问容器中的服务。

-t:表示容器将在一个tty(终端)中运行,这意味着标准输入、输出和错误流都将保持打开状态。

-i:表示交互模式,意味着容器将以交互的方式运行,接受来自标准输入的数据。

4239cd2958c6:这看起来像是一个容器ID或镜像ID。但是,通常我们会使用镜像的名称和标签来运行容器,例如cloudera/quickstart。这里可能是直接从一个具体的镜像ID运行,这通常在你已经拉取了镜像并知道其确切的ID时使用。

/usr/bin/docker-quickstart:这是容器启动时运行的命令或程序。在Cloudera Quickstart容器中,这通常是一个脚本,用于初始化和启动Hadoop、CDH等服务。

这条命令启动的容器将允许你通过一系列的端口访问Hadoop生态系统中的各种服务,如HDFS NameNode、Cloudera Manager、Impala、Hive、YARN Resource Manager等。每个端口号对应着不同的服务,便于在宿主机上管理和监控这些服务。

在实际使用中,建议使用镜像的完整名称和标签,例如cloudera/quickstart:latest,而不是直接使用镜像ID,以增加可读性和可维护性。

上面命令执行完 就进入容器里面了 

执行 /home/cloudera/cloudera-manager --force --express &

 前面的宿主机和容器端口已经映射了,直接使用宿主机:7180访问