storm完全分布式部署

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: storm完全分布式部署

一、 任务描述

本实验任务主要完成基于ubuntu环境的storm完全分布式部署。通过完成本实验任务,要求学生掌握storm完全分布式部署的来操作流程和配置内容,为学生真正使用storm进行数据处理做基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。


二、 任务目标

掌握storm完全分布式部署的配置


三、 任务环境

本次环境是:Ubuntu16.04+apache-storm-1.1.1


四、 任务分析

Nimbus:Storm集群的Master节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件(Spout/Bolt)的Task。

 Superviso:Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker进程的启动和终止。

 ZooKeeper:存储客户端提供的topology任务信息,nimbus负责将任务分配信息写入Zookeeper,supervisor从Zookeeper上读取任务分配信息;存储supervisor和worker的心跳(包括它们的状态),使得nimbus可以监控整个集群的状态, 从而重启一些挂掉的worker;存储整个集群的所有状态信息和配置信息。


♥ 知识链接

Storm API

 在Storm API中,定义了一个IComponent接口表示组件,用ISpout表示一个Spout,IBolt表示一个Bolt。IRichSpout接口分别继承了IComponent和ISpout接口,意味着这个接口的实现类,既是Spout,又是Topology的组件。

IRichBolt接口集成了IComponent接口和IBolt接口,表示这个接口的实现类即是Component,又是Bolt。

 因此在开发中,我们通常只要实现IRichSpout和IRichBolt即可。由于IRichBolt和IRichSpout接口中定义的方法比较多。有些方法我们可能并不想实现,因此分别提供了一个实现类,BaseRichSpout和BaseRichBolt。把一些并不是一定要用户实现的方法,提供了一个默认的实现,来简化我们的开发,这实际上就适配器设计模式。


五、 任务实施

步骤1、主机映射配置

由于在实际环境中每次生成的主机名都不一致,为了命名的规范和简洁,需要修改每台虚拟机的主机名。在ip为192.168.0.2的虚拟机终端输入命令【vim /etc/hostname】,进入编辑页面输入“master”,编辑完成后保存退出。在终端输入命令【reboot】重启后,主机名就修改完成了。依次将其它两台虚拟机的主机名修改为slave1,slave2。如图1所示。

b3be552e10184f72b62993aaef0d2814.png



图1 修改主机名


修改每台电脑的hosts文件。hosts文件和windows上的功能是一样的。存储主机名和ip地址的映射。在每台linux上,【vim /etc/hosts】 编写hosts文件。将主机名和ip地址的映射填写进去。编辑完后,结果如图2所示:


9af9c733c6d24fcf999d427da4c71a66.png


图2 编辑hosts文件


配置完映射之后,可以通过ping命令进行测试是否能够连通,ping除了可以直接连接IP地址,也可以连接主机名,不过此时需要对配置文件hosts进行修改。“etc/hosts“文件是用来配置主机用的DNS服务器信息,是记载LAN内接各主机名称和IP地址,当用户在连接网络时,首先查找该文件,寻找对应的主机名和IP地址。这样就可以实现不同节点之间可以通过ip地址或主机名相互ping通。如图3所示


e499d57d1fde4211b67b71a1dc06bb47.png


图3 测试机器之间的联通


完成以上操作即表示完成一个小的局域网络,为storm集群搭建准备好条件,由于每个节点之间需要相互配合,相互访问,为避免反复出现输入密码,此时需要对各个节点之间配置免密码配置。 无密码登陆,效果也就是在master上,通过 ssh master 或 ssh slave1 或 ssh slave2就可以登陆到对方计算机上。而且不用输入密码进入ssh目录。下面开始配置免密,进入.ssh目录并查看。如图4所示


adbe52bd6e594ebabdbd89265d2e5438.png


图4 进入.ssh目录


使用命令【ssh-keygen -t rsa】,一路按回车就行了。刚才都作甚了呢?主要是设置ssh的密钥和密钥的存放路径。 路径为~/.ssh下。

 打开~/.ssh 下面有三个文件

 (1)authorized_keys,已认证的keys

 (2)id_rsa,私钥

 (3)id_rsa.pub,公钥三个文件。

 下面就是关键的地方了,(下面的操作为ssh认证。进行下面操作前,可以先搜关于认证和加密区别以及各自的过程。)在master上将公钥放到authorized_keys里。命令:【 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys】。如图5所示



262de71ab06844489655c799b005f73f.png

图5 生成公钥和私钥


如果有其他 slave 节点,也要执行将 master 公匙传输到 Slave 节点、在 slave 节点上加入授权这两步。这样,在 master 节点上就可以无密码 SSH 到各个 slave 节点了,可在 master 节点上执行如下命令进行检验,如下图所示

 将master上的公钥放到其他虚拟机的~/.ssh目录下,并测试免密是否成功。下面是放到对slave1的免密配置,依次完成slave2。如图6所示。注意:在进行文件传输时需要密码为“Simplexue123“。上述的操作过程只是单向的,即此时,ssh root@slave1和ssh root@slave2是不需要密码的。而ssh root@master等反向仍然是需要密码的。

