大数据学习:haproxy实现impala的负载均衡

news2024/11/26 18:30:56

HAProxy实现Impala的负载均衡

1.HAProxy安装及启停

1.1 在集群中选择一个节点,使用yum方式安装HAProxy服务

[root@data01-dev ~]# yum -y install haproxy

1.2 启动与停止HAProxy服务,并将服务添加到自启动列表

[root@data01-dev ~]# service haproxy start
[root@data01-dev ~]# service haproxy stop
[root@data01-dev ~]# chkconfig haproxy on
[root@data01-dev ~]#  service haproxy status
Redirecting to /bin/systemctl status haproxy.service
● haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-10-20 19:29:46 CST; 19h ago
 Main PID: 27994 (haproxy-systemd)
   CGroup: /system.slice/haproxy.service
           ├─27994 /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
           ├─27995 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
           └─27996 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds

Oct 20 19:29:46 data01-dev systemd[1]: Started HAProxy Load Balancer.
Oct 20 19:29:46 data01-dev haproxy-systemd-wrapper[27994]: haproxy-systemd-wrapper: executing /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds

3.HAProxy配置Impala负载均衡

1.将/etc/haproxy目录下的haproxy.cfg文件备份,新建haproxy.cfg文件,添加如下配置

#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    #option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main *:5000
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js

    use_backend static          if url_static
    default_backend             app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
    balance     roundrobin
    server      static 127.0.0.1:4331 check

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  app1 127.0.0.1:5001 check
    server  app2 127.0.0.1:5002 check
    server  app3 127.0.0.1:5003 check
    server  app4 127.0.0.1:5004 check
	
listen status
	bind data01-dev:1080
	mode http
	option httplog
	maxconn 5000
	stats refresh 30s
	stats uri /haproxy
	stats enable
	stats realm Global\ statistics
	stats auth admin:admin
	
listen impala_shell data01-dev:25003
    mode tcp
    option tcplog
    balance leastconn
    #主机列表
    server impala1 impala01-dev:21000
    server impala2 impala02-dev:21000
    server impala3 impala03-dev:21000
    server impala4  data01-dev:21000
    server impala5  data02-dev:21000
    server impala6  data03-dev:21000

listen impala_jdbc data01-dev:25004
    mode tcp
    option tcplog
    balance roundrobin
    #主机列表
    server impala1 impala01-dev:21050
    server impala2 impala02-dev:21050
    server impala3 impala03-dev:21050
    server impala4  data01-dev:21050
    server impala5  data02-dev:21050
    server impala6  data03-dev:21050
	
log 127.0.0.1 local0 info


主要配置了HAProxy的http状态管理界面、impalashell和impalajdbc的负载均衡。

2. 重启HAProxy服务

[root@data01-dev haproxy]# service haproxy restart

3.浏览器访问

访问地址: http://{hostname}:1080/stats

4.Impala Shell测试

使用多个终端同时访问,并执行SQL语句,查看是否会通过HAProxy服务自动负载到其它Impala Daemon节点

1.使用Impala shell访问HAProxy服务的25003端口,命令如下

[root@data01-dev ~]# impala-shell -i data01-dev:25003

2.打开第一个终端访问并执行SQL

[root@data01-dev ~]# impala-shell -i data01-dev:25003
Starting Impala Shell without Kerberos authentication
Opened TCP connection to data01-dev:25003
Connected to data01-dev:25003
Server version: impalad version 3.2.0-cdh6.3.2 RELEASE (build 1bb9836227301b839a32c6bc230e35439d5984ac)
***********************************************************************************
Welcome to the Impala shell.
(Impala Shell v3.2.0-cdh6.3.2 (1bb9836) built on Fri Nov  8 07:22:06 PST 2019)

