storm完全分布式部署
⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计6046字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
⏰个人网站:https://jerry-jy.co/❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我
一、 任务描述
本实验任务主要完成基于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