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

news2024/12/23 10:57:22

目录

一、前期准备

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博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++题解】1125. 删除字符串中间的*

问题&#xff1a;1125. 删除字符串中间的* 类型&#xff1a;字符串 题目描述&#xff1a; 输入一个字符串&#xff0c;将串前和串后的*保留&#xff0c;而将中间的 * 删除。 输入&#xff1a; 一个含*的字符串。 输出&#xff1a; 删除了串中的*的字符串。 样例&#xf…

夏日防晒笔记

1 防晒霜 使用方法&#xff1a;使用前上下摇晃瓶身4至5次&#xff0c;在距离肌肤10至15cm处均匀喷上。如在面部使用&#xff0c;请先喷在掌心再均匀涂抹于面部。排汗量较多时或擦拭肌肤后&#xff0c;请重复涂抹以确保防晒效果。卸除时使用普通洁肤产品洗净即可。

C++:STL容器的学习-->string

C:STL容器的学习-->string 1. 构造方法2. string的赋值操作3. string字符串的拼接4. string 查找和替换5. string字符串的比较6. string字符存取7. string 插入和删除8. string截取 需要添加头文件#include <string> 1. 构造方法 string() 创建空的字符串 string(c…

kafka3.6.1版本学习

kafka目录结构 bin linux系统下可执行脚本文件 bin/windows windows系统下可执行脚本文件 config 配置文件 libs 依赖类库 licenses 许可信息 site-docs 文档 logs 服务日志 启动ZooKeeper 进入Kafka解压缩文件夹的config目录&#xff0c;修改zookeeper.properties配置文件 #t…

深度学习模型在OCR中的可解释性问题与提升探讨

摘要&#xff1a; 随着深度学习技术在光学字符识别&#xff08;OCR&#xff09;领域的广泛应用&#xff0c;人们对深度学习模型的可解释性问题日益关注。本文将探讨OCR中深度学习模型的可解释性概念及其作用&#xff0c;以及如何提高可解释性&#xff0c;使其在实际应用中更可…

企业微信hook接口协议,ipad协议http,语音转文字

语音转文字 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信msgid是int要转文字的语音消息id 请求示例 {"uuid":"a4ea6a39-4b3a-4098-a250-2a07bef57355","msgid":1063645 } 返回示例 {"data&…

App Inventor 2 Encrypt.Security 安全性扩展:MD5哈希,SHA/AES/RSA/BASE64

这是关于App Inventor和Thunkable安全性的扩展&#xff0c;它提供MD5哈希&#xff0c;SHA1和SHA256哈希&#xff0c;AES加密/解密&#xff0c;RSA加密/解密&#xff0c;BASE64编码/解码方法。 权限 此扩展程序不需要任何权限。 事件 OnErrorOccured 抛出任何异常时将触发此事件…

20240527画图-筛选较长、均长、正交的基向量

1. LLM网址和prompt deepseek网址 prompt 请用python写出以下程序&#xff1a; 1、在x属于&#xff08;0&#xff0c;1920&#xff09;、y属于&#xff08;0&#xff0c;1080&#xff09;范围内&#xff0c;随机生成100个点&#xff0c;并画图 2、从这些点中选取3个点&#…

CC1链补充-LazyMap

前言 在我们上一篇中详细分析了CC1链&#xff0c;但是在CC1链中还有一条链就是LazyMap类 1.安装和CC1核心 环境安装的详情可以见上篇CC1分析的第二部分&#xff0c;环境搭建部分 两条不同的路线其实第一步核心都是相同的&#xff0c;执行类都是Tansformer接口和实现类&#…

操作系统 - 进程与线程

进程与线程 考纲内容 进程与线程 进程与线程的基本概念&#xff1b;进程/线程的状态与转换 线程的实现&#xff1b;内核支持的线程&#xff0c;线程库支持的线程 进程与线程的组织与控制 进程间通信&#xff1b;共享内存&#xff0c;消息传递&#xff0c;管道CPU调度与上下文…

VectorDBBench在windows的调试

VectorDBBench在windows的调试 VectorDBBench是一款向量数据库基准测试工具&#xff0c;支持milvus、Zilliz Cloud、Elastic Search、Qdrant Cloud、Weaviate Cloud 、 PgVector、PgVectorRS等&#xff0c;可以测试其QPS、时延、recall。 VectorDBBench是一款使用python编写的…

计算机毕业设计hadoop+spark+hive知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

青岛理工大学&#xff08;临沂&#xff09;机械与电子工程系 毕业设计外文翻译 独立于语言的个性化音乐 推荐系统 Personalized Language-Independent Music Recommendation System 设计题目&#xff1a;基于python的音乐推荐系统的分析可视化设计 …

如何连接远程?

在现代信息技术的发展过程中&#xff0c;不同地区之间的远程连接变得日益重要。为了满足不同地区的电脑、设备之间的信息远程通信需求&#xff0c;北京金万维科技有限公司自主研发的【天联】组网产品应运而生。【天联】是一款异地组网内网穿透产品&#xff0c;可以在任何网络环…

C语言 数组——排序算法的函数实现

目录 交换法排序 用交换法对成绩数组升序排序 选择法排序 冒泡法排序 归并法排序 交换法排序 用交换法对成绩数组升序排序 选择法排序 冒泡法排序 归并法排序

数据结构(四)双向链表

文章目录 一、概念二、无头双向链表示意图三、操作&#xff08;一&#xff09;定义结构体&#xff08;二&#xff09;创建链表1. 函数定义2. 注意点3. 代码实现 &#xff08;三&#xff09;插入1. 函数定义2. 注意点3. 代码实现 &#xff08;四&#xff09;删除1. 函数定义2. 注…

【Python】 如何在Python中设置环境变量?

基本原理 在Python中&#xff0c;环境变量是一种存储系统或应用程序配置信息的方式&#xff0c;它们可以被操作系统或应用程序访问。环境变量通常用于配置应用程序的行为&#xff0c;例如指定数据库的连接字符串、API密钥、文件路径等。 Python提供了几种方法来设置和访问环境…

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

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

Flink本地idea运行环境配置webui

Flink本地idea运行环境配置webui 1.添加依赖 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-runtime-web_2.11</artifactId><version>1.13.6</version><scope>provided</scope></dependency&g…

柳宗元,政治坎坷与文学辉煌的交织

&#x1f4a1; 如果想阅读最新的文章&#xff0c;或者有技术问题需要交流和沟通&#xff0c;可搜索并关注微信公众号“希望睿智”。 柳宗元&#xff0c;字子厚&#xff0c;生于唐代宗大历年间&#xff08;公元773年&#xff09;&#xff0c;卒于唐宪宗元和年间&#xff08;公元…

产品公告 | MemFire Cloud认证服务支持微信扫码登录

前言 为了满足国内用户日益增长的操作习惯需求&#xff0c;并进一步提升用户体验&#xff0c;MemFire Cloud认证服务已集成微信扫码登录功能。微信&#xff0c;作为国内广受欢迎的社交平台&#xff0c;其扫码登录功能以其便捷性和快速性赢得了广大用户的青睐。现在&#xff0c…