Want to know what version of Impala you're connected to? Run the VERSION command to
find out!
***********************************************************************************
[data01-dev:25003] default> select * from test_xac_tmp.xichuan_test limit 1;
Connection lost, reconnecting...
Opened TCP connection to data01-dev:25003
Query: select * from test_xac_tmp.xichuan_test limit 1
Query submitted at: 2022-10-21 14:46:20 (Coordinator: http://data02-dev:25000)
Query progress can be monitored at: http://data02-dev:25000/query_plan?query_id=074d7571e7cd831e:c2f9b34300000000
+----+-----------+------+
| id | continent | area |
+----+-----------+------+
| 1  | a         | 1    |
+----+-----------+------+
Fetched 1 row(s) in 5.04s

3.同时打开第二个终端访问并执行SQL

[root@master01-dev ~]# impala-shell -i data01-dev:25003
Starting Impala Shell without Kerberos authentication
Opened TCP connection to data01-dev:25003
Connected to data01-dev:25003
Server version: impalad version 3.2.0-cdh6.3.2 RELEASE (build 1bb9836227301b839a32c6bc230e35439d5984ac)
***********************************************************************************
Welcome to the Impala shell.
(Impala Shell v3.2.0-cdh6.3.2 (1bb9836) built on Fri Nov  8 07:22:06 PST 2019)

You can change the Impala daemon that you're connected to by using the CONNECT
command.To see how Impala will plan to run your query without actually executing
it, use the EXPLAIN command. You can change the level of detail in the EXPLAIN
output by setting the EXPLAIN_LEVEL query option.
***********************************************************************************
[data01-dev:25003] default> select * from test_xac_tmp.xichuan_test limit 1;
Connection lost, reconnecting...
Opened TCP connection to data01-dev:25003
Query: select * from test_xac_tmp.xichuan_test limit 1
Query submitted at: 2022-10-21 14:46:26 (Coordinator: http://data03-dev:25000)
Query progress can be monitored at: http://data03-dev:25000/query_plan?query_id=c740bb9f6d8c326f:d585881000000000
+----+-----------+------+
| id | continent | area |
+----+-----------+------+
| 1  | a         | 1    |
+----+-----------+------+
Fetched 1 row(s) in 0.03s

通过以上测试可以看到,两个终端执行的SQL不在同一个Impala Daemon,这样就实现了Impala Daemon服务的负载均衡。

5.Impala JDBC测试

这里Java的测试工程就不详细描述如何创建了

配置JDBC的地址为HAProxy服务所在的IP端口为25004

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

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

相关文章

Redis持久化——RDF与AOF两种方式怎么做?有什么区别?

目录 1. 什么是RDB 2. save 和 bgsave 命令主动保存数据 2.1 save 2.2 bgsave 3. Redis 内部自动RDB机制 4. RDB 底层是如何实现 bgsave 的? 5. RDB 的缺点 6. 什么是AOF? 7. AOF文件的缺点? 8. AOF 重写文件配置 9. RDB 与 AOF …

Unexpected mutation of “xxxx“ prop

原因 是因为子级修改了父级的数据,所以eslint执行的时候报了这个错 修复方式 1 如果是弹窗等组件,可以根据功能进行修改,比如我这块用的 element ui 的 dialog,便可以改成这样 使用 model-value 代替 修复方式 2 新建子组件…

CTFhub-文件上传-MIME绕过

用哥斯拉生成 php 木马文件 1.php 抓包---> 修改 conten-type 类型 为 imge/jpeg 用蚁剑连接 ctfhub{8e6af8109ca15932bad4747a}

云计算的三个主要服务模型:IaaS、PaaS 和 SaaS

文章目录 介绍基础设施即服务(Infrastructure as a Service,IaaS)平台即服务(Platform as a Service,PaaS)软件即服务(Software as a Service,SaaS) 区别基础设施即服务&…

VS2022 Community 安装步骤

VS2022 Community 安装步骤(C语言学习) 1. 下载地址2. 安装步骤 1. 下载地址 链接: VS2022 Community下载地址 2. 安装步骤 双击图标进行安装。 点击【继续】后等待安装。 选择需要的安装包并修改安装位置,然后点击【安装】。 点击安装…

vue 小黑记事本

vue 小黑记事本 下面这个界面用html和css 如何搞出来?

市面上的ipad国产触控笔怎么样?适合开学买电容笔推荐

自从ipad之类的平板电脑上出现了电容笔,电容笔就成功的取代了我们的手指,大大加快了我们的写作速度。不过,苹果推出的这款电容笔,由于其特殊的压感和芯片技术,价格一直很贵,很多人都很难买得起,…

Error encountered when performing Introspect database postgres schema

我在使用postgresql数据库的时候遇到了这两个异常: 并且查看不到数据库里的表信息 Error encountered when performing Introspect database postgres schema public (details): 错误: 字段 t.relhasoids 不存在 Error encountered when performing Introspect database pos…

Python钢筋混凝土结构计算.pdf-混凝土强度设计值

计算原理: 需要注意的是,根据不同的规范和设计要求,上述公式可能会有所差异。因此,在进行混凝土强度设计值的计算时,请参考相应的规范和设计手册,以确保计算结果的准确性和合规性。 代码实现: …

2023年天府杯——C 题:码头停靠问题

问题背景: 某个港口有多个不同类型的码头,可以停靠不同种类的船只。每 艘船只需要一定的时间来完成装卸货物等任务,并且每个码头有容量 限制和停靠时间限制。港口需要在保证收益的情况下,尽可能地提高 运营效率和降低成本。同…

快速上手: Linux环境配置, 基本指令与项目部署要点

文章目录 1. Linux前置知识1.1. 什么是Linux1.2. Linux环境的搭建 2. Linux常用命令lscd pwdtouch cat more echo mkdirvi/vimrm cp mvgrep ps netstat 管道符yum相关Linux权限 3. 使用Linux部署Servlet项目3.1. 安装JDK3.2. 安装Tomcat3.3. 通过yum安装MariaDB3.4. 部署Servle…

vue3和vue2的主要区别

Vue 3 和 Vue 2 之间有几个主要的区别: 性能优化:Vue 3 在性能方面进行了一些改进,包括更快的渲染速度和更小的包大小。Vue 3 使用了新的响应式系统,可以更好地追踪依赖关系,从而提高了渲染性能。 Composition API&am…

深圳科普宣传片的重要性

科普宣传片是指科学普及宣传片,旨在向公众传播科学知识、提高科学素养、促进科学文化的传播和科学教育。接下来由深圳科普宣传片制作公司老友记小编从以下几个方面浅析科普宣传片的重要性: 1.普及科学知识:科普宣传片可以向大众传达科学知识,…

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像...

原文链接:http://tecdat.cn/?p24346 在今天产品高度同质化的品牌营销阶段,企业与企业之间的竞争集中地体现在对客户的争夺上(点击文末“阅读原文”获取完整代码数据)。 “用户就是上帝”促使众多的企业不惜代价去争夺尽可能多的客…

【紫光同创国产FPGA教程】——【PGL22G第六章】密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL22G开发平台(盘古22K) 一:盘古22K开发板(紫光同创PGL22G开发…

「2024」预备研究生mem-相同元素问题仅选取隔板法相邻与不相邻问题

一、相同元素问题&仅选取&隔板法&相邻与不相邻问题 不理解可以不考虑这种方法: 隔板法: 使用分堆分配,此时比较麻烦:

基于Java+SpringBoot+Vue前后端分离智能学习平台系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

part-01 C++知识总结(程序的内存分区、多态的实现)

总结来自:拓跋阿秀大佬的面试知识网站,侵权删 一.程序的内存分区/程序模型 内存分区分别是堆、栈,自由存储区,全局/静态存储区、常量存储区和代码存储区。 栈:在执行函数时,函数内局部变量的存储单元都可以…

centos升级python3.10,中间遇到问题,终于解决了

升级为python3.10 yum updateyum install openssl-devel bzip2-devel libffi-develyum groupinstall "Development Tools"wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgztar -xzf Python-3.10.2.tgzcd Python-3.10.2./configure --enable-optimi…

OpenCV(九):LUT查找表

LUT(Look-Up Table)查找表是OpenCV中一种常用的图像处理方法,用于对图像进行像素级别的颜色映射或图像增强操作。LUT查找表可以实现快速、高效的颜色转换和像素操作,尤其在处理大量像素的情况下具有优势。以下是关于OpenCV LUT查找…