Kubernetes运行大数据组件-制作镜像

软件包

● jdk-8u221-linux-x64.tar.gz
● hadoop-2.10.1.tar.gz
● apache-hive-2.3.8-bin.tar.gz
● scala-2.12.13.tgz
● spark-3.0.3-bin-hadoop2.7.tgz

构建镜像

注意:需要提前解压软件包

java镜像

  • Dockerfile
FROM centos:7
RUN yum makecache && yum install net-tools lsof vim curl wget -y && rm /var/cache -rf
RUN echo -e "* hard nofile 102400\n* soft nofile 102400" >>/etc/security/limits.conf
COPY ./jdk1.8.0_221 /opt/jdk
ENV JAVA_HOME="/opt/jdk"
ENV JRE_HOME="$JAVA_HOME/jre"
ENV CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar"
ENV TZ=Asia/Shanghai
ENV PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  • 构建镜像
[root@docker jdk]# ls
Dockerfile  jdk1.8.0_221
[root@docker jdk]# docker build -t oraclejdk:8u221 .
Sending build context to Docker daemon    408MB
Step 1/9 : FROM centos:7---> 8652b9f0cb4c
Step 2/9 : RUN yum makecache && yum install net-tools lsof vim curl wget -y && rm /var/cache -rf---> Using cache---> 08bd1ebf0b99
Step 3/9 : RUN echo -e "* hard nofile 102400\n* soft nofile 102400" >>/etc/security/limits.conf---> Using cache---> e77c87d7751b
Step 4/9 : COPY ./jdk1.8.0_221 /opt/jdk---> 1c0ad086925f
Step 5/9 : ENV JAVA_HOME="/opt/jdk"---> Running in 1345a5af59ee
Removing intermediate container 1345a5af59ee---> 9a9947713905
Step 6/9 : ENV JRE_HOME="$JAVA_HOME/jre"---> Running in bfc8e29ada61
Removing intermediate container bfc8e29ada61---> 9ef0ca8afb5c
Step 7/9 : ENV CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar"---> Running in df4e6c135a23
Removing intermediate container df4e6c135a23---> bdd0ede47222
Step 8/9 : ENV TZ=Asia/Shanghai---> Running in ed6b3ecc3b0d
Removing intermediate container ed6b3ecc3b0d---> e0b340c2f008
Step 9/9 : ENV PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin---> Running in 59bbf9e4003e
Removing intermediate container 59bbf9e4003e---> c5ec18592869
Successfully built c5ec18592869
Successfully tagged oraclejdk:8u221
[root@docker spark]#
  • 验证镜像
[root@docker jdk]# docker run -it --rm oraclejdk:8u221 java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
[root@docker spark]#

hadoop镜像

  • Dockerfile
FROM oraclejdk:8u221
COPY ./hadoop-2.10.1 /opt/hadoop
ENV HADOOP_HOME="/opt/hadoop"
ENV HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop"
ENV HADOOP_LOG_DIR="$HADOOP_HOME/logs"
ENV YARN_CONF_DIR="$HADOOP_CONF_DIR"
ENV YARN_LOG_DIR="$HADOOP_LOG_DIR"
ENV PATH="$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
  • 构建镜像
[root@docker hadoop]# ls
Dockerfile  hadoop-2.10.1
[root@docker hadoop]# docker build -t hadoop:2.10.1 .
Sending build context to Docker daemon  461.3MB
Step 1/8 : FROM oraclejdk:8u221---> c5ec18592869
Step 2/8 : COPY ./hadoop-2.10.1 /opt/hadoop---> a3e0be814121
Step 3/8 : ENV HADOOP_HOME="/opt/hadoop"---> Running in e6349d12c8d6
Removing intermediate container e6349d12c8d6---> 73ad5061fbf9
Step 4/8 : ENV HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop"---> Running in 06c7168f4b7c
Removing intermediate container 06c7168f4b7c---> fb3700df305f
Step 5/8 : ENV HADOOP_LOG_DIR="$HADOOP_HOME/logs"---> Running in be2c841c0264
Removing intermediate container be2c841c0264---> 53619a2f4455
Step 6/8 : ENV YARN_CONF_DIR="$HADOOP_CONF_DIR"---> Running in 5ad7246fabcd
Removing intermediate container 5ad7246fabcd---> b3597d2a86b6
Step 7/8 : ENV YARN_LOG_DIR="$HADOOP_LOG_DIR"---> Running in bb3b29f986d4
Removing intermediate container bb3b29f986d4---> fb6ef5502501
Step 8/8 : ENV PATH="$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"---> Running in 6904f5c731ee
Removing intermediate container 6904f5c731ee---> e127c07d158c
Successfully built e127c07d158c
Successfully tagged hadoop:2.10.1
[root@docker spark]#

