Storm在zookeeper上的操作和目录结构

Storm在Zookeeper上的操作和目录结构

Apache Storm是一个分布式实时计算系统,它的主要组件包括一个Nimbus(协调器)和一个Supervisor(工作节点),Storm使用Zookeeper来管理和协调各个组件之间的通信,本文将详细介绍Storm在Zookeeper上的操作和目录结构,帮助大家更好地理解和使用Storm。

Storm在zookeeper上的操作和目录结构

Zookeeper的基本概念

Zookeeper是一个分布式协调服务,它可以为分布式应用程序提供统一的服务接口,Zookeeper的主要功能包括:维护配置信息、命名服务、提供分布式同步和锁机制等,在Storm中,Zookeeper主要用于以下几个方面:

1、集群管理:Storm集群中的各个组件(如Nimbus和Supervisor)需要与Zookeeper进行通信,以获取集群的状态信息、元数据等。

2、故障检测与恢复:当某个组件出现故障时,Zookeeper可以帮助其他组件检测到故障,并采取相应的措施进行恢复。

3、任务分配与监控:Storm可以将任务分配给不同的工作节点,并通过Zookeeper实现任务的监控和状态报告。

Storm在Zookeeper上的操作

1、启动与关闭Nimbus

Storm在zookeeper上的操作和目录结构

要启动一个Storm集群,首先需要启动一个Nimbus,启动Nimbus时,需要向Zookeeper注册一个临时节点,用于存储Nimbus的元数据信息,启动一个单个Nimbus的命令如下:

./bin/nimbus.sh start target/storm-local-nimbus.jar --conf conf/storm-site.yaml --zookeeper zkhost:2181

--conf参数指定了Storm的配置文件路径,--zookeeper参数指定了Zookeeper的地址,启动成功后,Nimbus会在Zookeeper上创建一个名为/nimbuses的临时节点,用于存储Nimbus的信息。

2、添加与删除工作节点

要将一个工作节点添加到Storm集群中,需要先将其注册到Zookeeper上,注册一个工作节点的命令如下:

./bin/supervisor.sh start target/storm-local-daemon.jar --conf conf/storm-site.yaml --zookeeper zkhost:2181

--conf参数指定了Storm的配置文件路径,--zookeeper参数指定了Zookeeper的地址,注册成功后,工作节点会在Zookeeper上创建一个名为/workers的临时节点,用于存储工作节点的信息。

Storm在zookeeper上的操作和目录结构

要从Storm集群中删除一个工作节点,只需停止该工作节点对应的Supervisor进程即可,停止一个工作节点的命令如下:

./bin/supervisor.sh stop target/storm-local-daemon.jar --conf conf/storm-site.yaml --zookeeper zkhost:2181

3、更新任务分片信息

当需要更新一个任务的分片信息时,可以通过向Zookeeper提交一个事务来实现,更新一个任务分片信息的命令如下:

创建一个Zookeeper客户端连接
$ zkCli.sh create /task_info task_id 10000 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info storm_version 1 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info component_id supervisor &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info topology_name mytopology &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info worker_slots 5 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info task_type stream &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info num_executors 5 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info priority high &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info max_tasks_per_worker 5 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info failover_timeout 60000 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info request_timeout 60000 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info sync_batch_size 1000 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info sync_flush_secs 10 &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info update_topology false &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info update_executor false &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info update_worker false &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info update_component false &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh set /task_info update_config false &> /dev/null && echo "success" || echo "failed"
$ zkCli.sh setversion -c task_info task_id storm-local-1497764567767-0-50 task-version-1 storm-version storm-local storm://localhost:8080 worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-slots worker-socket storm://localhost:8080 num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executors num_executor

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/195194.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-03 09:42
Next 2024-01-03 09:48

相关推荐

  • 如何分析Pulsar 的消息保留和过期策略「」

    Apache Pulsar 是一个高性能、可扩展的分布式消息传递和流处理平台,Pulsar 提供了灵活的消息保留和过期策略,以满足不同场景下的需求,本文将详细介绍如何分析 Pulsar 的消息保留和过期策略。我们来看一下 Pulsar 的消息保留策略,在 Pulsar 中,有两种消息保留策略:定时删除(Timed deletion)和……

    2023-11-16
    0336
  • zookeeper如何实现集群管理

    ZooKeeper是一个分布式协调服务,用于维护配置信息、命名空间、分布式同步等,在构建高可用的分布式系统时,ZooKeeper可以作为一个重要的组件,本文将介绍如何使用ZooKeeper搭建集群,并提供详细的技术介绍和代码示例。一、ZooKeeper集群的基本概念1. 节点(Node):ZooKeeper中的一个服务器实例,负责存储……

    2023-11-19
    0174
  • zookeeper-3.4.6集群的搭建步骤

    准备工作在搭建Zookeeper集群之前,我们需要做一些准备工作,包括安装Java环境、下载并解压Zookeeper安装包等,以下是详细的准备工作步骤:1、安装Java环境Zookeeper是基于Java开发的,因此我们需要先安装Java环境,推荐使用JDK 8,可以从官网下载并安装:https://www.oracle.com/ja……

    2024-01-02
    0135
  • zookeeper 配置管理

    Zookeeper是一个分布式协调服务,主要用于维护配置信息、命名空间、提供分布式同步和提供组服务等,在实际应用中,我们需要对Zookeeper进行一些基本配置和高级配置,以满足不同的需求,本文将详细介绍Zookeeper常见基本配置项和高级配置项的说明。基本配置项1、数据存储路径Zookeeper的数据存储路径默认为/var/lib……

    2024-01-02
    0243
  • zookeeper实现主从结构原理

    Zookeeper简介Zookeeper是一个分布式协调服务,它提供了一种简单的原语模型,用于构建分布式系统中的同步服务,Zookeeper可以实现主从结构,使得一个服务器可以作为主服务器,其他服务器可以作为从服务器,实现数据的同步和共享,Zookeeper的主从结构具有高可用性、高性能、易扩展等特点,广泛应用于分布式系统中。Zook……

    2023-12-16
    0185
  • MPQ暴雪游戏更新服务器优化,为玩家提供更优质游戏体验 (mpq storm 更新服务器)

    MPQ Storm 更新服务器是暴雪娱乐(Blizzard Entertainment)为了改善旗下游戏产品的更新流程和提升玩家体验而采取的一项技术优化措施,以下是对这项技术的详细介绍:MPQ Storm 更新服务器概述MPQ(Media Pack Quick)是一种文件格式,用于打包和压缩游戏中的多媒体内容,如图像、音频和3D模型等……

    2024-04-08
    0120

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入