近期,喜乐君为客户部署了三个节点的Tableau集群,特此记录过程如下。
常见的安装Tableau 服务器的方式有如下三种类型::
- 单节点安装 – 常常适用于测试、运行试验,或者规模较小的企业用户。单节点的系统稳定性不好,相比之下,更推荐中小企业直接使用Tableau Cloud的SaaS版本。单节点的后台进程如下所示。
- 分布式安装 – 又称“多节点安装”。将服务器进程分布到多个节点可以通过提供冗余和额外的计算能力来扩展 Tableau Server 的可靠性和效率。通过正确的配置,分布式安装还可以为您提供自动存储库故障转移。分布式可以是两个,或者更多节点构成。如果是多个,它和HA的区别在在于配置不同。
- 高可用性 (HA) 安装 – Tableau Server 的 HA 安装是一种特殊类型的多节点安装,其中至少包括三个节点,以及不同计算机上的关键进程(存储库、文件存储/数据引擎 (Hyper)、协调服务和客户端文件服务)的多个实例。使用 HA 安装,这些关键进程存在内置冗余,包括多个文件存储和自动存储库故障转移。其目标是通过消除单点故障来最大限度地减少系统停机时间,并在可能的情况下通过故障切换实现故障检测。(⚠️ HA高可用并不能保证服务可以持续,依然存在停机风险,喜乐君已经确认,并与厂家确认)
一、安装第二个和第三个服务器节点
1、安装server
su - admin
sudo yum -y install tableau-server-2021-3-4.x86_64.rpm
2、使用主节点的引导文件引导初始化
首先,在主节点生成引导文件,之后使用scp命令,传输到其他两个节点中。
su - admin
tsm topology nodes get-bootstrap-file -f ~/tableau-master-index.json
# 同步至从节点,并在从节点检查
scp ~/tableau-master-index.json root@50.27.2.13:/tmp
ls -lrt /tmp/tableau-master-index.json
其次,使用引导文件,在其他节点引导初始化。
⚠️ 喜乐君:这里使用的是2021.3.X版本,没有对应的ATR服务,如果是更高的版本,默认需要激活ATR服务,否则需要增加no-activation-service校本。
# 切换admin用户
su - admin
# 两个从节点均完成切换目录动作 ,* 代表版本号
cd /opt/tableau/tableau_server/packages/scripts.*
# 使用引导文件完成从节点的初始化
sudo ./initialize-tsm -b /tmp/tableau-master-index.json --accepteula
二、配置节点进程
在每个节点初始化之后,建议直接使用8850的web界面完成进程配置和确认。
打开8850后,点击配置,会弹出“节点已添加”的体系,点击“继续”会进入配置环节。
点击“继续”之后,才会出现第二个节点的配置界面。
初次配置,推荐查看官方的帮助文件“示例:安装并配置三节点高可用性群集。 这里我先增加网关和两个vizql server,然后就可以完成初步拓扑。增加Viz QL或者后台进程,会自动增加数据引擎。
按照相同的步骤,可以增加第三个节点。如果没有额外的配置,此时相当于分布式集群。如下所示。
三、HA高可用的部署
高可用的关键是备用的存储库(repository)、C FS文件服务、数据存储等关键服务的配置。官方列举了高可用的前提条件:
您还可以通过满足以下要求来创建 Tableau Server 的高可用性 (HA) 安装:
- 至少三个节点添加更多节点
- 在至少三个节点上部署协调服务整体(协调服务需要是奇数,比如1个、3个、5个)
- 在至少一个附加节点上添加客户端文件服务 (CFS) 的实例(官方建议在运行协调服务的每个节点上添加实例)
- 在其中一个附加节点上添加文件存储的第二个实例(数据引擎会和文件存储一起安装)
- 在其中一个附加节点上添加存储库 (pgsql) 的第二个实例——保存关键的存储文件
满足上述要求的Tableau Server 将具有内置冗余,并且可以在存储库出现问题的情况下支持故障转移。
⚠️特别说明,是在“存储库”故障上支持转移,比如主节点故障,此时辅助节点会自动启用存储库,减少宕机时间。但,这不意味着整个集群必然具有自动恢复的能力。
1、配置协调服务
协调服务基于 Apache ZooKeeper(链接在新窗口中打开)(一种开源项目)而构建,用于协调服务器上的活动,可保证发生故障时的法定数量,并且作为关于服务器拓扑、配置和状态的“信任”来源。服务将自动安装在初始 Tableau Server 节点上,但在添加附加节点时不会安装其他实例。由于 Tableau Server 的成功运行取决于正常运行的协调服务,因此我们建议您部署新的协调服务整体,以为三个或更多节点的服务器安装添加其他协调服务实例。如果协调服务的一个实例有问题,这样做可以提供冗余和改进可用性。
Tableau官网帮助文档
首先,查看集群中的节点id,默认是node1、node2和node3.之后,停止服务器环境。
# 查看每个节点的node编号
tsm topology list-nodes -v
# 停止tsm服务
tsm stop
其次,再确认没有未执行的任务之后,执行协调服务配置。协调服务对环境要求比较高,如果有待确认任务,务必要discard抛弃,或者先行执行完毕。
# 确认是否存在未执行的任务
tsm pending-changes list
# 放弃未执行的应用
tsm pending-changes discard
# 执行当前的待定应用
tsm pending-changes apply
最后,配置协调服务,这里为三个节点统一安装。如果中途出现错误,则需要tsm topology cleanup-coordination-service 移除未成功的部署。
tsm topology deploy-coordination-service -n node1,node2,node3
需要注意的是,协调服务不会出现在8850的UI界面中,它和CFS文件服务一样,必须通过命令才能完成。 之后可以执行tsm start或者再执行其他命令。
2、添加文件服务
按照官方建议,cfs文件服务需要和协调服务保持一致,接下来为两个节点分别添加文件服务,并执行这里的设置。
tsm topology set-process -n node2 -pr clientfileservice -c 1
tsm topology set-process -n node3 -pr clientfileservice -c 1
tsm pending-changes apply
客户端文件服务 (CFS) 存储并分发 TSM 所需的文件(例如,证书、自定义文件等),如果一个文件服务不能运行,那么tableau控制器会把请求转发到其他正常的服务中,从而保证正常运行。因此,建议在每个具有协调服务的节点中,配置文件服务。
关于文件服务,更多可以参考 https://help.tableau.com/current/server-linux/zh-cn/server_process_cfs.htm
3、配置节点数量
在配置好协调服务和文件服务后,就可以在8850中,一次性部署其他服务了。特别是VIZQL和后台程序。
通常,建议把后台进程部署到单独的服务器,从而减少长时间提取带给其他服务的压力。在具有Advance Management许可证的环境中,甚至可以为单个节点配置“数据提取”角色,确保它专注于关键任务。相关内容参考:通过节点角色管理工作负载
四、平台配置选项
1、配置驱动、防火墙、时钟、语言、字体等其他内容
这些都是独立于Tableau之外的设置,特别是驱动。
服务器管理员应该为具有后台程序、可视化、数据存储等的节点都要安装驱动,确保访问正常。
为了避免方框字体,还需要为多个节点安装必要的字体(注意商业字体的授权问题)。
2、启用Postgresql内部访问
如果想要查看Tableau server管理视图,需要安装pg驱动;而如果想要自定义报表,此时需要启用访问账号。如下代码,可以为readonly用户创建访问密码。
tsm data-access repository-access enable --repository-username readonly --repo
sitory-password <PASSWORD>
之后,就可以登陆80端口,使用pg创建自定义的管理视图了。初学者可以去github下载其他人写好的视图或者sql查询。
3、启用Tableau catalog访问
默认Catalog是没有启用的,需要通过命令激活元数据功能,同步开启Catalog。启用之后,Tableau会对内容立刻做索引。这会显著增加磁盘使用。
tsm maintenance metadata-services
参考文章:
May 13, 2023
by 喜乐君
了解 喜乐君 的更多信息
订阅后即可通过电子邮件收到最新文章。