CN112084009B - PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 - Google Patents
PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 Download PDFInfo
- Publication number
- CN112084009B CN112084009B CN202010978399.6A CN202010978399A CN112084009B CN 112084009 B CN112084009 B CN 112084009B CN 202010978399 A CN202010978399 A CN 202010978399A CN 112084009 B CN112084009 B CN 112084009B
- Authority
- CN
- China
- Prior art keywords
- hadoop
- clusters
- prometheus
- nodes
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000005516 engineering process Methods 0.000 title claims abstract description 15
- 238000007726 management method Methods 0.000 claims description 16
- 238000009434 installation Methods 0.000 claims description 10
- 230000001105 regulatory effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 claims 1
- 238000012423 maintenance Methods 0.000 abstract description 5
- 230000006872 improvement Effects 0.000 description 7
- 238000004140 cleaning Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,包括:S1,在基于PK体系的节点服务器上搭建k8s并部署应用的镜像仓库服务;S2,在k8s上部署Prometheus,包括创建Prometheus的自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件,并配置Grafana进行图形化界面显示;S3,在k8s上搭建Hadoop集群,包括部署Hadoop集群的HDFS集群和YARN集群;S4,在节点服务器上部署Hadoop_exporter并采集Hadoop集群的监控数据按照容器监控平台规定的格式提供数据接口,容器监控平台调用Hadoop_exporter数据接口获取采集的监控数据;S5,通过PrometheusRule对象创建告警规则,Alertmanager接收Prometheus的告警信息并通知用户。本发明整个部署可一键部署,快速简洁,满足数据分析人员、测试人员、运维人员在软件开发、应用和管理工作中的需求。
Description
技术领域
本发明属于Hadoop集群管理的技术领域,具体涉及一种PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法。
背景技术
PK,P指飞腾(Phytium)处理器,是中国电子自主设计兼容ARM V8指令集的处理器芯片,K指麒麟(Kylin)操作***,它支持云计算、虚拟化、大数据等应用并与飞腾处理器深度适配。PK体系是一个基础开放的架构组合,是国家级网络安全核心体系,对标Windows和英特尔。Hadoop(分布式***基础架构)集群是一个能够对大量数据进行分布式处理的软件框架,以一种可靠、高效、可伸缩的方式进行数据处理,是大数据领域的主流技术,Hadoop2.0是由两套完整的集群所组成,一个是基本的HDFS(Hadoop Distributed FileSystem,分布式文件***)文件***集群,负责海量数据的存储;一个是YARN(Yet AnotherResource Negotiator,分布式资源管理器)资源调度集群。
软件研发人员在工作过程中,往往需要进行多节点Hadoop集群的开发调试,经常遇到的一个问题是研发环境中的服务器数量不够用。与此类似,测试人员和运维人员在对Hadoop集群功能进行验证时,经常需要快速搭建一套多节点的Hadoop集群环境, 也会遇到服务器数量不够用和部署环境配置繁琐导致时效性不高的情况。另外,对于数据分析人员,也经常需要快速部署Hadoop集群进行数据分析应用的需求。
发明内容
为解决上述技术问题中的至少之一,本发明提出PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法。
本发明的目的通过以下技术方案实现:
本发明提供了PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,包括如下步骤:
S1,在基于PK体系的节点服务器上搭建k8s并部署应用的镜像仓库服务;
S2,在k8s上部署Prometheus,包括创建Prometheus的自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件,并配置Grafana图形化界面以可视化显示Prometheus的监控数据;
S3,在k8s上搭建Hadoop集群,包括部署Hadoop集群中的HDFS集群和YARN集群;
S4,在节点服务器上部署Hadoop_exporter,利用Hadoop_exporter采集Hadoop集群的监控数据并按照Prometheus规定的格式对外提供数据接口,Prometheus调用Hadoop_exporter提供的数据接口获取采集的监控数据;
S5,通过PrometheusRule对象创建告警规则,Alertmanager接收Prometheus的告警信息并通知用户。
作为进一步的改进,所述步骤S1中,在节点服务器上搭建k8s包括步骤如下:
S11.在节点服务器上选取节点作为管理节点、计算节点和存储节点,选取的节点是多管理节点时,则需要在节点服务器上配置代理节点,并从管理节点中选取部署节点;
S12.编写自动化脚本,并将选取的节点信息、镜像信息和磁盘设备名等信息配置在自动化脚本的hosts文件中;
S13.在节点服务器上执行自动化脚本,一键安装k8s。
作为进一步的改进,所述步骤S1中,k8s的网络采用Flannel服务,Flannel服务选用DaemonSet方式部署在k8s中,部署包括如下步骤:
S111.创建Flannel的相关目录;
S112.配置Flannel服务的DaemonSet的yaml文件;
S113.下载Flannel服务的网络插件;
S114.运行Flannel网络;
S115.在k8s上轮询等待Flannel运行。
作为进一步的改进,所述步骤S1中,所述镜像仓库服务中的镜像是通过Docker制作的与PK体系适配的镜像和通过Docker从镜像仓库服务中拉取得到的。
作为进一步的改进,通过Docker制作与PK体系适配的镜像包括如下步骤:
S1111.在PK体系的节点服务器下安装Docker环境 ;
S1112.获取Kylin操作***镜像并上传到镜像仓库服务中;
S1113.获取Kylin操作***下的应用到目标文件;
S1114.创建镜像;
S1115.上传创建的镜像到私有镜像仓库。
作为进一步的改进,所述步骤S2中,使用Ansible自动化部署Prometheus,包括如下步骤:
S21.在节点服务器上拉取Prometheus框架;
S22.创建Prometheus组件模板文件和自定义对象模板文件;
S23.将相关镜像替换为PK下适配的镜像写在文件中;
S24.执行部署Prometheus,包括创建Prometheus的自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件。
作为进一步的改进,所述步骤S3中,使用Ansible自动化部署Hadoop集群,部署Hadoop集群中的HDFS集群包括步骤如下:
S31.构建Hadoop镜像;
S32.将Hadoop 配置文件和启动脚本放置于ConfigMap中;
S33.编写HDFS 集群中的NameNode角色的NameNode.yaml文件;
S34.部署NameNode角色;
S35.编写HDFS 集群中的DataNode角色的DataNode.yaml文件;
S36.部署DataNode角色。
作为进一步的改进,所述步骤S3中,使用Ansible自动化部署Hadoop集群,部署Hadoop集群中的YARN集群包括步骤如下:
S331.构建Hadoop镜像;
S332.将Hadoop 配置文件和启动脚本放置于ConfigMap中;
S333.编写YARN 集群中的ResourceManager角色的ResourceManager.yaml文件;
S334部署ResourceManager角色;
S335.编写YARN 集群中的NodeManager角色的NodeManager.yaml文件;
S336.部署NodeManager角色。
本发明提供的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,包括步骤:S1,在基于PK体系的节点服务器上搭建k8s并部署应用的镜像仓库服务;S2,在k8s上部署Prometheus,包括创建Prometheus自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件,并配置Grafana图形化界面以可视化显示Prometheus的监控数据;S3,在k8s上搭建Hadoop集群,包括部署Hadoop集群中的HDFS集群和YARN集群;S4,在节点服务器上部署Hadoop_exporter,利用Hadoop_exporter采集Hadoop集群的监控数据并按照Prometheus规定的格式对外提供数据接口,Prometheus调用Hadoop_exporter提供的数据接口获取采集的监控数据;S5,通过PrometheusRule对象创建告警规则,Alertmanager接收Prometheus的告警信息并通知用户。本发明基于k8s部署Prometheus,在Prometheus中对Hadoop集群进行监控,并结合告警插件对监控结果进行告警,整个部署过程支持一键部署,快速简洁,满足数据分析人员、测试人员、运维人员在软件开发、应用和管理工作中的需求。
相比传统部署Hadoop集群来说,容器化技术构建和监控Hadoop有以下好处:
1)可以提高节点服务器的资源利用率;
2)可以持续对Hadoop集群部署和测试,消除线上线下环境差异,保证环境一致性标准化;
3)可对整个运行环境实现版本控制,一旦出现故障可快速回滚;
4)对于相同的底层体系架构,方便实现跨平台迁移;
5)用prometheus监控Hadoop集群,prometheus可以集成在k8s中,不仅部署方便,还有灵活的数据模型便于扩展、强大的查询能力、健全的生态以及良好的性能。
附图说明
利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1为本发明的流程图。
图2为本发明的整体架构图。
图3为本发明HDFS集群的架构图。
图4为本发明YARN集群的架构图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步详细的描述,需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
结合图1和图2所示,本发明实施例提供PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,包括如下步骤:
S1,在基于PK体系的节点服务器上搭建k8s(Kubernetes,容器编排***)并部署应用的镜像仓库服务。搭建一个k8s的步骤如下:
S11.在节点服务器上选取节点作为管理节点、计算节点和存储节点,如果选取的节点是多管理节点时,需要在节点服务器上配置代理节点,并从管理节点中选取部署节点;
S12.编写自动化脚本,并将选取的节点信息、镜像信息和磁盘设备名信息配置在自动化脚本的hosts文件中;本实施例中,编写自动化脚本主要包含如下步骤:
a)设置ssh(安全外壳协议)免密登录其他节点;
b)k8s服务器环境设置,包含删除操作***默认安装、关闭selinux(扩展强制访问控制安全模块)和设置***参数,其中,***参数包含:加载br_netfilter模块(开机自动方法)并对其开机自启动、用sysctl命令启用路由转发和允许服务绑定一个本机不存在的IP(网际协议)地址、关闭网络IP、Arp(地址解析协议)转发规则、调整文件句柄打开最大数量和为不同节点设置不同主机名等;
c)安装并启动Docker(应用容器引擎)服务,包括下载Docker二进制文件和配置Docker国内镜像加速以及使用systemd(简体中文)管理配置Docker并启动Docker;
d)设置节点服务器通用配置如环境变量配置、下载kubectl(命令行)工具等,生成并分发集群所需相关证书,安装kubeconfig配置文件;
e)部署Harbor(企业级私有镜像仓库),安装并启动Harbor服务,此步骤为可选择性的部署私有镜像仓库;
f)如果k8s设置了集群高可用,准备代理节点所需要的相关安装文件,包括keepalived(高可用集群)和haproxy(负载均衡集群),对其进行配置;
g)准备管理节点所需要的相关安装文件以及相关的证书,如果etcd(高可用的键/值存储***)和aggregator-proxy证书没创建时进行创建;
h)安装并启动kubelet服务,节点服务器上有代理节点的,先启动代理节点,再启动管理节点,最后启动计算节点和存储节点;
i)准备Flannel服务所需的相关安装文件;
j)安装存储服务,如nfs(网络文件***)\gfs(可扩展的分布式文件***)等;
k)部署k8s所有插件服务,包括:Flannel(覆盖网络工具)、kube-proxy、coredns、dns-horizontal-autoscaler、node-problem-detector、metrics-server、kubernetes-dashboard、traefik-ingress、local-storage和kube-state-metrics等。
S13.在节点服务器上执行自动化脚本,一键安装k8s,需要说明的是,本步骤可单独执行部署k8s的自动化脚本,也可以在Hadoop集群文件准备好后,执行整体自动化脚本,一键安装部署Hadoop集群。
如需在节点服务器上卸载k8s,则执行自动化脚本,一键清理k8s。其中,自动化脚本中包含停止k8s节点、清理Docker容器、停止Docker服务、清理Iptables、清理网络、清理相关目录和文件以及清理存储节点数据等。
k8s的网络采用Flannel服务。Flannel服务为k8s提供基础网络服务,让k8s中的不同节点创建的容器都具有全集群唯一的虚拟IP地址,在k8s组件之一的Docker配置中,可能存在不同节点上容器可能获得相同的内外IP地址,Flannel服务为k8s下集群中的所有节点重新规划IP地址的使用规则,使不同节点上的容器能够获得同属一个内网且不重复的IP地址,并让k8s内属于不同节点上的容器能够直接通过内网IP通信。
Flannel服务选用DaemonSet(部署守护进程)方式部署在k8s中。本实施例中,使用Ansible(自动化运维工具)脚本自动安装Flannel,部署步骤包括如下:
S111.创建Flannel相关目录;
S112.配置Flannel服务的DaemonSet的yaml文件;
S113.下载Flannel服务的网络插件,包括bridge、Flannel、host-local、loopback、portmap;
S114.运行Flannel网络;
S115.在k8s上轮询等待Flannel运行。
基于PK体系的节点服务器提供应用运行的环境和镜像打包环境,搭建的k8s可以在节点服务器上实现容器集群的自动化部署、自动扩缩容、维护等功能,所需的镜像均与PK体系适配,且存于镜像仓库中。如经常需要使用的Java的软件开发工具包jdk,本实施例中,通过Docker制作镜像如下:
S1111.在PK体系的节点服务器下安装Docker环境;
S1112.获取Kylin操作***镜像并上传到镜像仓库服务中;
S1113.获取Kylin操作***下的应用openjdk 到目标文件;
建立Dockerfile文件jdk.dockerfile,例如,Docker工作目录在/usr/local/jdk,Dockerfile的内容为:
FROM kylin:kylin(麒麟镜像名)
MAINTAINER xxx
RUN mkdir /usr/local/jdk
WORKDIR /usr/local/jdk
ADD jdk.tar.gz /usr/local/jdk
ENV JAVA_HOME /usr/local/jdk/jdk
ENV JRE_HOME /usr/local/jdk/jdk/jre
ENV PATH $JAVA_HOME/bin:$PATH
S1114.创建镜像,使用命令:Docker build -f jdk.dockerfile -t $镜像地址/jdk;
S1115.上传创建的镜像到私有镜像仓库,使用命令:Docker push XXX/jdk。
S2,在k8s上部署Prometheus(监控报警***),包括创建Prometheus自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件,并配置Grafana(可视化工具)图形化界面以可视化显示Prometheus的监控数据。部署过程通过使用Ansible(自动化批量部置工具)一键部署。本实施例中,部署步骤如下:
S21.拉取Prometheus框架;
S22.创建Prometheus组件模板文件和自定义对象模板文件;
S23.将相关镜像替换为PK下适配的镜像写在文件中,便于模板文件变量填充;
S24.执行部署Prometheus,包含创建Prometheus自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor、ServiceMonitor等的CRD(自定义对象定义)及其对象和其他Prometheus组件等。
S3,在k8s上搭建Hadoop集群,包括搭建Hadoop集群中的HDFS集群和YARN集群;
结合图3所示,HDFS文件***集群,负责海量数据的存储,集群中的角色主要有NameNode(管理节点) 和DataNode(工作节点),Namenode为文件***集群主控节点,管理文件***集群的元数据,客户端程序(Client)以及DataNode节点会访问NameNode,而DataNode为文件***集群数据节点,存储文件***集群的实际数据。
本实施例中,使用Ansible自动化部署Hadoop集群,部署Hadoop集群中的HDFS集群的具体步骤为:
S31.构建Hadoop镜像,镜像中包含jdk、net-tools、vim、wget、hadoop、ssh免密及开机启动、时钟与宿主机同步以及关闭防火墙等;设置环境变量包含Java_home、Hadoop_home以及将其加入Path(环境变量配置)变量中,该镜像会存到私有镜像仓库中;
S32.将Hadoop 配置文件Core-site.xml、Hdfs-site.xml、Mapred-site.xml、Yarn-site.xml和启动脚本Bootstrap.sh放置于ConfigMap中,在Pod(容器组)启动并执行Bootstrap.sh脚本时,可以覆盖原始配置文件,并根据节点类型和网络地址等修改配置文件内容,节点类型通过环境变量设置,包含NameNode、DataNode、ResourceManager(资源管理器)和NodeManager(节点管理器),Bootstrap.sh脚本根据不同节点类型启动不同进程,当类型为NameNode时通过文件判断是否需要Format(格式化);Hdfs-site.xml中设置取消DataNode节点主机名和IP地址检查机制;
S33.编写NameNode角色的NameNode.yaml文件,NameNode.yaml文件中包含创建NameNode的Service和 NameNode的Deployment,Deployment副本数设置为1,Service Type(服务类型)设置为NodePort,开放9000和50070用于内部IPC(进程间通信)和HTTP(超文本传输协议)服务,Container(容器)将环境变量类型设置为NameNode;
S34.执行Kubectl apply–f namenode.yaml部署NameNode;
S35.编写DataNode角色的DataNode.yaml文件,DataNode以Daemonset方式部署,在k8s每个节点上部署一个DataNode Pod,Container(容器)将环境变量类型设置为DataNode,DataNode持久化存储类型采用Hostpath;
S36.执行Kubectl apply –f datanode.yaml部署DataNode角色。
结合图4所示,YARN,YARN集群同时支持内存和处理器两种模式的资源调度,YARN集群中的角色主要有ResourceManager和NodeManager,ResourceManager负责协调和管理所有NodeManager的资源;NodeManager管理资源调度集群中的每一个节点,如监视节点服务器CPU、内存、硬盘和网络使用情况等。
YARN集群的架构与HDFS集群很相似,但YARN集群无法沿用HDFS的建模方式,因为YARN集群中的ResourceManager要对NodeManger进行严格验证,NodeManger的节点所在主机DNS(域名***)与对应IP地址需要严格匹配,即NodeManger建立TCP(传输控制协议)连接时所用的IP地址,必须是该节点DNS对应的IP地址。因此需要采用了k8s里较为特殊的一种Service即Headless Service来解决这个问题,为每个NodeManger建模一个HeadlessService及其与NodeManger对应的Pod。
本实施例中,使用Ansible自动化部署Hadoop集群,部署Hadoop集群中的YARN集群的具体步骤为:
S331.编写ResourceManager.yaml文件,文件包含ResourceManager 的Service和 ResourceManager的Deployment,Deployment副本数设置为1,Service Type设置为NodePort;
S332.执行Kubectl apply –f ResourceManager.yaml部署ResourceManager角色;
S333.编写NodeManager.yaml文件,文件中包含Service和Stafulset,Service设置为Headless Service,即ClusertIP设置为None;
S334执行Kubectl apply –f NodeManager.yaml部署NodeManager角色。
S4,在节点服务器上部署Hadoop_exporter,用于采集Hadoop的数据,负责从目标处搜集数据,并将其转化为Prometheus支持的格式,利用Hadoop_exporter采集Hadoop集群的监控数据并按照Prometheus规定的格式对外提供数据的组件接口,Prometheus调用Hadoop_exporter提供的数据接口获取采集的监控数据。
在节点服务器上部置Hadoop_exporter包括配置Hadoop_exporter的配置文件,编写Hadoop_exporter的yaml文件,创建Hadoop_exporter的Pod和Service以及将Prometheus自定义对象ServiceMonitor绑定Hadoop_exporter Service,让Prometheus可以监控Hadoop集群。
S5,通过PrometheusRule对象创建告警规则、配置alertmanager.yml文件和设置告警接收人等信息,其中,告警规则可以通过创建的PrometheusRule对象进行增删改查。由Alertmanager接收Prometheus的告警信息并通知用户。
上面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,不能理解为对本发明保护范围的限制。
总之,本发明虽然列举了上述优选实施方式,但是应该说明,虽然本领域的技术人员可以进行各种变化和改型,除非这样的变化和改型偏离了本发明范围,否则都应该包括在本发明的保护范围内。
Claims (7)
1.PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,包括如下步骤:
S1,在基于PK体系的节点服务器上搭建k8s并部署应用的镜像仓库服务;
所述步骤S1中,在节点服务器上搭建k8s包括步骤如下:
S11.在节点服务器上选取节点作为管理节点、计算节点和存储节点,选取的节点是多管理节点时,则需要在节点服务器上配置代理节点,并从管理节点中选取部署节点;
S12.编写自动化脚本,并将选取的节点信息、镜像信息和磁盘设备名信息配置在自动化脚本的hosts文件中;
编写自动化脚本包含如下步骤:
a)设置ssh免密登录其他节点;
b)k8s服务器环境设置,包含删除操作***默认安装、关闭selinux和设置***参数;
c)安装并启动Docker服务;
d)设置节点服务器通用配置,生成并分发集群所需相关证书,安装kubeconfig配置文件,通用配置包括环境变量配置、下载kubectl工具;
e)部署Harbor,安装并启动Harbor服务,此步骤为可选择性的部署私有镜像仓库;
f)如果k8s设置了集群高可用,准备代理节点所需要的相关安装文件,包括keepalived和haproxy,对其进行配置;
g)准备管理节点所需要的相关安装文件以及相关的证书,如果etcd和aggregator-proxy证书没创建时进行创建;
h)安装并启动kubelet服务,节点服务器上有代理节点的,先启动代理节点,再启动管理节点,最后启动计算节点和存储节点;
i)准备Flannel服务所需的相关安装文件;
j)安装存储服务;
k)部署k8s所有插件服务;
S13.在节点服务器上执行自动化脚本,一键安装k8s;
S2,在k8s上部署Prometheus,包括创建Prometheus的自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件,并配置Grafana图形化界面以可视化显示Prometheus的监控数据;
S3,在k8s上搭建Hadoop集群,包括部署Hadoop集群中的HDFS集群和YARN集群;
S4,在节点服务器上部署Hadoop_exporter,利用Hadoop_exporter采集Hadoop集群的监控数据并按照Prometheus规定的格式对外提供数据接口,Prometheus调用Hadoop_exporter提供的数据接口获取采集的监控数据;
S5,通过PrometheusRule对象创建告警规则,Alertmanager接收Prometheus的告警信息并通知用户。
2.如权利要求1所述的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,所述步骤S1中,k8s的网络采用Flannel服务,Flannel服务选用DaemonSet方式部署在k8s中,部署包括如下步骤:
S111.创建Flannel的相关目录;
S112.配置Flannel服务的DaemonSet的yaml文件;
S113.下载Flannel服务的网络插件;
S114.运行Flannel网络;
S115.在k8s上轮询等待Flannel运行。
3.如权利要求2所述的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,所述步骤S1中,所述镜像仓库服务中的镜像是通过Docker制作的与PK体系适配的镜像和通过Docker从镜像仓库服务中拉取得到的。
4.如权利要求3所述的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,通过Docker制作与PK体系适配的镜像包括如下步骤:
S1111.在PK体系的节点服务器下安装Docker环境 ;
S1112.获取Kylin操作***镜像并上传到镜像仓库服务中;
S1113.获取Kylin操作***下的应用到目标文件;
S1114.创建镜像;
S1115.上传创建的镜像到私有镜像仓库。
5.如权利要求4所述的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,所述步骤S2中,使用Ansible自动化部署Prometheus,包括如下步骤:
S21.在节点服务器上拉取Prometheus框架;
S22.创建Prometheus组件模板文件和自定义对象模板文件;
S23.将相关镜像替换为PK适配下的镜像写在文件中;
S24.执行部署Prometheus,包括创建Prometheus的自定义对象Alertmanager、PrometheusRule、Prometheus、PodMonitor和ServiceMonitor及其他Prometheus组件。
6.如权利要求5所述的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,所述步骤S3中,使用Ansible自动化部署Hadoop集群,部署Hadoop集群中的HDFS集群包括步骤如下:
S31.构建Hadoop镜像;
S32.将Hadoop 配置文件和启动脚本放置于ConfigMap中;
S33.编写HDFS 集群中的NameNode角色的NameNode.yaml文件;
S34.部署NameNode角色;
S35.编写HDFS 集群中的DataNode角色的DataNode.yaml文件;
S36.部署DataNode角色。
7.如权利要求6所述的PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法,其特征在于,所述步骤S3中,使用Ansible自动化部署Hadoop集群,部署Hadoop集群中的YARN集群包括步骤如下:
S331.构建Hadoop镜像;
S332.将Hadoop 配置文件和启动脚本放置于ConfigMap中;
S333.编写YARN 集群中的ResourceManager角色的ResourceManager.yaml文件;
S334部署ResourceManager角色;
S335.编写YARN 集群中的NodeManager角色的NodeManager.yaml文件;
S336.部署NodeManager角色。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010978399.6A CN112084009B (zh) | 2020-09-17 | 2020-09-17 | PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010978399.6A CN112084009B (zh) | 2020-09-17 | 2020-09-17 | PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084009A CN112084009A (zh) | 2020-12-15 |
CN112084009B true CN112084009B (zh) | 2024-06-11 |
Family
ID=73737300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010978399.6A Active CN112084009B (zh) | 2020-09-17 | 2020-09-17 | PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084009B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799777B (zh) * | 2020-12-31 | 2024-04-05 | 深圳软通动力信息技术有限公司 | 一种流水线中预热调度的方法 |
CN112882726B (zh) * | 2021-01-26 | 2022-11-15 | 西安建筑科技大学 | 基于Hadoop和Docker的环境***的部署方法 |
CN113037547A (zh) * | 2021-03-03 | 2021-06-25 | 浪潮云信息技术股份公司 | 一种资源性能采集监控与告警*** |
CN113204353B (zh) * | 2021-04-27 | 2022-08-30 | 新华三大数据技术有限公司 | 一种大数据平台组件部署方法及装置 |
CN113254156B (zh) * | 2021-05-31 | 2024-04-09 | 深信服科技股份有限公司 | 一种容器组部署方法、装置、电子设备及存储介质 |
CN114268629A (zh) * | 2021-12-22 | 2022-04-01 | 杭州玳数科技有限公司 | 基于私有云的emr*** |
CN115051846B (zh) * | 2022-06-07 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 基于超融合平台的k8s集群的部署方法及电子设备 |
CN117716335A (zh) * | 2022-07-15 | 2024-03-15 | 京东方科技集团股份有限公司 | 大数据集群部署方法以及基于大数据集群的数据处理方法 |
CN115967619B (zh) * | 2022-11-14 | 2023-07-07 | 广西壮族自治区信息中心(广西壮族自治区大数据研究院) | 适配多cpu架构多云平台的监控技术 |
CN115904419B (zh) * | 2023-03-03 | 2023-05-16 | 杭州比智科技有限公司 | 一种基于自动化脚本安装应用软件的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN108921551A (zh) * | 2018-06-11 | 2018-11-30 | 西安纸贵互联网科技有限公司 | 基于Kubernetes平台的联盟区块链*** |
CN109271233A (zh) * | 2018-07-25 | 2019-01-25 | 上海数耕智能科技有限公司 | 基于Kubernetes组建Hadoop集群的实现方法 |
KR102062576B1 (ko) * | 2018-10-10 | 2020-01-06 | 숭실대학교산학협력단 | Vm 기반의 vnf 및 컨테이너 기반의 vnf를 모두 모니터링하기 위한 vnf 모니터링 시스템 |
CN110941474A (zh) * | 2018-09-25 | 2020-03-31 | 北京京东尚科信息技术有限公司 | Hadoop与Kubernetes***共享计算资源的方法、***、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11422859B2 (en) * | 2018-03-13 | 2022-08-23 | Aloke Guha | Methods and systems for cloud application optimization |
-
2020
- 2020-09-17 CN CN202010978399.6A patent/CN112084009B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN108921551A (zh) * | 2018-06-11 | 2018-11-30 | 西安纸贵互联网科技有限公司 | 基于Kubernetes平台的联盟区块链*** |
CN109271233A (zh) * | 2018-07-25 | 2019-01-25 | 上海数耕智能科技有限公司 | 基于Kubernetes组建Hadoop集群的实现方法 |
CN110941474A (zh) * | 2018-09-25 | 2020-03-31 | 北京京东尚科信息技术有限公司 | Hadoop与Kubernetes***共享计算资源的方法、***、设备及存储介质 |
KR102062576B1 (ko) * | 2018-10-10 | 2020-01-06 | 숭실대학교산학협력단 | Vm 기반의 vnf 및 컨테이너 기반의 vnf를 모두 모니터링하기 위한 vnf 모니터링 시스템 |
Non-Patent Citations (3)
Title |
---|
hadoop_exporter :Exports-hadoop metrics via HTTP for Prometheus consumption;shunfei;《GitHub》;标题、第1页第1行-第2页最后1行 * |
Kubernetes基于Prometheus弹性伸缩POD的方法;田贞朗;;计算机产品与流通;20200315(第03期);全文 * |
基于Prometheus + Grafana实现企业园区信息化PaaS平台监控;黄静;陈秋燕;;数字通信世界;20200901(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112084009A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084009B (zh) | PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 | |
US11089117B2 (en) | Discovery of remote storage services and associated applications | |
CN106790595B (zh) | 一种Docker容器主动负载均衡装置及方法 | |
CN112035228B (zh) | 一种资源调度方法及装置 | |
Kristiani et al. | The implementation of a cloud-edge computing architecture using OpenStack and Kubernetes for air quality monitoring application | |
CN105323282A (zh) | 一种面向多租户的企业应用部署与管理*** | |
Gerndt et al. | Performance Tools for the Grid: State of the Art and Future: Apart White Paper | |
Albrecht et al. | Remote Control: Distributed Application Configuration, Management, and Visualization with Plush. | |
CN115103012A (zh) | 一种地理空间信息微服务集成***及方法 | |
US20210168015A1 (en) | Providing selective peer-to-peer monitoring using mbeans | |
Le et al. | Managing on-demand sensing resources in IoT cloud systems | |
US20230222089A1 (en) | Cross-Platform Communication for Facilitation of Data Sharing | |
CN113824801B (zh) | 一种智能融合终端统一接入管理组件*** | |
CN108696550B (zh) | 快速构建和复制云的***和方法 | |
CN113312148B (zh) | 一种大数据服务部署方法、装置、设备及介质 | |
Adams et al. | Scalable management—Technologies for management of large-scale, distributed systems | |
JP2004021523A (ja) | ネットワークサーバへの負荷テストシステム | |
Hao | Edge computing on low availability devices with K3S in a smart home IoT system | |
CN113760843A (zh) | 一种站点部署方法及终端 | |
Dörnemann et al. | Discovering Grid Resources and Deploying Grid Services Using Peer-to-Peer Technologies | |
Luo et al. | Study on computing grid distributed middleware and its application | |
CN115344273B (zh) | 一种基于货架***来运行应用软件的方法及*** | |
CN112468349B (zh) | 适用于FT2000+平台部署Ceph的主节点 | |
Lehikoinen | AWS Greengrass in Building IoT Applications | |
Christudas et al. | Spring cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |