【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南

马肤
摘要:本文将介绍如何在Docker上安装Ambari大数据单机版本。通过简单的步骤,您将能够在Docker容器中部署Ambari,以便在大数据领域进行开发和测试。本文涵盖了安装过程的关键步骤,让您轻松设置和使用Ambari大数据单机版本。

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第1张

目录

一、前期准备

1.1 部署 docker

1.2 部署 docker-compose

1.3 版本说明

二 、镜像构建启动

2.1 系统镜像构建

2.2 安装包源镜像构建

2.3 kdc镜像构建

2.4 集群安装

2.5 容器导出为镜像

三、Ubuntu环境安装测试

3.1 环境准备

3.2 集群容器启动


一、前期准备


1.1 部署 docker


# 安装yum-config-manager配置工具
yum -y install yum-utils
# 建议使用阿里云yum源:(推荐)
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker-ce版本
yum install -y docker-ce
# 启动并开机启动
systemctl enable --now docker
docker --version
docker info

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第2张

1.2 部署 docker-compose


curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第3张

创建网络

docker network create hadoop-network

1.3 版本说明


组件

版本

操作系统

Centos7.6/Ubuntu20.04.5

ambari

2.7.4

HDP

3.1.4

HDP-GPL

3.1.4

HDP-UTILS

1.1.0.22

JDK

jdk-8u162-linux-x64

如下安装只做测试。


二 、镜像构建启动


2.1 系统镜像构建


# 拉取 Centos 镜像
FROM centos:7.6.1810
# 作者信息
LABEL  kangll 
# 安装基本工具
RUN yum update -y && yum install -y \
    net-tools \
    vim \
    wget \
    curl \
    lrzsz \ 
    nc \
    openssl \
    sed \
    telnet \
    openssh-server \
    httpd \
    chronyd \
    zip unzip \
    openssh-clients \
    expect \
    krb5-server \
    krb5-libs \ 
    krb5-workstation \
    && yum clean all
# JDK 
RUN mkdir -p /usr/java 
ADD ./config/jdk-8u162-linux-x64.tar.gz /usr/java/
ENV JAVA_HOME=/usr/java/jdk1.8.0_162
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
# 添加一个名为myuser的用户
RUN useradd -m winner_spark
# 设置myuser用户的密码,这里设置为mypassword
RUN echo 'winner_spark:123456' | chpasswd
# 设置myuser用户为sudoer
RUN echo 'winner_spark ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# SSH
RUN sed -i '/^HostKey/'d /etc/ssh/sshd_config
RUN echo 'HostKey /etc/ssh/ssh_host_rsa_key' >> /etc/ssh/sshd_config
RUN mkdir /var/run/sshd/
RUN echo 'UseDNS no' >> /etc/ssh/sshd_config
RUN sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
COPY ./config/hosts    /etc/
#set default password
RUN echo 'root:123456' | chpasswd
RUN /usr/bin/ssh-keygen -A
COPY ./config/krb5.conf   /etc
#声明22端口 
EXPOSE 22
RUN mkdir -p /opt && mkdir -p /var/log/supervisord
RUN echo '/usr/sbin/sshd -D' >> /opt/run.sh
RUN chmod +x /opt/run.sh
CMD ["/opt/run.sh"]
 
#
WORKDIR /opt/

系统镜像构建

docker build -f  dockerfile-centos -t centos-jdk:1.0  .

2.2 安装包源镜像构建


dockerfile-httpd

FROM centos-jdk:1.0
# centos7.6 JDK1.8
LABEL kangll
RUN yum -y install httpd
RUN echo "crushlinux" >/var/www/html/index.html
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 添加yum 源
COPY ./repo/ambari.repo   /etc/yum.repos.d/
COPY ./repo/hdp.repo      /etc/yum.repos.d/
COPY ./repo/hdp.gpl.repo  /etc/yum.repos.d/
RUN mkdir -p /hadoop/hdp
ADD ./HDP/ambari.tar.gz    /var/www/html
ADD ./HDP/HDP-GPL.tar.gz   /var/www/html
ADD ./HDP/HDP.tar.gz       /var/www/html
ADD ./HDP/HDP-UTILS.tar.gz /var/www/html
 
EXPOSE 80
 
CMD ["httpd","-DFOREGROUND"]

源镜像构建