验证镜像:

[root@docker hadoop]# docker run -it --rm hadoop:2.10 hdfs version
Hadoop 2.10.1
Subversion https://github.com/apache/hadoop -r 1827467c9a56f133025f28557bfc2c562d78e816
Compiled by centos on 2020-09-14T13:17Z
Compiled with protoc 2.5.0
From source with checksum 3114edef868f1f3824e7d0f68be03650
This command was run using /opt/hadoop/share/hadoop/common/hadoop-common-2.10.1.jar
[root@docker spark]#

Hive镜像

  • Dockerfile
FROM hadoop:2.10.1
COPY ./hive-2.3.8 /opt/hive
ENV HIVE_HOME="/opt/hive"
ENV HIVE_CONF_DIR="$HIVE_HOME/conf"
ENV HIVE_AUX_JARS_PATH="$HIVE_HOME/lib"
ENV PATH="$PATH:$HIVE_HOME/bin"
  • 构建镜像
[root@docker hive]# ls
Dockerfile  hive-2.3.8
[root@docker hive]# docker build -t hive:2.3.8 .
Sending build context to Docker daemon  328.2MB
Step 1/6 : FROM hadoop:2.10.1---> e127c07d158c
Step 2/6 : COPY ./hive-2.3.8 /opt/hive---> 6ea2ee6843e1
Step 3/6 : ENV HIVE_HOME="/opt/hive"---> Running in 4997ab43bb11
Removing intermediate container 4997ab43bb11---> cd04772f661e
Step 4/6 : ENV HIVE_CONF_DIR="$HIVE_HOME/conf"---> Running in b58062ea41b1
Removing intermediate container b58062ea41b1---> 3624917c8da5
Step 5/6 : ENV HIVE_AUX_JARS_PATH="$HIVE_HOME/lib"---> Running in d3e2502f3337
Removing intermediate container d3e2502f3337---> 8e8051f0c8ce
Step 6/6 : ENV PATH="$PATH:$HIVE_HOME/bin"---> Running in ac9bed6d6b07
Removing intermediate container ac9bed6d6b07---> 5b3bfee1aa99
Successfully built 5b3bfee1aa99
Successfully tagged hive:2.3.8
[root@docker hive]#
  • 验证镜像
[root@docker hive]# docker run -it --rm hive:2.3.8 hive --help
Usage ./hive <parameters> --service serviceName <service parameters>
Service List: beeline cleardanglingscratchdir cli hbaseimport hbaseschematool help hiveburninclient hiveserver2 hplsql jar lineage llap llapdumpllapstatus metastore metatool orcfiledump rcfilecat schemaTool version
Parameters parsed:--auxpath : Auxiliary jars--config : Hive configuration directory--service : Starts specific service/component. cli is default
Parameters used:HADOOP_HOME or HADOOP_PREFIX : Hadoop install directoryHIVE_OPT : Hive options
For help on a particular service:./hive --service serviceName --help
Debug help:  ./hive --debug --help
[root@docker spark]#

Spark镜像

  • Dockerfile
FROM hadoop:2.10.1
COPY ./scala-2.12.13 /opt/scala
COPY ./spark-3.0.3-bin-hadoop2.7 /opt/spark
ENV SCALA_HOME="/opt/scala"
ENV SPARK_HOME="/opt/spark"
ENV SPARK_CONF_DIR="$SPARK_HOME/conf"
ENV PATH="$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin"
  • 构建镜像
[root@docker spark]# docker build -t spark:3.0.3 .
Sending build context to Docker daemon  268.1MB
Step 1/7 : FROM hadoop:2.10.1---> e127c07d158c
Step 2/7 : COPY ./scala-2.12.13 /opt/scala---> 5c86434d6f57
Step 3/7 : COPY ./spark-3.0.3-bin-hadoop2.7 /opt/spark---> 7dab7d209113
Step 4/7 : ENV SCALA_HOME="/opt/scala"---> Running in 1e03c34269eb
Removing intermediate container 1e03c34269eb---> 2f1bc529d29a
Step 5/7 : ENV SPARK_HOME="/opt/spark"---> Running in d3ea2fc0d6be
Removing intermediate container d3ea2fc0d6be---> bff04158ce16
Step 6/7 : ENV SPARK_CONF_DIR="$SPARK_HOME/conf"---> Running in a9f388819c46
Removing intermediate container a9f388819c46---> 6e87dcba9463
Step 7/7 : ENV PATH="$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin"---> Running in f8b2d9adc0cb
Removing intermediate container f8b2d9adc0cb---> d7f9e8cad67d
Successfully built d7f9e8cad67d
Successfully tagged spark:3.0.3
[root@docker spark]#
  • 验证镜像
