大数据-------storm集群搭建与任务处理

1.在网上下载storm稳定版本的安装包,导入集群里面的一台服务器上。

2.确定安装路径、解压。(在这一部分很简单,不做多余的说明)

3.修改Storm文件目录下的配置文件(conf文件里面的storm.yaml文件)

Storm.yaml这个文件其实是一个空文件,我们可以直接添加如下信息(举例):

#zk所在集群对应的服务器地址(多个服务器要都写上去,不能漏掉,配置hosts的情况下格式例如)

storm.zookeeper.servers:

- "zk01"

- "zk02"

- "zk03"

- "zk04"

#storm的nimbus所在服务器,可以配置多个作为高可用,避免一个nimbus挂掉影响整个框架运行,配置hosts的情况下格式例如

nimbus.seeds: ["storm01", "storm02"]

#在服务器上新建此目录用于存储storm集群运行的加载文件,二次文件,注意这里要与storm处理数据文件要区分开,处理数据文件是流式的,向水流一样,进来计算操作在输出,不进行存储。

storm.local.dir: "/export/data/storm"

#这里是配置woeker对应的端口号,一个worker对应一个端口号(举例)

supervisor.slots.ports:

- 5300

- 5301

- 5302

- 5303

4.把这个服务器配置好的storm文件复制到其他服务器上,然后就可以启动storm集群

5.启动storm集群命令,因为storm集群依赖zk集群所以之前要确保zk集群处于启动状态,在每一台服务器上打开对应的storm文件下的bin文件,执行启动命令,

    5.1我们会先确定一个服务器来成为nimbus角色,在该服务器下执行storm nimbus命令就可以启动。

    5.2 在其他的supervisor服务器上运行storm supervisor,命令就可以启动。

6.查看是否启动,在其中一台服务器上启动命令 storm ui就可以通过浏览器查看storm启动的状态,运行的信息。访问http://(启动ui服务器地址):8080查看。

7.集群环境下运行编写好的java程序需要对java程序进行打包,然后上传到其中一台supervisor所在服务器,运行命令是:storm jar +(包名称)+(驱动类引用地址)。提交的程序运行的所有主要信息都可以通过浏览器访问ui来查看。

8.集群中提交任务以后storm的执行流程(简单描述,底层实际上操作很多,我们这里说主要的流程):

    8.1 任务提交以后nimbus会去zk集群获取空闲的worker信息,之后确定由哪个服务器的那个worker来运行程序,最后上传信息到zk集群(注意worker可能是多个,在编程是应该根据需求在驱动类指定相关worker信息)。

    8.2 zk触发watch机制,对应worker所在的supervisor会得到回调之后去zk集群下载信息并启动对应的worker(这是一个独立的进程)

9. worker组件(spout/bolt)数量的设置机制:

我们知道worker包含(spout与bolt),但是一个worker可能不只有一个spout,而对应的一个spout可能对应多个bolt,这里要体现出水流的概念,数据就好比是水流,spout数量的多少应该根据我们数据量来设定,必须满足这些spout单位时间处理数据的能力要大于我们数据在单位时间内的流量,bolt的数量设定也是一样,同一级别的bolt单位时间数据的数据量必须大于上流的spout或者bolt单位时间内的数据流量。

 

猜你喜欢

转载自blog.csdn.net/jinyusheng_1991/article/details/82192773