docker build -t ambari:2.7.4  -f dockerfile-ambari  . 

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第4张

2.3 kdc镜像构建


dockerfile-kerberos

FROM centos:7.6.1810
RUN yum install -y krb5-server krb5-libs krb5-auth-dialog krb5-workstation
RUN yum install -y net-tools telnet
COPY ./config/krb5.conf   /etc
COPY ./config/kdc.conf    /var/kerberos/krb5kdc/
COPY ./config/kadm5.acl   /var/kerberos/krb5kdc/
CMD ["/usr/sbin/init"]

服务启动

# 进入容器 启动服务
Systemctl restart krb5kdc
Systemctl restart kadmin

docker-compose-base.yml 启动基础环境

version: '3'
services:
  mysql:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/mysql-test:5.7
    restart: always
    networks:
      - hadoop-network
    container_name: mysql
    hostname: mysql-test
    environment:
      MYSQL_ROOT_PASSWORD: Winner001
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      -  /data:/var/lib/mysql
      - ./conf/my.cnf:/etc/mysql/my.cnf
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
    healthcheck:
      test: ["CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1"]
      interval: 10s
      timeout: 10s
  httpd:
    container_name: httpd
    hostname: httpd
    image: httpd:1.0
    networks:
      - hadoop-network
    ports:
      - "80:80"
    privileged: true
    restart: always
    volumes:
      - "/etc/hosts:/etc/hosts"
  kdc:
    image: kerberos:1.0
    restart: always
    networks:
      - hadoop-network
    container_name: kerberos
    hostname: kerberos.winner
    ports:
      - 88:88
      - 749:749
      - 750:750
    volumes:
      - /etc/hosts:/etc/hosts
      - /hadoop/kerberos/krb5kdc:/var/kerberos/krb5kdc
      - /hadoop/kerberos/keytabs:/etc/security/keytabs
    command:
      - /bin/sh
      - -c
      - |
        /opt/apache/kerberosStart.sh
networks:
  hadoop-network:
    external:
      name: hadoop-network

Ambari启动

# 启动基础环境
docker-compose -f docker-compose-base.yaml up -d
# 启动ambari , 在此容器中安装集群
docker-compose -f docker-compose-ambari.yaml up -d

2.4 集群安装


repo地址【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第5张

节点和秘钥

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第6张

agent安装

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第7张

服务安装

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第8张

由于是单机直接下一步

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第9张

安装组件

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第10张

输入密码

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第11张

数据目录确认

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第12张

用户确认下一步

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第13张

服务参数确定

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第14张

发布

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第15张

安装完成

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第16张

2.5 容器导出为像


docker ps -a
docker commit  容器ID ambari-1.0.tar.gz

三、Ubuntu环境安装测试


3.1 环境准备


我们准备Ubuntu 环境,在Ubuntu环境安装Ambari单机,相当于在Centos服务器安装的docker化的Ambari 导出为镜像 然后在Ubutntu 环境尝试启动。 

准备Ubuntu 环境,版本:Ubuntu 20.04.5 LTS

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第17张

将镜像 ambari-1.0.tar.gz 加载到Ubuntu 环境

docker load -i ambari-1.0.tar.gz

MySQL元数据库备份还原(Ambari、hive、ranger)

HDFS、kerberos 备份的数据拷贝到Ubuntu服务器并保持数据文件路径不变。

将在centos 安装完成的集群备份元数据库写入到新的库中 , 也就是Ubuntu环境要使用的元数据库。

# 备份的元数据写入新的数据库中
mysql -hmysql-test -uroot -pWinner001 ambari  

备份的kerberos和安装包解压

# 解压到 /usr 路径下,保存的是集群安装的数据
hdp.tar.gz
# 在根路径解压保留的kerberos 和HDFS 初始化的元数据
hadoop.tar.gz

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第18张

基础环境启动docker-compose-base.yaml

