Storm 集群
Apache Storm
Storm是一个分布式的,可靠的,容错的数据流处理系统。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt,bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。
1、Storm组件:
在Storm集群中、有两类节点:主节点master node和工作节点worker nodes。
主节点运行Nimbus守护进程,这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。Supervisor守护进程作为拓扑的一部分运行在工作节点上。
一个Storm拓扑结构在不同的机器上运行着众多的工作节点。每个工作节点都是topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或者集群。
2、Zookeeper:
Zookeeper是完成Supervisor和Nimbus之间协调的服务。
而应用程序实现实时的逻辑则被封装进Storm中的“topology”。topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接的图。
3、Spout:
Spout从来源处读取数据并放入topology。
Spout分成可靠和不可靠两种;当Storm接收失败时,可靠的Spout会对tuple(元组,数据项组成的列表)进行重发;而不可靠的Spout不会考虑接收成功与否只发射一次。而Spout中最主要的方法就是nextTuple(),该方法会发射一个新的tuple到topology,如果没有新tuple发射则会简单的返回。
4、Bolt:
Topology中所有的处理都由Bolt完成。Bolt从Spout中接收数据并进行处理,如果遇到复杂流的处理也可能将tuple发送给另一个Bolt进行处理。而Bolt中最重要的方法是execute(),以新的tuple作为参数接收。不管是Spout还是Bolt,如果将tuple发射成多个流,这些流都可以通过declareStream()来声明。
5、Stream Groupings
Stream Grouping定义了一个流在Bolt任务中如何被切分。
Shuffle grouping:
// 随机分发tuple到Bolt的任务,保证每个任务获得相等数量的tuple。
Fields grouping
// 根据指定字段分割数据流,并分组。例如,根据“user-id”字段,相同“user-id”的元组总是分发到同一个任务,不同“user-id”的元组可能分发到不同的任务。
Partial Key grouping
// 根据指定字段分割数据流,并分组。类似Fields grouping。
All grouping
// tuple被复制到bolt的所有任务。这种类型需要谨慎使用。
Global grouping
// 全部流都分配到bolt的同一个任务。明确地说,是分配给ID最小的那个task。
None grouping
// 无需关心流是如何分组。目前,无分组等效于随机分组。但最终,Storm将把无分组的Bolts放到Bolts或Spouts订阅它们的同一线程去执行(如果可能)。
Direct grouping
// 这是一个特别的分组类型。元组生产者决定tuple由哪个元组处理者任务接收。
Local or shuffle grouping
// 如果目标bolt有一个或多个任务在同一工作进程,tuples 会打乱这些进程内的任务。否则,这就像一个正常的 Shuffle grouping。
Apache-strom 必须要求Python 2.6以上
1、升级 Python 官方下载地址:
https://www.python.org/ftp/python/
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
# tar -xf Python-3.6..tgz
# mv Python-3.6. /usr/local/python
# cd /usr/local/python
# ./configure --prefix=/usr/local/python
# make
# make install
# mv /usr/bin/python /usr/bin/python_old
# ln -s /usr/local/python/bin/python3. /usr/bin/python
# python -V
2、如发现yum 异常则, 查看编辑 /usr/bin/yum 文件
将文件头部的
#!/usr/bin/python
改为以下:(因为系统默认是2.6)
#!/usr/bin/python2.6
三、storm 安集群配置;(具体根据线上环境资源进行设置)
系统:Centos6.
内核:2.6.-.el6.x86_64
安装目录:/opt/storm
数据日志目录:/opt/storm/{data,logs}
用户组权限:deploy
机器 hostname 需要在 hosts 里面配置关系映射:
zks1 - 192.168.1.101
zks2 - 192.168.1.102
zks3 - 192.168.1.103
zoo1 - 192.168.1.101 - myid1
zoo2 - 192.168.1.102 - myid2
zoo3 - 192.168.1.103 - myid2
四、集群说明
主节点 (nimbus) zks1
任务节点 (supervisor) zks2 zks3 等
注:storm主节点、任务节点安装配置完全一致。
1、下载安装配置:官方下载地址:
http://mirrors.hust.edu.cn/apache/storm/
http://www-eu.apache.org/dist/storm/apache-storm-1.0.3/apache-storm-1.0.3.tar.gz
http://mirrors.hust.edu.cn/apache/storm/apache-storm-1.0.2/apache-storm-1.0.2.tar.gz
# tar -xf apache-storm-1.0..tar.gz
# cd apache-storm
# cat apache-storm-0.9./conf/storm.yaml |grep -v ^# |grep -v ^$
// ********** //
storm.zookeeper.servers:
- "192.168.1.101"
- "192.168.1.102"
- "192.168.1.103"
nimbus.host: "192.168.1.101"
storm.zookeeper.port:
ui.port:
storm.local.dir: "/opt/apache-storm-0.9.6/data"
supervisor.slots.ports:
-
-
-
-
-
worker.childopts: "-Xmx2g"
# worker.heap.memory.mb: 2048
# // 调整分配给每个 worker 的内存 //
logviewer.port:
topology.max.spout.pending:
topology.message.timeout.secs:
storm.messaging.netty.server_worker_threads: 10
// ********** //
2、主节点启动测验:
启动 nimbus
# nohup ./bin/storm nimbus >/dev/null 2>&1 &
启动 UI
# nohup ./bin/storm ui >/dev/null 2>&1 &
3、任务节点启动脚步
# cat supervisor_logviewer.sh
nohup ./bin/storm supervisor >/dev/null >& &
nohup ./bin/storm logviewer >/dev/null >& &
4、进程检测
# ps -ef|grep storm
# netstat -ano |grep 8090
Storm 集群的更多相关文章
- storm 集群配置
配置storm集群的过程中出现写问题,记录下来 1.storm是通过zookeeper管理的,先要安装zookeeper,从zk官网上下来,我这里下下来的的3.4.9,下载后移动到/usr/local ...
- storm集群部署和配置过程详解
先整体介绍一下搭建storm集群的步骤: 设置zookeeper集群 安装依赖到所有nimbus和worker节点 下载并解压storm发布版本到所有nimbus和worker节点 配置storm ...
- 在CentOS上搭建Storm集群
Here's a summary of the steps for setting up a Storm cluster: Set up a Zookeeper clusterInstall depe ...
- Storm系列(三):创建Maven项目打包提交wordcount到Storm集群
在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...
- Storm集群安装部署步骤【详细版】
作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2012/11/30/how ...
- Storm集群的安装配置
Storm集群的安装分为以下几步: 1.首先保证Zookeeper集群服务的正常运行以及必要组件的正确安装 2.释放压缩包 3.修改storm.yaml添加集群配置信息 4.使用storm脚本启动相应 ...
- Storm集群部署
一. 说明 Storm是一个分布式实时计算系统,Storm对于实时计算的意义就相当于Hadoop对于批量计算的意义.对于实时性较高的系统Storm是不错的选择.Hadoop提供了map, reduce ...
- Storm集群的安装与测试
首先安装zookeeper集群,然后安装storm集群. 我使用的是centos 32bit的三台虚拟机. MachineName ip namenode 192.168.99.110 datanod ...
- Storm集群安装详解
storm有两种操作模式: 本地模式和远程模式. 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 远端模式:你提交的topology会在一个集群的机器 ...
- Storm入门教程 第三章Storm集群安装部署步骤、storm开发环境
一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
随机推荐
- delphi 的 LockType 锁类型
LockType 锁类型 常数 值 说明 ...
- Java中的浮点型(Double&Float)计算问题
在刚刚做完的一个项目中,遇到了double型计算不精确的问题.到网上查找后,问题得到解决.经验共享,在这里总结一下. Java中的浮点数类型float和double不能够进行精确运算.这个问题有时候非 ...
- JavaScript——闭包机制
闭包机制是JavaScript的重点和难点,本文希望能帮助大家轻松的学习闭包 一.什么是闭包? 闭包就是可以访问另一个函数作用域中变量的函数.下面列举出常见的闭包实现方式,以例子讲解闭包概念 func ...
- codeforces515B
Drazil and His Happy Friends CodeForces - 515B Drazil有很多朋友,他们中有些人是快乐的,有些人是不快乐的. Drazil想让他的朋友变得快乐.于是, ...
- zookeeper 四字命令
zookeeper四字命令 ZooKeeper3.4.6支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 te ...
- Django-website 程序案例系列-17 forms表单验证的字段解释
1.Django内置字段如下: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial ...
- spring cloud 入门系列一:初识spring cloud
最近看到微服务很火,也是未来的趋势, 所以就去学习下,在dubbo和spring cloud之间我选择了从spring cloud,主要有如下几种原因: dubbo主要专注于微服务中的一个环节--服务 ...
- Change upload file limit in specified Webapllication in SharePoint (PowerShell)
http://gallery.technet.microsoft.com/office/Change-upload-file-limit-89502ff2 http://sharepointrela ...
- 【原创】python多线程测试接口性能
除了使用性能测试工具进行性能测试,我们也可以直接用python多线程进行性能测试. 下面,使用这几个模块,对一个查询接口做性能测试: requests:发送http请求 json:返回的字符串转换成j ...
- HDU 3416 Marriage Match IV (最短路径,网络流,最大流)
HDU 3416 Marriage Match IV (最短路径,网络流,最大流) Description Do not sincere non-interference. Like that sho ...