Storm集群部署与单词计数程序
来源:互联网 发布:淘宝代付 编辑:程序博客网 时间:2024/06/04 18:26
要搭建storm集群首先需要由zookeeper,关于zookeeper集群的搭建参考zookeeper集群搭建,这里使用三台机器,一台做做nimbus(mini1机器),两台做supervisor(mini2和mini3机器)。
三台hosts文件如下
[root@mini1 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 localhost.jinbm192.168.25.127 mini1192.168.25.129 mini2192.168.25.130 mini3
这里还是使用root用户来搭建
按照一般集群部署流程
集群部署的流程:下载安装包、解压安装包、修改配置文件、分发安装包、启动集群。
1、下载storm,我这里下载的是apache-storm-0.9.5.tar.gz,传到mini1机器上。
2、解压storm安装包到apps文件夹下(如果没有该文件夹需要创建,我这里以前将zookeeper,hadoop等都解压到了这个文件夹方便统一管理),解压后,修改名字为storm(一来为了方便,但主要是为了配置环境变量方便,即使以后换了storm版本只要改名为storm那么环境变量已然有效)。
[root@mini1 ~]# tar -zxvf apache-storm-0.9.5.tar.gz -C apps/[root@mini1 ~]# cd apps/[root@mini1 apps]# ll总用量 24drwxr-xr-x. 8 root root 4096 10月 19 15:15 apache-flume-1.6.0-bindrwxr-xr-x. 9 root root 4096 10月 30 15:24 apache-storm-0.9.5drwxrwxr-x. 10 hadoop hadoop 4096 9月 30 22:04 hadoop-2.6.4drwxr-xr-x. 7 root root 4096 10月 30 00:20 hbasedrwxr-xr-x. 8 root root 4096 10月 17 12:38 hivedrwxr-xr-x. 10 root root 4096 10月 29 23:21 zookeeper-3.4.6[root@mini1 apps]# mv apache-storm-0.9.5/ storm
3、修改环境变量(三台机器都一样)
最后添加2两信息
[root@mini1 storm]# vi /etc/profile...export STORM_HOME=/root/apps/stormexport PATH=$PATH:$STORM_HOME/bin[root@mini1 storm]# source /etc/profile
4、修改配置文件,进入strom目录的conf目录下,修改配置文件storm.yaml。添加内容如下:
[root@mini1 conf]# vi storm.yaml #指定storm使用的zk集群storm.zookeeper.servers:- "mini1"- "mini2"- "mini3"#指定storm集群中的nimbus节点所在的服务器nimbus.host: "mini1"#指定nimbus启动JVM最大可用内存大小nimbus.childopts: "-Xmx1024m"#指定supervisor启动JVM最大可用内存大小supervisor.childopts: "-Xmx1024m"#指定supervisor节点上,每个worker启动JVM最大可用内存大小worker.childopts: "-Xmx768m"#指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。ui.childopts: "-Xmx768m"#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker,这里是4个workersupervisor.slots.ports:- 6700- 6701- 6702- 6703
5、将配置好的storm安装包分发到mini2和mini3机器上/root/apps目录下
[root@mini1 apps]# scp -r storm/ mini2:/root/apps/[root@mini1 apps]# scp -r storm/ mini3:/root/apps/
6、启动集群
mini1机器上进入storm的bin目录下启动nimbus和ui
可以使用nuhub指令启动但是如果没安装的话就按照我下面的,无非多开两个窗口
启动nimbus[root@mini1 bin]# ./storm nimbus换个窗口启动ui[root@mini1 bin]# ./storm ui[root@mini1 ~]# jps14783 Jps4550 QuorumPeerMain14648 nimbus14714 core在mini2和mini3上分别启动supervisor[root@mini2 bin]# ./storm supervisor [root@mini3 bin]# ./storm supervisor[root@mini3 ~]# jps3466 QuorumPeerMain8912 Jps8826 supervisor
查看集群是否启动起来
浏览器输入mini1:8080
Cluster Summary中能看到Supervisor的个数为2,对应的物理机mini2和mini3各启了一个。空闲的槽有8个,总共有8个槽(即worker数,配置文件中配了4个端口也就是4个worker,mini2和mini3个四个所以就是8个)
Topology summary没有内容是因为还没有跑storm程序
后面还有Supervisor summary与Nimbus Configuration的相关信息。
现在使用storm命令来跑个wordcount程序。
在mini3机器上(随意)
[root@mini3 storm]# storm jar examples/storm-starter/storm-starter-topologies-0.9.5.jar storm.starter.WordCountTopology wordcount...File 'examples/storm-starter/storm-starter-topologies-0.9.5.jar' uploaded to 'storm-local/nimbus/inbox/stormjar-dfed4e29-132b-45d8-9e5a-f5cbb87c4927.jar' (3248678 bytes)487 [main] INFO backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: storm-local/nimbus/inbox/stormjar-dfed4e29-132b-45d8-9e5a-f5cbb87c4927.jar488 [main] INFO backtype.storm.StormSubmitter - Submitting topology wordcount in distributed mode with conf {"topology.workers":3,"topology.debug":true}825 [main] INFO backtype.storm.StormSubmitter - Finished submitting topology: wordcount
再次查看页面
看到了使用了三个Worker,共28个executor(28个task,默认情况下executor=task=thread数)有个wordcount程序在跑。点击
Topology summary下的wordcount,查看拓扑详情
能看到一个Spout2个Bolt,id也列出来了。各自使用的线程数已经发射数据转换数据。要看具体的spout和bolt信息,点击进去即可,这里查看下split
线程的id,使用了那台机器的哪个端口(槽,即worker),发射数据都有。
查看日志
在nimbus上查看ui日志信息(别的自行查看)
[root@mini1 storm]# tail -100f logs/ui.log 2017-10-30T15:36:06.293+0800 o.m.log [INFO] Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog2017-10-30T15:36:06.304+0800 o.m.log [INFO] jetty-6.1.262017-10-30T15:36:06.339+0800 o.m.log [INFO] Started SocketConnector@0.0.0.0:80802017-10-30T15:36:08.779+0800 b.s.thrift [INFO] Connecting to Nimbus at mini1:66272017-10-30T15:36:08.779+0800 b.s.thrift [INFO] Connecting to Nimbus at mini1:6627...
在mini2或者mini3查看worker信息
[root@mini3 logs]# ll总用量 48812-rw-r--r--. 1 root root 0 10月 30 15:37 access.log-rw-r--r--. 1 root root 0 10月 30 15:37 metrics.log-rw-r--r--. 1 root root 18284 10月 30 16:23 supervisor.log-rw-r--r--. 1 root root 49961204 10月 30 16:43 worker-6703.log[root@mini3 logs]# tail -100f worker-6703.log
一些总结
Worker与topology
一个worker只属于一个topology,每个worker中运行的task只能属于这个topology。
反之,一个topology包含多个worker,其实就是这个topology运行在多个worker上。
一个topology要求的worker数量如果不被满足,集群在任务分配时,根据现有的worker先运行topology。
如果当前集群中worker数量为0,那么最新提交的topology将只会被标识active,不会运行,
只有当集群有了空闲资源之后,才会被运行。
- Storm集群部署与单词计数程序
- storm单词计数实例
- Storm分布式单词计数
- 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
- 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
- Storm实例:实时单词计数
- storm单词计数 本地执行
- storm trident实现单词计数
- 007-storm开发计数程序集群模式运行
- storm两个案例(1单词计数本地执行 2累加集群执行 3集群关闭storm任务写法)
- storm详解:第一章 storm分布式单词计数
- storm详解: storm分布式单词计数
- Storm集群部署
- Storm集群部署
- storm 集群部署
- storm集群部署
- Storm集群部署
- storm集群基础+部署
- 6.2(2)
- 微信公众号开发之花生壳网站80端口映射失败
- 20171107
- Chrome乱码问题以及插件开发
- Vue.js学习笔记(二)
- Storm集群部署与单词计数程序
- 《大话数据结构》程杰_原书冒泡排序p383错误
- js继承
- [一日一教学](14)文件替换:replace
- 炫酷神器,AE插件Bodymovin.zxp的安装与使用
- 初识Spring_04
- 时序约束方法及解决timing问题的方法(二)
- 批处理文件的@echo off
- List / Map / Collections