Supervisor管理hive服务(metastore,hiveserver2),防止意外杀死Hive服务,导致任务中断
1. 使用supervisor管理hive服务
1.1 需求说明
在做通过hudi采集数据并落地到hive的过程中,因为经常有Hive的服务被杀死,所以想到用supervisor来管理hive的进程,
当hive的服务被意外杀死后,实现自动启动
1.2 supervisor
管理进程的工具。
1.2.1 安装
##1. 安装
## yum -y install epel-release
## yum -y install supervisor##2. 配置
## mv /etc/supervisord.conf /etc/supervisord.conf.bak
1.2.2 配置
## vi /etc/supervisord.conf; filename:supervisord.conf
; author:zxy
; date:2021-07-18[unix_http_server]
file=/var/run/supervisor/supervisor.sock ; (the path to the socket file)
;chmod=0700 ; sockef file mode (default 0700)
;chown=nobody:nogroup ; socket file uid:gid owner
;username=user ; (default is no username (open server))
;password=123 ; (default is no password (open server))[inet_http_server] ; inet (TCP) server disabled by default
port=0.0.0.0:9001 ; (ip_address:port specifier, *:port for all iface)
;username=user ; (default is no username (open server))
;password=123 ; (default is no password (open server))[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=1024 ; (min. avail process descriptors;default 200)
user=root[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=http://0.0.0.0:9001 ; use an http:// url to specify an inet socket
;username=chris ; should be same as http_username if set
;password=123 ; should be same as http_password if set[include]
files = /etc/supervisord.d/*.conf
1.2.3 启动supervisord
[root@hadoop /]# touch /var/run/supervisor/supervisord.pid
/etc/supervisord.d/ : 存放supervisor的配置文件
/var/run/supervisor/: 存放pid的进程
/var/log/supervisor/: 存放supervisor的日志文件##2. 设置开机自启动
[root@hadoop supervisor]# systemctl enable supervisord
##3. 开启服务器
[root@hadoop supervisor]# systemctl start supervisord
[root@hadoop supervisor]# systemctl status supervisord
● supervisord.service - Process Monitoring and Control DaemonLoaded: loaded (/usr/lib/systemd/system/supervisord.service; enabled; vendor preset: disabled)Active: active (running) since Thu 2021-05-27 14:50:01 CST; 12s agoProcess: 16460 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)Main PID: 16481 (supervisord)CGroup: /system.slice/supervisord.service└─16481 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.confMay 27 14:50:01 hadoop systemd[1]: Starting Process Monitoring and Control Daemon...
May 27 14:50:01 hadoop systemd[1]: Started Process Monitoring and Control Daemon.
1.3 supervisor管理进程
hive_metastore.conf
[root@hadoop supervisord.d]# vim hive_metastore.conf
; filename:hive_metastore.conf
; author:zxy
; date:2021-07-18
; desc:配置supervisor管理metastore[program:metastore]
directory=/opt/apps/hive-1.2.1 ;软件的前缀
command=/opt/apps/hive-1.2.1/bin/hive --service metastore & ; 配置启动metastore的命令
stderr_logfile=/var/log/supervisor/hivemetastore.err ; 错误日志存放路径
stdout_logfile=/var/log/supervisor/hivemetastore.log ; 标准的日志存放路径
stdout_logfile_maxbytes=10MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=10 ; # of stdout logfile backups (default 10)
user=root ; 只能root用户启动
autostart=true ; 自动启动
autorestart=true ; 自动重启
startsecs=10 ; 开机10s之后如果应用程序是running状态,supervisor就认为这个启动是成功
startretries=3 ; 重启3此之后还是没有成功,就标记为失败
redirect_stderr=false ; 如果是true,那么stderr日志就会写入到stdout中
hive_hiveserver2.conf
[root@hadoop supervisord.d]# vim hive_hiveserver2.conf
; filename:hive_hiveserver2.conf
; author:zxy
; date:2021-07-18
; desc:配置supervisor管理hiveserver2[program:hiveserver]
directory=/opt/apps/hive-1.2.1 ;软件的前缀
command=/opt/apps/hive-1.2.1/bin/hive --service hiveserver2 & ; 配置启动hiveserver的命令
stderr_logfile=/var/log/supervisor/hiveserver.err ; 错误日志存放路径
stdout_logfile=/var/log/supervisor/hiveserver.log ; 标准的日志存放路径
stdout_logfile_maxbytes=10MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=10 ; # of stdout logfile backups (default 10)
user=root ; 只能root用户启动
autostart=true ; 自动启动
autorestart=true ; 自动重启
startsecs=10 ; 开机10s之后如果应用程序是running状态,supervisor就认为这个启动是成功
startretries=3 ; 重启3此之后还是没有成功,就标记为失败
redirect_stderr=false ; 如果是true,那么stderr日志就会写入到stdout中
1.4通过supervisor开启/关闭/重启hive服务
##1. 查看supervisor下的所有的应用程序的状态
[root@hadoop azkaban-solo-server]# supervisorctl reread
metastore: available
hiveserver: available##2. 更新supervisor中的指定程序
[root@hadoop azkaban-solo-server]# supervisorctl update metastore
metastore: added process group
[root@hadoop azkaban-solo-server]# supervisorctl update hiveserver
hiveserver: added process group
##3. 查看指定程序的状态
[root@hadoop azkaban-solo-server]# supervisorctl status metastore
metastore RUNNING pid 25360, uptime 0:01:05
...
##4. 关闭指定的程序
[root@hadoop azkaban-solo-server]# supervisorctl stop metastore
metastore: stopped
...
##5. 开启指定的程序
[root@hadoop azkaban-solo-server]# supervisorctl start metastore
metastore: stopped
...
1.4.1 supervisorctl 启动hive的进程
[root@hadoop supervisord.d]# supervisorctl start metastore
[root@hadoop supervisord.d]# supervisorctl start hiveserver
[root@hadoop supervisord.d]# jps
3361 NodeManager
2456 NameNode
2601 DataNode
48601 RunJar
3242 ResourceManager
48602 RunJar
2845 SecondaryNameNode
48831 Jps
[root@hadoop supervisord.d]# hiveLogging initialized using configuration in file:/data/apps/hive-1.2.1/conf/hive-log4j.properties
hive (default)>
2.使用脚本控制supervisord启动
#!/bin/bash
# filename:start-supervisord-hive.sh
# autho:zxy
# date:2021-07-19
# 接受参数
CMD=$1## 帮助函数
usage() {echo "usage:"echo "start-supervisord-hive.sh start/stop"echo "description:"echo " start:start supervisord-hive"echo " stop:stop supervisord-hive"exit 0
}if [ ${CMD} == "start" ];then# 启动supervisor管理的hive服务systemctl start supervisordsystemctl status supervisord
elif [ ${CMD} == "stop" ];then# 关闭supervisor管理的hive服务systemctl stop supervisordsystemctl status supervisord
elseusage
fi
Supervisor管理hive服务(metastore,hiveserver2),防止意外杀死Hive服务,导致任务中断相关推荐
- mysql服务无法启动进程意外终止_mysql服务无法启动 1067 错误,进程意外终止
mysql服务无法启动 1067 错误,进程意外终止 2015年02月10号 发表于:评论 () 热度:1148 今天window服务器上的mysql 服务 无法启动 , 查看应用程序日志 提示 &q ...
- hive mysql5.7_安装并使用mysql5.7作为hive的metastore
前言 hive的metastore默认是使用derby来作为metastore,但是derby有一个缺点是不能支持多用户链接,虽然你可以通过切换目录来支持,但是不同目录的metastore会不一致,所 ...
- 新的比较详细的hive安装教程,包含:hadoop的安装配置,hive安装详细教程,大数据下hive详细配置和简单使用和hive元数据迁移相关安装配置操作
简介:这是大数据里安装hive比较详细的教程,包括安装hive时hadoop的相关配置,hive安装,hive 之后的mysql安装,hive的元素配置到mysql相关配置,hive常见属性的相关配置 ...
- Hive on Spark和Spark sql on Hive,你能分的清楚么
摘要:结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序. 本文分享自华为云社区<Hive on Spark和Spark sql o ...
- hive 结构metastone_基于MySQL元数据的Hive的安装和简单测试
3.9 下载驱动,并将驱动复制到hive_home/lib类库 mysql-connector-Java-5.1.31-bin.jar 3.10 启动Hive 3.11 在Hive中创建表 3.12 ...
- Hive的Metastore服务和Hiveserver2服务的详细说明
Hive的Metastore服务和Hiveserver2服务的详细说明 一.Metastore服务 1.什么时候需要开启和使用Metastore服务呢? 首先我们先来了解Hive获取Mysql元 ...
- Hive 元数据服务 MetaStore
1. 概念 MetaSore 是 Hive 元数据存储的地方.Hive 数据库.表.函数等的定义都存储在 MetaStore 中.根据系统配置方式,统计信息和授权记录也可以存储在这.Hive 或者其他 ...
- php使用supervisor管理进程脚本
supervisor是用python开发的一个在linux系统下的进程管理工具,可以方便的监听,启动,停止一个或多个进程.当一个进程被意外杀死后,supervisor监听到后,会自动重新拉起进程. 一 ...
- 详解:Hive的MetaStore和三种配置方式
一:Metadata概念: 元数据包含用Hive创建的database.table等的元信息.元数据存储在关系型数据库中.如Derby.MySQL等. 二:Metastore作用: 客户端连接meta ...
- 使用supervisor管理laravel队列 - 配置文件supervisord.conf
相关文章 上一篇:使用supervisor管理laravel队列 ,此篇重点性描述了我本地配置supervisor的全部过程:但是并未介绍为啥这么配置,这里,我就来记录一下配置supervisor的各 ...
最新文章
- Nginx主主负载均衡架构
- 用户画像-撸一部分代码啊
- JDK 1.4 主要新特性
- spring配置详解-三种对象创建方式_
- 学不动?Apache Member 教你评估实用技术的思路
- Java面试知识点手工笔记(推荐)(转)
- PMP项目管理培训课程
- 【概率论与数理统计】目录
- 深度学习优化算法-AdaDelta算法
- python3-关于GitHub的最基本操作
- Round 2—算法的复杂度
- 杨帅浙江大学计算机,诚邀校友见证杭州校友会注册成立(非活动帖)
- (学习笔记)JAVA开发需要掌握哪些技术?
- vue 项目, 父组件中每次点击按钮重新加载子组件,(重新生成dom 元素)
- RabbitMq高级惰性列队
- czl蒻蒟的OI之路10、11、12
- c语言60题,C语言复习60题
- linux系统安装hba驱动,RedHat Linux下的HBA驱动安装
- KUKA officelite8.5 “无法建立至KRC的连接”解决办法
- 回文判断 【问题描述】 回文是正读和倒读都一样的句子。读入一个最大长度不超过50个字符的句子,判断其是否是回文。 【输入形式】 输入一个最大长度不超过50个字符的句子 【输出形式】 Yes/No
热门文章
- 在线进位制计算机,2进制换算(十六进制计算器在线)
- 【Java 8 新特性】使用Collectors.toList()方法将Map转化成List的示例
- Java 嵌入 SPL 轻松实现 Excel 文件合并
- ACL(标准/扩展访问控制列表)
- matlab定义对角块矩阵,Matlab中的扩展块对角矩阵
- Adobe Experience Cloud落地中国,Adobe、微软与世纪互联共庆三方合作
- Java——课设——图书管理系统实现
- 区块链掀起的认知革命!|筱静观察
- 黑马程序员培训没兄弟会高级
- 【VBA研究】用VBA创建数据透视表