【一文看懂】使用hape部署分布式版Havenask

本文涉及的产品
推荐全链路深度定制开发平台,高级版 1个月
简介: 本次分享内容为使用hape部署分布式版Havenask,共2个部分组成(部署分布式版Havenask集群、 分布式相关问题排查),希望可以帮助大家更好了解和使用Havenask。

一、部署分布式版Havenask集群

部署分布式版的Havenask集群与单机版相同,都需要使用Hape工具(对于Hape工具,可以通过文章「Havenask入门系列【Havenask单机模式】」了解,这里不做赘述)。

  • 部署分布式版的Havenask集群也需要四个步骤,即准备环境、创建集群、创建表以及使用SQL语句进行数据读写。与单机版唯一有较大差距的是,在部署分布式版Havenask过程中,执行Hape时中要指定相应的配置。
  • 接下来,参考分布式部署文档逐步进行实际操作,相关文档可以在Github主页或Havenask官网查询。


hape工具参考: https://havenask.net/#/doc/sql/petool/intro

分布式部署参考: https://havenask.net/#/doc/sql/petool/clustermode



image.png


1、准备环境

机房有三台互相打通的物理机,且均已拉取最新的镜像,这部分操作可以跳过。


2、创建集群

  • 修改Hape容器中的分布式配置。首先,创建一个Havenask容器,这与单机版的操作相同,不再重复演示。然后,进入已创建的容器,搭建一个hdfs集群,java版本最佳,因为Havenask需要使用hdfs管理在线离线数据,如果hdfs集群是高可用,而非单点的,则要额外配置这两个环境变量,使得所有的容器均能访问对应的hdfs集群,读取hadoopHome下对应的高可用配置。由于之前搭建的是单点的hdfs集群,因此较为简单,可以直接在最下面新建两个文件夹用于存储数据文件。成功新建两个文件夹后,有两个文件路径与之对应,第一个Havenask的数据路径,第二个Swift消息队列的数据路径。


  • 接下来,修改配置当中的可用于调度物理机的列表。因为要部署的环境是分布式模式,而非单机模式,因此这些HavenaskSwift还有bs的进程均可分布在不同的物理机上。因此,我们需要修改global.conf,并把这些IP list修改到目标物理机上。当前的103104105三台物理机之前已经作过修改,因此,这里只做微调,将QRS上传到105上即可。


  • 我们可以用 Hape validate 验证,由于分布式配置并不是默认的,因此,要在相关内容前加-c,可以发现验证通过。搭建一个集群时也要加 -c,以指定这个配置文件的路径。由于涉及的物理机较多,因此,等待一段时间即可看到集群搭建成功。


3、创建表

  • 新增的表与之前的表有所不同,区别在于这个分片数是2,因此对应的数据分片会分布在两台机上。目前,该表新建完成,可以用hape gs havenask查看其分布情况。


  • 同样,也要添加上一个配置文件的路径。可以看到,这个 database的两个进程分布在两个不同物理机,而之前单机版仅有一台物理机,这也证明了这是一个分布式的集群,且已准备完毕。


4、SQL语句的读写

先写入一条数据,首先看QRS的地址,由于QRS105十台物理机上,因此,在查询时要指定地址。成功插入一条数据后,再进行查询可能查找。后面的操作与前面介绍的完全相同,这里不做单独说明。

 

二、分布式相关问题排查

这部分与单机模式也基本相同,我们可以在 Github 主页或者 Havenask 官网上找到相关问题排查的文档。由于这些问题大多与单机版类似,因此,这里只介绍与分布式相关的问题。


  • 首先,在分布式情境下,各项进程都分布在不同的物理机上,因此在排查问题时,往往要借助GS Havenask命令,以找到对应进程的位置。如qrs进程,假设其存在问题,即可看到其显示尚未ready,这样即可找到对应的物理机。同样,也可以找对应物理机上的日志文件,这是一个易出现问题的过程,在该集群模式下,hdfs配置可能不成功,因为,需要在多机模式下确保所有物理机均能访问hdfs路径。


  • 我们可以进入任意一台容器,执行命令fs_util,它是Havenask的一个工具,可以用于校验容器是否可以访问对应的路径。
    当然,还需要将JAVA_HOMEHADOOP_HOME自定义,课程中使用的是容器内置的,因此,没有进行单独的配置。
    假设,在进程日志中,频繁提示无法访问对应的hdfs路径,就可以使用该命令进行验证。

image.png


三、总结

具体使用hape部署分布式版Havenask的演示视频可以通过链接查看,欢迎各位开发者使用。

视频链接:https://developer.aliyun.com/live/253656?spm=a2c6h.13262185.profile.11.563bee42LdD7By


关注我们:

Havenask 开源官网:https://havenask.net/

Havenask-Github 开源项目地址:https://github.com/alibaba/havenask

阿里云 OpenSearch 官网:https://www.aliyun.com/product/opensearch

钉钉扫码加入 Havenask 开源官方技术交流群:

1715594790746.png

目录
相关文章
|
5天前
|
Java 测试技术 Linux
jmeter-分布式部署之负载机的设置
jmeter-分布式部署之负载机的设置
171 1
|
5天前
|
关系型数据库 MySQL 网络安全
利用ansbile部署lamp并部署Discuz(非分布式)
利用ansbile部署lamp并部署Discuz(非分布式),实验准备,设置ansbile的hosts文件,在192.168.115.148上完成相关准备,编写roles,执行
138 0
|
7月前
|
Java 应用服务中间件 Linux
07分布式电商项目 - 管理中心的部署
07分布式电商项目 - 管理中心的部署
112 0
|
7月前
|
Dubbo Java 应用服务中间件
06分布式电商项目 - Dubbox 本地 JAR 包部署与安装
06分布式电商项目 - Dubbox 本地 JAR 包部署与安装
86 0
|
5天前
|
Docker 容器 关系型数据库
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
本期课程将于4月11日19:00开始直播,内容包括源码编译基础知识和实践操作,课程目标是使学员掌握源码编译部署技能,为未来发展奠定基础,期待大家在课程中取得丰富的学习成果!
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
|
5天前
使用JWT的服务分布式部署之后报错:JWT Check Failure:
使用JWT的服务分布式部署之后报错:JWT Check Failure:
54 1
|
5天前
|
SQL 调度 数据库
Docker部署Xxl-Job分布式任务调度中心(超详细)
Docker部署Xxl-Job分布式任务调度中心(超详细)
|
5天前
|
存储 分布式计算 Hadoop
基于Hadoop分布式数据库HBase1.0部署及使用
基于Hadoop分布式数据库HBase1.0部署及使用
|
5天前
|
数据库 OceanBase
OceanBase数据库是一个分布式集群产品,在部署时对硬件资源有特定的需求
OceanBase数据库是一个分布式集群产品,在部署时对硬件资源有特定的需求【1月更文挑战第12天】【1月更文挑战第56篇】
123 2
|
5天前
|
消息中间件 存储 Java
分布式实时消息队列Kafka(二)Kafka分布式集群部署
分布式实时消息队列Kafka(二)Kafka分布式集群部署
174 0