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

目录

一、前期准备

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

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

创建网络

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  . 

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地址

节点和秘钥

agent安装

服务安装

由于是单机直接下一步

安装组件

输入密码

数据目录确认

用户确认下一步

服务参数确定

发布

安装完成

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-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 < ambari.sql
mysql -hmysql-test -uroot -pWinner001 ranger < ranger.sql
mysql -hmysql-test -uroot -pWinner001 hive   < hive.sql

备份的kerberos和安装包解压

# 解压到 /usr 路径下,保存的是集群安装的数据
hdp.tar.gz

# 在根路径解压保留的kerberos 和HDFS 初始化的元数据
hadoop.tar.gz

基础环境启动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 集群容器启动


镜像

启动容器

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

下次安装直接加载镜像,然后执行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} < /tmp/init_db.sql 
   mysql -h${myurl} -u${myuser} -p${mypwd} ambari  < /tmp/Ambari-DDL-MySQL-CREATE.sql
fi

# 配置
setup_ambari

# 启动ambari服务
/usr/sbin/ambari-server start
/usr/sbin/ambari-agent start

/usr/sbin/sshd -D

tail -f /var/log/ambari-server/ambari-server.log


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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/652172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Activity 设计详解

文章目录 Android Activity 设计说明1. Activity 的生命周期2. Activity 的启动模式3. Activity 的通信4. Activity 的布局和视图管理5. Activity 的配置变化处理6. Activity 的保存和恢复状态7. Activity 的任务和返回栈 总结 Android Activity 设计说明 在 Android 中&#…

了解Java垃圾收集

Java 的垃圾收集机制在 Java 应用程序开发中至关重要。此机制对于通过消除不再使用的对象来释放内存空间得过程来说至关重要。在这篇文章中&#xff0c;我带大家深入了解下 Java 垃圾收集的机制&#xff0c;并探索其工作原理、优点以及实现最佳性能的最佳实践。 1.什么是 Java…

数据挖掘之归一化