[root@docker spark]# docker run -it --rm spark:3.0.3 spark-shell --version
Welcome to____              __/ __/__  ___ _____/ /___\ \/ _ \/ _ `/ __/  '_//___/ .__/\_,_/_/ /_/\_\   version 3.0.3/_/Using Scala version 2.12.10, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_221
Branch HEAD
Compiled by user ubuntu on 2021-06-17T04:52:32Z
Revision 65ac1e75dc468f53fc778cd2ce1ba3f21067aab8
Url https://github.com/apache/spark
Type --help for more information.
[root@docker spark]#

特别说明

  1. 本文档以hadoop2兼容生态为例,实际上大多数已经在使用hadoop3了;
  2. 镜像的构建采用“套娃”模式,从jdk到hadoop再到hive和spark,逐步引用;
  3. 实际上完全可以做成一个all-in-one的镜像。

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

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

相关文章

WPF+Mvvm案例实战(五)- 自定义雷达图实现

文章目录 1、项目准备1、创建文件2、用户控件库 2、功能实现1、用户控件库1、控件样式实现2、数据模型实现 2、应用程序代码实现1.UI层代码实现2、数据后台代码实现3、主界面菜单添加1、后台按钮方法改造&#xff1a;2、按钮添加&#xff1a;3、依赖注入 3、运行效果4、源代码获…

TikTok运营对IP有什么要求?

TikTok在进行直播带货时&#xff0c;网络环境的配置尤为关键&#xff0c;网络质量直接影响到直播效果&#xff0c;因此选择稳定的IP地址很重要。那么&#xff0c;TikTok直播时该选择什么样的IP地址呢&#xff1f;接下来&#xff0c;我们来深入分析一下。 TikTok对IP地址的要求 …

解读数字化转型的敏捷架构:从理论到实践的深度分析

在当今数字经济的推动下&#xff0c;企业要在瞬息万变的市场中保持竞争力&#xff0c;数字化转型已经不再是一种选择&#xff0c;而是不可避免的战略需求。然而&#xff0c;企业如何从理论到实践进行有效的转型&#xff0c;尤其是在复杂的技术环境中&#xff0c;如何通过正确的…

【FISCO BCOS】二十二、使用Key Manager加密区块链节点

#1024程序员节&#xff5c;征文# 落盘加密是对节点存储在硬盘上的内容进行加密&#xff0c;加密的内容包括&#xff1a;合约的数据、节点的私钥。具体的落盘加密介绍&#xff0c;可参考&#xff1a;落盘加密的介绍&#xff0c;今天我们来部署并对节点进行落盘加密。 环境&a…

信息学奥赛后的发展路径:科技创新、竞赛选拔还是学术研究?

参加信息学奥赛&#xff08;OI&#xff09;后&#xff0c;学生往往具备了较强的编程能力、逻辑思维和算法知识&#xff0c;而这些技能在多种发展路径上都有广泛应用。对于有志于深入发展的学生来说&#xff0c;选择合适的发展方向尤为重要。本文将详细讨论信息学奥赛后学生的三…

Linux中DHCP服务器配置和管理

文章目录 一、DHCP服务1.1、DHCP的工作流程1.2、DHCP的工作模式1.3、dhcp的主要配置文件 二、安装DHCP服务2.1、更新yum源2.2、安装DHCP服务软件包2.3、配置DHCP服务2.4、启用DHCP服务&#xff08;解决报错&#xff09;2.4.1、查看dhcpd服务的状态和最近的日志条目2.4.2、查看与…

<网络> 网络套接字编程(二)

文章目录 目录 文章目录 一、简单的TCP网络程序 1. 服务器创建套接字 2. 服务器绑定 3. 服务器监听 listen 4. 服务器获取连接 accept 5. 服务器处理请求 6. 客户端创建套接字 7. 客户端连接服务器 connect 8. 客户端发起请求 9. 服务器测试 10. 单执行流服务器弊端 二、多进程…

技术成神之路:设计模式(二十一)外观模式

相关文章&#xff1a;技术成神之路&#xff1a;二十三种设计模式(导航页) 介绍 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供一个统一的接口。外观模式定义了一个高层接口&#xff0c;使得子系统更容易使用。 …

【Vulnhub靶场】DC-2

DC-2 靶场下载地址&#xff1a;https://download.vulnhub.com/dc/DC-2.zip 目标 本机IP&#xff1a;192.168.118.128 靶机IP&#xff1a;192.168.118.0/24 信息收集 常规我使用nmap三扫描&#xff0c;扫存活主机、扫端口、扫服务 第一步探测到存活主机IP为&#xff1a;192.1…

时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解

时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解 目录 时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 (创新独家)TTNRBO-VMD改进牛顿-拉夫逊优化算优化变分模态分解TTNRBO–VMD 优化VMD分解层数K和…

MySQL任意版本安装卸载和数据库原理图绘制

MYSQL任意版本安装和卸载 安装&#xff1a; 1、解压文件 --- 不能出现中文路径 2、在解压目录&#xff08;安装目录&#xff09;下&#xff1a; 1>.创建data文件夹 2>.创建配置文件my.txt 然后修改成ini格式 3、修改配置文件 basedirD:\\mysql\\mysql-5.7.28-winx64…

后台进程注册的ContentObserver接收到的回调晚10秒钟

后台进程中的ContentObserver延迟回调晚10秒钟 在Android系统中&#xff0c;后台进程注册的ContentObserver会有一个延迟回调机制&#xff0c;通常延迟10秒左右。这种机制的设计是为了优化系统资源&#xff0c;减少后台进程频繁监听数据变化带来的资源消耗。 背景 当应用处于…

RabbitMQ集群搭建及使用

1. 概述 前提条件&#xff1a;linux服务器下已经安装好了docker服务。 本文档将搭建一个三台RabbitMQ的集群&#xff0c;包括三个RabbitMQ容器安装在同一服务器和三台不同的服务器。 2. 集群搭建 在一台服务器上创建三个RabbitMQ容器。 2.1.1. 创建容器 执行以下命令创建三…

Python实现PSO粒子群优化DBSCAN膨胀聚类模型(DBSCAN算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 随着大数据时代的到来&#xff0c;从海量数据中提取有用信息变得至关重要。聚类分析作为一种无监督…

Telephony中ITelephony的AIDL调用关系

以Android14.0源码讲解 ITelephony来自framework下的com.android.internal.telephony包下 frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl这个接口用于与Phone交互的界面&#xff0c;主要由TelephonyManager类使用&#xff0c;一些地方仍在…

【电机控制】相电流重构——单电阻采样方案

【电机控制】相电流重构——单电阻采样方案 文章目录 [TOC](文章目录) 前言一、基于单电阻采样电流重构技术原理分析1.1 单电阻采样原理图1.2 基本电压矢量与电流采样关系 二、非观测区2.1 扇区过渡区2.2 低压调制区 三、非观测区补偿——移相法四、参考文献总结 前言 使用工具…

C++11实践指北

C11&#xff1a;书、在线工具、库。 书 1. 《现代C语言核心特性解析》 覆盖 C11~C20 特性的讲解。 视频跟读&#xff1a;https://www.bilibili.com/video/BV1nN4y1j7fv 现代CPP随笔_0CCh - 每天5分钟了解现代C新特性 2. 《C Primer》第五版 基于 C11 的 C 入门书。 正在看…

java基础面试题一

目录 1、Java语言概述 1.1一个”.java”源文件中是否可以包括多个类&#xff1f;有什么限制 1.2Java 的优势 1.3常用的几个命令行操作都有哪些&#xff1f;(至少4个) 1.4Java 中是否存在内存溢出、内存泄漏&#xff1f;如何解决&#xff1f;举例说明 1. 内存溢出&#xf…

RocketMQ | 源码分析 | Broker控制器的启动

在分布式消息中间件的领域中&#xff0c;RocketMQ 以其高性能、高可靠性和强大的功能占据着重要的地位。而 Broker 作为 RocketMQ 的核心组件之一&#xff0c;其控制器的启动过程涉及到众多关键环节和复杂的逻辑。理解这个过程对于深入掌握 RocketMQ 的运行机制以及在实际应用中…

从0开始深度学习(22)——从全连接层到卷积

多层感知机在处理图像这种高维数据时&#xff0c;因为模型需要大量的数据来训练这么多参数&#xff0c;会导致巨大的计算成本&#xff0c;还会增加过拟合的风险&#xff0c;所以人们选择使用卷积神经网络 1 不变性 在计算机视觉和深度学习领域&#xff0c;特指模型对输入数据中…