version: '3'
services:
  mysql:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/mysql-test:5.7
    restart: always
    networks:
      - hadoop-network
    container_name: mysql
    hostname: mysql-test
    environment:
      MYSQL_ROOT_PASSWORD: Winner001
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      -  /data:/var/lib/mysql
      - ./conf/my.cnf:/etc/mysql/my.cnf
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
    healthcheck:
      test: ["CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1"]
      interval: 10s
      timeout: 10s
  httpd:
    container_name: httpd
    hostname: httpd
    privileged: true
    image: httpd:1.0
    networks:
      - hadoop-network
    ports:
      - "80:80"
    privileged: true
    restart: always
    volumes:
      - "/etc/hosts:/etc/hosts"
  kdc:
    image: kerberos:1.0
    restart: always
    privileged: true
    networks:
      - hadoop-network
    container_name: kerberos
    hostname: kerberos.winner
    ports:
      - 888:88
      - 8749:749
      - 8750:750
    volumes:
      - /etc/hosts:/etc/hosts
      - /hadoop/kerberos/krb5kdc:/var/kerberos/krb5kdc
      - /hadoop/kerberos/keytabs:/etc/security/keytabs
networks:
  hadoop-network:
    external:
      name: hadoop-network

启动

# 启动
docker-compose -f docker-compose-base.yaml up -d
# 停止
docker-compose -f docker-compose-base.yaml down 

3.2 集群容器启动


镜像

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第19张

启动容器

version: '3'
services:
  ambari:
    image: ambari:2.7.4  # 修改为新的容器
    container_name: ambari
    hostname: ambari-server
    restart: always
    privileged: true
    networks:
      - hadoop-network
    ports:
      - 8080:8080
      - 8088:8088
      - 50070:50070
      - 50075:50075
      - 8188:8188
      - 8042:8042
      - 10000:10000
      - 9083:9083
      - 6080:6080
      - 16010:16010
    volumes:
      - /etc/hosts:/etc/hosts
      - /usr/hdp:/usr/hdp
      - /hadoop/hdfs:/hadoop/hdfs
      - /hadoop/etc/hadoop/:/etc/hadoop/
      - /hadoop/etc/hbase/:/etc/hbase/
      - /hadoop/etc/hive/:/etc/hive/
      - /hadoop/etc/livy2/:/etc/livy2/
      - /hadoop/etc/spark2/:/etc/spark2/
      - /hadoop/etc/tez/:/etc/tez/
      - /hadoop/etc/zookeeper/:/etc/zookeeper/
      - /hadoop/yarn:/hadoop/yarn
      - /hadoop/kerberos/krb5kdc:/var/kerberos/krb5kdc
      - /hadoop/kerberos/keytabs:/etc/security/keytabs
    command:
      - /bin/sh
      - -c
      - |
        /opt/apache/bootstrap.sh
networks:
  hadoop-network:
    external:
      name: hadoop-network

启动

docker-compose -f docker-compose-ambari.yaml up -d

【Ambari】Docker 安装Ambari 大数据单机版本,Docker 安装 Ambari 大数据单机版指南 第20张

下次安装直接加载镜像,然后执行yaml文件即可

docker load -i ambari-1.0.tar.gz
docker load -i kerberos.tar.gz
docker load -i mysql.tar.gz
docker load -i HDP-REPO.tar.gz

脚本

bootstrap.sh

#!/bin/bash
set -x
ambari_db=ambari
myurl=mysql-test
myuser=root
mypwd=Winner001
myport=3306
mydb=ipvacloud
java_home=/usr/java/jdk1.8.0_162
mysql_driver=/usr/share/java/mysql-connector-java.jar
BASEDIR=$(cd "$(dirname "$0")"; pwd)
wait_for() {
    echo Waiting for $1 to listen on $2...
    while ! nc -z $1 $2; do echo waiting...; sleep 1s; done
}
setup_ambari() {
  # 强制替换文件
  cp -f /tmp/ambari.properties /etc/ambari-server/conf/ 
  cp -f /tmp/password.dat     /etc/ambari-server/conf/
  cp -f /tmp/ambari-agent.ini    /etc/ambari-agent/conf/
}
# wait for mysql and httpd
#wait_for windp-aio 3306
#wait_for httpd 80
# 开始ambari安装
yum -y install ambari-server
yum -y install ambari-agent
re=`mysql -h${myurl} -u${myuser} -p${mypwd} -e "show databases"|grep ambari|wc -l`
if [ $re -eq 0 ];then
   # sql 初始化
   mysql -h${myurl} -u${myuser} -p${mypwd}  
 

参考文章:https://www.cnblogs.com/liugp/p/17489616.html

Ubuntu 环境安装docker: 【云计算】Ubuntu多种安装docker方式_ubuntu安装docker-CSDN博客


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码