hiveserver2或sparksql和HApoxy远程服务的高可用和负载均衡
来源:互联网 发布:云计算 刘鹏 ppt 编辑:程序博客网 时间:2024/06/05 11:09
pache Spark 现在是大数据中非常流行的处理引擎,简单的API、内存计算、很好的性能、一站式的解决方案、良好的生态,Spark是大数据中最火的明星AngelaBaby。在Spark内部的多个组件中,SQL组件也是很多公司用的最多的一个内部组件。由于Spark SQL并不适用于大并发的场景,所以在实际的生产过程中发现,由于SparkSQL并不能限制用户数,经常会有过多的用户以及过多的任务,导致Spark SQL 的Thrift Server服务非常不稳定。
这个问题在生产过程中非常实际,我们一般建议使用开源软件 HAProxy来解决,下面主要叙述一下具体的解决步骤;顺带一句HAproxy不仅可以解决Spark SQL的连接数,也可以用来用于部署Spark的HA。
安装
yum -y install gcc automake autoconf libtool make
至HAProxy的官网网站http://www.haproxy.org/下载最新版本的安装包haproxy-1.7.5.tar.gz。
[root@zdh223 ~]#tar zxvf haproxy-1.7.5.tar.gz
[root@zdh223 ~]#cd haproxy-1.7.5
[root@zdh223 ~]#make TARGET=zdh221
[root@zdh223 ~]#make install
安装结束。
在任意目录下执行 haproxy –vv 如果能正确显示haproxy的版本号,即表示安装正确。
配置
在haproxy-1.7.5目录下创建文件sparksql.cfg,文件名可以任意。内容如下:
global daemon nbproc 1 pidfile /opt/haproxy-1.4.24/haproxy.pid ulimit-n 65535 defaults mode tcp #mode { tcp|http|health },tcp 表示4层,http表示7层,health仅作为健康检查使用 retries 2 #尝试2次失败则从集群摘除 option redispatch #如果失效则强制转换其他服务器 option abortonclose #连接数过大自动关闭 maxconn 1024 #最大连接数 timeout connect 1d #连接超时时间,重要,hive查询数据能返回结果的保证 timeout client 1d #同上 timeout server 1d #同上 timeout check 2000 #健康检查时间 log 127.0.0.1 local0 err #[err warning info debug] listen admin_stats #定义管理界面 bind 0.0.0.0:8040 #管理界面访问IP和端口 mode http #管理界面所使用的协议 maxconn 10 #最大连接数 stats refresh 30s #30秒自动刷新 stats uri / #访问url stats realm Hive\ Haproxy #验证窗口提示 stats auth dc:dc #401验证用户名密码 listen hive #hive后端定义 bind 0.0.0.0:10000 #ha作为proxy所绑定的IP和端口 mode tcp #以4层方式代理,重要 balance leastconn #调度算法 'leastconn' 最少连接数分配,或者 'roundrobin',轮询分配 maxconn 1024 #最大连接数 server hive_1 dc-dev004.dx.momo.com:10002 check inter 180000 rise 1 fall 2 server hive_2 dc-dev005.dx.momo.com:10002 check inter 180000 rise 1 fall 2 #释义:server 主机代名(你自己能看懂就行),IP:端口 每180000毫秒检查一次。也就是三分钟。 #hive每有10000端口的请求就会创建一个log,设置短了,/tmp下面会有无数个log文件,删不完。 #释义:server 主机代名,IP:端口 每180000毫秒检查一次。也就是三分钟。蓝色部分配置需要重点关注,视实际情况配置。
启停
· 启动
依次启动sparksql后,启动haproxy。
haproxy -f sparksql.cfg
· 停止
使用ps -ef|grep haproxy检查出进程后kill。
验证
· 功能验证
在多台客户端的spark目录下执行:
bin/beeline-u jdbc:hive2://zdh221:18001 -n mr
均可以正常连接,并进行操作。
查看haproxy的web页面,http://10.43.156.221:1090/口令:admin/123456 (上文配置),可以看到各服务器均有负载。
查看每个sparksql的后台日志,可以看到均有业务日志。
· 最大连接数验证
更改上文配置文件中的listen SparkSql下的maxconn 1024为2,并重启haproxy。
当在2台客户端的spark目录下使用beeline,均可以连接并操作,当使用第3台客户端的beeline连接时候,会显示连接等待,无法连接。
- hiveserver2或sparksql和HApoxy远程服务的高可用和负载均衡
- redis实现负载均衡和高可用
- 转载-nginx实现负载均衡和高可用的方法
- 负载均衡软件HAProxy案例一 带cookie前缀和高可用的HTTP负载均衡
- keepalived搭建高可用负载均衡服务
- Mysql router高可用和负载均衡测试
- 架构分布式____HA和KeepAlive实现高可用负载均衡
- LVS+Keepalived做Red5高可用和负载均衡
- 实现基于haproxy和keepalived的负载均衡和高可用架构
- 均衡负载方式搭建高可用的flume-ng环境写入信息到hadoop和kafka
- 详解scribe+flume搭建高可用的负载均衡日志收集系统入hadoop和kafka
- OpenWrt基于HAProxy的透明代理负载均衡和高可用部署
- 利用keepalived和haproxy配置mysql的高可用负载均衡
- 构建负载均衡和高可用的PXC环境(HAProxy+Keepalived+PXC)问题补充
- 高可用负载均衡
- 负载均衡高可用
- oracle的高可用与负载均衡
- 负载均衡和高可用性
- c:const array
- 为什么baseServlet可以调用很多方法
- .net mvc 帮助文档
- 【软考】-课本思维导图
- 图的邻接表的遍历以及简单路径
- hiveserver2或sparksql和HApoxy远程服务的高可用和负载均衡
- poj 1308 Is It A Tree? 并查集
- linux实训-数据提取
- 机器学习理论篇之NormalEquation推导过程
- <s:select 下拉 选择 登录 用户名 -- ajax ,json
- 机房重构之修改密码窗体所遇到的问题(1)
- 我的电路实践
- 牛腩新闻发布系统小知识集锦
- spring-cloud中config配置中心使用(基于eureka的高可用)