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

news/2024/7/25 20:25:19/文章来源:https://blog.csdn.net/qq_35995514/article/details/139235970

目录

一、前期准备

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-composechmod +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/sshdCOPY ./config/hosts    /etc/#set default password
RUN echo 'root:123456' | chpasswd
RUN /usr/bin/ssh-keygen -ACOPY ./config/krb5.conf   /etc#声明22端口 
EXPOSE 22RUN 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 kangllRUN 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/htmlEXPOSE 80CMD ["httpd","-DFOREGROUND"]

源镜像构建

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

2.3 kdc镜像构建


dockerfile-kerberos

FROM centos:7.6.1810RUN yum install -y krb5-server krb5-libs krb5-auth-dialog krb5-workstationRUN yum install -y net-tools telnetCOPY ./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.7restart: alwaysnetworks:- hadoop-networkcontainer_name: mysqlhostname: mysql-testenvironment:MYSQL_ROOT_PASSWORD: Winner001TZ: Asia/Shanghaiports:- 3306:3306volumes:-  /data:/var/lib/mysql- ./conf/my.cnf:/etc/mysql/my.cnfcommand:--max_connections=1000--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--default-authentication-plugin=mysql_native_passwordhealthcheck:test: ["CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1"]interval: 10stimeout: 10shttpd:container_name: httpdhostname: httpdimage: httpd:1.0networks:- hadoop-networkports:- "80:80"privileged: truerestart: alwaysvolumes:- "/etc/hosts:/etc/hosts"kdc:image: kerberos:1.0restart: alwaysnetworks:- hadoop-networkcontainer_name: kerberoshostname: kerberos.winnerports:- 88:88- 749:749- 750:750volumes:- /etc/hosts:/etc/hosts- /hadoop/kerberos/krb5kdc:/var/kerberos/krb5kdc- /hadoop/kerberos/keytabs:/etc/security/keytabscommand:- /bin/sh- -c- |/opt/apache/kerberosStart.shnetworks: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.7restart: alwaysnetworks:- hadoop-networkcontainer_name: mysqlhostname: mysql-testenvironment:MYSQL_ROOT_PASSWORD: Winner001TZ: Asia/Shanghaiports:- 3306:3306volumes:-  /data:/var/lib/mysql- ./conf/my.cnf:/etc/mysql/my.cnfcommand:--max_connections=1000--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--default-authentication-plugin=mysql_native_passwordhealthcheck:test: ["CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1"]interval: 10stimeout: 10shttpd:container_name: httpdhostname: httpdprivileged: trueimage: httpd:1.0networks:- hadoop-networkports:- "80:80"privileged: truerestart: alwaysvolumes:- "/etc/hosts:/etc/hosts"kdc:image: kerberos:1.0restart: alwaysprivileged: truenetworks:- hadoop-networkcontainer_name: kerberoshostname: kerberos.winnerports:- 888:88- 8749:749- 8750:750volumes:- /etc/hosts:/etc/hosts- /hadoop/kerberos/krb5kdc:/var/kerberos/krb5kdc- /hadoop/kerberos/keytabs:/etc/security/keytabsnetworks: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: ambarihostname: ambari-serverrestart: alwaysprivileged: truenetworks:- hadoop-networkports:- 8080:8080- 8088:8088- 50070:50070- 50075:50075- 8188:8188- 8042:8042- 10000:10000- 9083:9083- 6080:6080- 16010:16010volumes:- /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/keytabscommand:- /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/bashset -xambari_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.jarBASEDIR=$(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-agentre=`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 -Dtail -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.luyixian.cn/news_show_1053461.aspx

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

相关文章

Golang协程和通道

文章目录 协程&#xff08;goroutine&#xff09;基本介绍GMP模型协程间共享变量 通道&#xff08;channel&#xff09;基本介绍channel的定义方式channel的读写channel的关闭channel的遍历方式只读/只写channelchannel最佳案例select语句 协程&#xff08;goroutine&#xff0…

具有固定宽度的盒子:\makebox, \parbox

makebox \makebox 是 LaTeX 中的一个命令&#xff0c;用于创建一个具有固定宽度的盒子&#xff0c;并在该盒子内放置内容。这个命令可以用于控制文本或对象的位置和对齐。 语法如下&#xff1a; \makebox[<width>][<alignment>]{<content>}其中&#xff1…

C++ 常量和变量

1 常量 具体把数据写出来 2,3&#xff0c;4&#xff1b;1.2 1.3;“Hello world!”,“C” cout<<2015 常量&#xff1a;不能改变的量。 字面常量&#xff08;字面量、直接常量&#xff09;:直接写出的数据。 符号常量&#xff1a;用符号表示数据&#xff0c;但它一旦确定…

边缘计算网关的主要功能有哪些?天拓四方

随着物联网&#xff08;IoT&#xff09;的快速发展和普及&#xff0c;边缘计算网关已经成为了数据处理和传输的重要枢纽。作为一种集成数据采集、协议转换、数据处理、数据聚合和远程控制等多种功能的设备&#xff0c;边缘计算网关在降低网络延迟、提高数据处理效率以及减轻云数…

视频监控平台AS-V1000 的场景管理,一键查看多画面视频的场景配置、调用、管理(一键浏览多路视频)

目录 一、场景管理的定义 二、场景管理的功能和特点 1、功能 &#xff08;1&#xff09;场景配置 &#xff08;2&#xff09;实时监控 &#xff08;3&#xff09;权限管理 2、特点 三、AS-V1000的场景配置和调用 1、场景配置 &#xff08;1&#xff09;实时视频预览 …

为什么会有websocket(由来)

一、HTTP 协议的缺点和解决方案 1、HTTP 协议的缺点和解决方案 用户在使用淘宝、京东这样的网站的时候&#xff0c;每当点击一个按钮其实就是发送一个http请求。那我们先来回顾一下http请求的请求方式。 一个完整的http请求是被分为request请求节点和response响应阶段的&…

UIKit之猜图器Demo

需求 实现猜图器Demo 功能分解&#xff1a; 1>下一题切换功能 2>点击图片后能放大并背景变暗&#xff08;本质是透明度的变化&#xff09;。再次点击则缩小&#xff0c;删除暗色背景。 3> 答案区按钮点击则文字消失&#xff0c;选择区对应文字恢复。 4> 选择区…

四川景源畅信:新人做抖店的成本很高吗?

随着社交媒体的兴起&#xff0c;抖音成为了一个新兴的电商平台——抖店。不少创业者和商家看中了其庞大的用户基础&#xff0c;想要通过开设抖店来拓展销路。然而&#xff0c;对于刚入行的新手来说&#xff0c;成本问题总是让人犹豫不决。究竟新人做抖店的成本高不高?本文将围…

Java 文件操作和输入输出流

在 Java 编程中&#xff0c;文件操作和输入输出流是非常常见和重要的任务&#xff0c;它们允许你读取和写入文件、处理数据流等。 文件操作概述 文件操作是指对文件进行创建、读取、写入、删除等操作的过程。在 Java 中&#xff0c;文件操作通常涉及到使用文件对象、输入输出…

跟进2年弄丢1.8亿,你的大客管理错在哪里?

数量并非目的之所在&#xff0c;质量才是根本之道。重视1%的超级用户&#xff0c;才是提高效率的关键所在。 ——凯文凯利 在当今的商业环境中&#xff0c;大客户已成为销售服务型企业最宝贵的资产。他们不仅贡献了企业收入的重要一环&#xff0c;…

自定义RedisTemplate序列化器

大纲 RedisSerializerFastJsonRedisSerializer自定义二进制序列化器总结代码 在《RedisTemplate保存二进制数据的方法》一文中&#xff0c;我们将Java对象通过《使用java.io库序列化Java对象》中介绍的方法转换为二进制数组&#xff0c;然后保存到Redis中。实际可以通过定制Red…

牛!华为《Linux 面试笔记大全》太赞了,完整版PDF 开放下载!

在QQ和微信社群中&#xff0c;我注意到许多人都在寻找一份全面的Linux学习资料。因此&#xff0c;我在这里为大家整理和分类了相关的信息&#xff0c;可以看作是对重点内容的梳理和归纳。 这份《Linux面试笔记》主要分为三大部分&#xff1a;基础篇-进阶篇-高级篇 本书笔记针…

R语言绘制相关性热图全总结

R语言绘制相关性热图全总结 引言 相关性热图是科研论文中一种常见的可视化手段&#xff0c;而在地学领域&#xff0c;我们常常需要分析一些环境因素之间的相关性&#xff0c;来判断环境生物因素中是否存在相关性情况。 尤其是在进行多变量分析时&#xff0c;分析目标因素和各变…

设计模式基础——设计原则介绍

1.概述 ​ 对于面向对象软件系统的设计而言&#xff0c;如何同时提高一个软件系统的可维护性、可复用性、可拓展性是面向对象设计需要解决的核心问题之一。面向对象设计原则应运而生&#xff0c;这些原则你会在设计模式中找到它们的影子&#xff0c;也是设计模式的基础。往往判…

数据结构的希尔排序(c语言版)

一.希尔排序的概念 1.希尔排序的基本思想 希尔排序是一种基于插入排序算法的优化排序方法。它的基本思想如下: 选择一个增量序列 t1&#xff0c;t2&#xff0c;......&#xff0c;tk&#xff0c;其中 ti > tj, 当 i < j&#xff0c;并且 tk 1。 按增量序列个数k&#…

音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档

文章目录 音乐系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 音乐系统 一、项目演示 在线音乐系统 二、项目介绍 基于springbootvue的前后端分离在线音乐系…

创新指南|降低 TikTok CPA 的 9 项专家策略

企业在 TikTok 上投放广告&#xff0c;往往最想确保获得最佳的投资回报。然而&#xff0c;这往往说起来容易做起来难。您需要了解如何利用不同的营销工具、定位策略和创意执行来实现您的业务目标并提高成本效率。本文将分享 9 个行之有效的策略&#xff0c;助您有效降低 TikTok…

蓝桥杯备赛——DP续【python】

一、小明的背包2 试题链接&#xff1a;https://www.lanqiao.cn/problems/1175/learning/ 输入示例 5 20 1 6 2 5 3 8 5 15 3 3 输出示例 120 问题分析 这题是完全背包&#xff0c;每个物品有无数个&#xff0c;所以对于任意dp[i][j]&#xff08;其表示的意思为选到第i个…

关于我转生从零开始学C++这件事:升级Lv.25

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ OK了老铁们&#xff0c;又是一个周末&#xff0c;大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…

【ai】LiveKit Agent 的example及python本地开发模式工程实例

title: ‘LiveKit Agent Playground’ playgroundLiveKit Community playground的环境变量&#xff1a;LiveKit API # LiveKit API Configuration LIVEKIT_API_KEYYOUR_API_KEY LIVEKIT_API_SECRETYOUR_API_SECRET# Public configuration NEXT_PUBLIC_LIVEKIT_URLwss://YOUR_…