b3148c11a8fa4073a9097f2bc9dc9e8f.png



图6 将公钥传给其他机器


步骤2、在master主节点上解压缩

执行命令:cd /simple/soft进入soft目录,如图7所示。


f9bc750bf8164c35aa373a096a812533.png


图片7 进入压缩包目录


执行命令:ls查看storm安装包,如图8所示


27a0bb2214374d2385184bf78f26a5eb.png


图片8 查看storm安装包


执行命令:tar -zxvf apache-storm-1.0.2.tar.gz -C /simple进行解压缩,如图9所示

210bb03a642c4d1580ee199c493b9e2e.png

图片9 解压缩


进入simple目录,执行命令:ls查看storm解压后的文件夹并修改为简称storm,如图10所示


0fac15a887b24874954ee620ec971dab.png


图片10 重命名压缩文件


修改storm环境变量,在任意目录下执行命令:vim ~/.bashrc编辑配置文件,如图11所示

8cec70a1a681458db2337d49c788f908.png


图片11 编辑环境变量


环境变量配置文件生效,执行命令:source ~/.bashrc,如图12所示

30968a1514c4466d9f53757e39e32c31.png

图片12 主节点环境变量配置文件生效


将环境变量配置文件复制给其它两个从节点,如图13所示


f4fb1a6de84f4b84a4a1f12a93f9a26b.png


图片13 从节点环境变量配置文件生效


步骤3、配置storm

对storm安装目录下的/simple/storm/conf/storm.yaml文件进行配置修改,如图14所示


0379a38749954a58b6711267a8a6c89e.png


图片14 修改配置


将storm安装目录/simple/storm复制给其它两个从节点,如图15、16所示


fd348765bfb94409ac75ef39c75b138e.png


图片15 拷贝storm文件


7d76fd2a5d6f4e8a9accf926c8140656.png


图片16 拷贝storm文件


步骤4、启动storm

进入每一台机器的zookeeper配置目录/simple/zookeeper/conf下执行命令:vim zoo.cfg,修改dataDir的路径,如图17所示

0838ce1d4cff4d97b2d917ef6930297d.png


在每一台机器的/simple/zookeeper目录下执行命令:vim myid,新建myid文件,在master上的myid中填写数字0,在slave1上的myid中填写数字1,在slave2上的myid中填写数字2。

 给每一台机器启动zookeeper服务,进入zookeeper安装目录下的bin目录:cd /simple/zookeeper/bin执行命令:./zkServer.sh start,如图18所示


093946533293452ea3660cf7e6c1bf12.png


图片18 启动zookeeper服务


在master主节点任一目录下执行命令:storm nimbus和storm ui启动Storm nimbus和web服务,如图19, 20所示


9c5ab782ad1648e09afe0e1a69293e60.png


图19 启动Storm nimbus

4569df34dc0244fab49e995d63d923d0.png


图20 启动Storm ui服务


在slave1和slave2节点任一目录下执行命令:source ~/.bashrc刷新配置文件和执行命令:storm supervisor启动storm supervisor服务,如图21所示

4cab2764adc548f3956d45695bff5588.png

图片21 启动storm supervisor服务


在master主节点上访问ui页面: http://master: 8080/,如图22所示


8350e8988a064edea130bf45016d232e.png


图片22 访问页面


步骤5、集群状态查看

再在master主节点打开一个终端,执行命令:jps查看启动的服务,如图23所示


c8a04759c2d546d2aa801c24e1efddf7.png


图片23 查看从节点启动的服务


再在slave1(或slave2)节点打开一个终端,执行命令:jps查看启动的服务,如图24所示


ec9034c9745541f78e22d8735f98dcd4.png


图片24 查看从节点启动的服务


a1715cef372e4b2289743c819a6a0450.png

相关文章
|
5月前
|
分布式计算 Hadoop Java
Hadoop分布式集群部署
Hadoop分布式集群部署
62 0
|
5月前
|
网络安全 流计算
108 Storm集群部署
108 Storm集群部署
14 0
|
9月前
|
分布式计算 资源调度 Hadoop
Hadoop单机伪分布式部署
Hadoop单机伪分布式部署
|
9月前
|
分布式计算 资源调度 算法
手动搭建Hadoop分布式集群
手动搭建Hadoop分布式集群
|
11月前
|
分布式计算 运维 Ubuntu
|
11月前
|
运维 监控 Ubuntu
|
分布式计算 Hadoop 流计算
如何搭建Storm集群?
如何搭建Storm集群?
81 0
|
流计算
storm集群的搭建
最近也是有朋友问我storm的问题,好长时间没玩storm了,今天就来简单的说一下吧,首先我们来看一下官网的图片,storm是完全实时的,就像水龙头打开后一样,会不停的往外面流水.所以他的延迟非常的低,这也是他的特点.然后先搭建storm集群吧,storm集群的搭建也比较简单.
|
存储 监控 安全
storm笔记:storm集群
Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如zookeeper)。通常这种主从结构存在出现单点故障的风险,Storm通过特殊处理规避这种风险,后面将解释Storm的半容错结构。
337 0
storm笔记:storm集群

热门文章

最新文章

相关实验场景

更多