归一化(Normalization)的概念 在数据分析和机器学习中,归一化(Normalization)是一个常见的数据预处理技术。归一化的目的是将数据特征缩放到一个共同的尺度上,以便于后续的分析和建模。 归一化也称为最小-最大规范化 公式: x ′ x − m i n ( x ) m a x ( x ) − m i n ( x…

httpsok-v1.12.0支持LB证书自动部署

&#x1f525;httpsok-v1.12.0支持LB证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻松搞…

【Python】 探索Python中的“命名元组”

基本原理 在Python中&#xff0c;元组&#xff08;tuple&#xff09;是一种不可变序列&#xff0c;它允许我们存储一系列的元素&#xff0c;并且这些元素一旦被创建就不能被修改。元组的这种不可变性使得它们在多线程编程中非常安全&#xff0c;因为不需要担心数据被意外修改。…

2024电激世界脉动-中国汽车品牌全球化制胜手册

来源&#xff1a;奥美Ogilvy&#xff1a; 近期历史回顾&#xff1a; 2024中国宏观经济专题报告-数据要素市场建设 2023-2024年度报告.pdf 2024制药与生化医疗技术产业链白皮书.pdf 从可再生能源到绿氢-中国投资助力埃及能源转型.pdf 2024有机旅行中国行业指引.pdf 2024中国技术…

SpringBoot——发送HTML格式的邮件

目录 项目总结 新建一个SpringBoot项目 pom.xml application.properties配置文件 EmailService服务类 SpringbootMailHtmlApplicationTests测试类 项目总结 在SpringBoot项目中发送HTML格式的邮件的思路&#xff1a; 添加依赖&#xff1a;在项目中添加spring-boot-starte…

ROCm上运行网络中的网络(NiN)

7.3. 网络中的网络&#xff08;NiN&#xff09; — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2ldef nin_block(in_channels, out_channels, kernel_size, strides, padding):return nn.Sequential(nn.…

B端:ElementUI、AntDesign、若依等看腻了,来点不一样的。

现在对ElementUI、AntDesign和若依这些 UI 框架感到厌倦了&#xff0c;本次给大家分享一些更加个性化的UI界面。

PHP深入理解-PHP架构布局

PHP的架构布局涉及多个层次&#xff0c;让我们一起探讨一下吧&#xff01;&#x1f680; 执行流程&#xff1a;解析为Token&#xff1a;将PHP代码解析成标记&#xff08;tokens&#xff09;。抽象语法树&#xff1a;将语法解析树转换为抽象语法树。Opcodes&#xff1a;将抽象语…

如何保养和维护气膜体育馆—轻空间

随着经济的飞速发展&#xff0c;气膜体育馆以其新颖的外观、优美的造型、节能环保的特点&#xff0c;迅速进入体育市场。然而&#xff0c;对于气膜体育馆的维护和保养是不容忽视的问题&#xff0c;必须引起重视。下面我们将详细介绍气膜体育馆的维护需要从哪些方面着手。 一、保…

后量子密码算法的数学原理

后量子密码算法&#xff0c;作为应对未来量子计算时代挑战的重要技术手段&#xff0c;其研究和应用正在逐步成为信息安全领域的热点。以下是对后量子密码算法的详细阐述&#xff1a; 一、背景与意义 随着量子计算技术的快速发展&#xff0c;传统的公钥密码算法&#xff0c;如RS…

欧科云链:Web3.0时代 具备链上数据分析能力的公司愈发凸显其价值

在当今激烈的市场竞争中&#xff0c;新兴互联网领域迅速崛起&#xff0c;Web2.0已相对成熟&#xff0c;用户创造数据&#xff0c;但不拥有数据。被视为新的价值互联网的Web3.0&#xff0c;赋予用户真正的数据自主权&#xff0c;它的到来被认为是打破Web2.0垄断的机遇。 在Web3…

深入pandas:数据分析

目录 前言 第一点&#xff1a;导入模块 第二点&#xff1a;准备数据 第三点&#xff1a;简单的分析数据 第四点&#xff1a;【重点】数据透支 总结 前言 在数据分析与挖掘的领域&#xff0c;了解如何使用工具和方法来探索数据是至关重要的。本文将探讨如何利用Python中的…

探索RS与AES加密技术:从经典到现代

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、MD5加密技术&#xff1a;经典中的经典 二、非对称加密&#xff1a;RSA技术的魅力 RSA技…

Samtec mPower®电源连接器:高能、可靠、灵活、小巧

【摘要/前言】 电源连接器是互连解决方案中不可或缺的一个组成部分。虽然相较于比较爱“竞速”的信号连接器&#xff0c;电源连接器的技术迭代不是那么频繁&#xff0c;但是它是连接电源和用电设备的重要纽带&#xff0c;想要确保设备正常运行&#xff0c;就少不了它的身影。 …

记录一次安装k8s初始化失败

实例化 kubeadm init --configkubeadm.yaml --ignore-preflight-errorsSystemVerification报错 [init] Using Kubernetes version: v1.25.0 [preflight] Running pre-flight checks error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR CRI]: co…

移动摄像头专网需要解vlan,如何解决

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

最后两天!百度云加速正式停服

百度云加速将于5月30日&#xff0c;正式关闭服务器&#xff0c;仅保留官网首页通知。 届时如网站还在百度云加速接入的&#xff0c;将无法正常访问&#xff01; 如果您还有域名在百度云加速接入的请尽快做迁移安排&#xff0c;以免造成损失。 目前在主机吧购买的域名已经全部…

vulnhub靶场WP Momentum2

目录 靶机安装 IP发现 端口扫描 目录扫描 备份文件扫描 文件上传 查看当前用户 查看所有用户 权限提升 总结 靶机下载地址 : Momentum: 2 ~ VulnHub 靶机安装 打开VMware 导入虚拟机 点击重试&#xff0c;就可以正常导入 右击——设置——修改靶机的网络连接模式是…