Storm和Zookeeper集群搭建及在java项目中的使用

上一篇:

Kafka 单机和分布式环境搭建与案例使用

介绍了分布式Zookeeper集群的搭建和Kafka集群的搭建,接下来学习一下Storm集群的搭建。

实验环境

  1. Cent OS 6.9;
  2. apache-storm-1.1.0;
  3. 三台服务器虚拟机:192.168.1.129、192.168.1.214、192.168.1.241;

准备工作

1、修改服务器hostname和hosts文件使得可以直接通过hostname访问

使用hostname name修改hostname,例如:

#hostname xuliugen129

(或者直接修改/etc/hostname文件,输入要设置的hostname)

将三台服务器分别修改为:xuliugen129、xuliugen214、xuliugen241。

2、然后,修改/etc/hosts使之在内网环境下可以ping 通:

每台机子都设置为上边的hostname,只需要添加上边的三行即可。

3、关闭3台服务器的防火墙:

service firewalld stop

关于Cent OS防火墙的使用可以参考:CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙

Zookeeper安装与配置

在上一篇中介绍了Zookeeper集群的安装方式,这里不再介绍,请查看:Kafka 单机和分布式环境搭建与案例使用

Storm安装与配置

1、选择合适的版本进行下载Storm

下载地址:http://storm.apache.org/downloads.html

这里选择的是apache-storm-1.1.0.tar.gz ,点击进去选择合适的镜像地址进行下载,我这里的下载地址为:http://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz

使用wget进行下载:

>wget http://mirrors.tuna.tsinghua.edu.cn/apache/storm /apache-storm-1.1.0/apache-storm-1.1.0.tar.gz

分别下载到3台服务器上,然后解压到自己合适的位置,我这里都是:/home/xuliugen/server

2、配置Storm

配置文件在:/home/xuliugen/server/apache-storm-1.1.0/conf 目录下的storm.yaml

默认只需要修改如下部分:

3台服务器的Storm进行上述相同的配置即可。

Storm启动与应用

1、Storm命令

启动命令在:/home/xuliugen/server/apache-storm-1.1.0/bin 文件夹下,

以上列出了所有可以执行的命令模式。

2、启动nimbus

nimbus主机为:xuliugen129

另外开启一个控制界面,使用jps查看是否正常启动:

nimbus表示正常启动。

3、启动Storm UI

Storm UI这可以在启动nimbus的机器上运行,这里是:xuliugen129,启动如下:

启动之后,jps如下:

Storm UI 进程为core,访问xuliugen129:8080(这里我的PC级访问的话,就不再是上述设置的hostname,应该是对应的内网IP,默认端口为8080)

http://192.168.1.129:8080

3、启动另外两台supervisor

主机分别为:xuliugen214、xuliugen24

>./storm supervisor

查看Storm UI如下:

4、最后查看任一台Zookeeper服务器,查看节点情况:

项目代码使用

CSDN代码地址:http://download.csdn.net/download/u010870518/9949050 百度云盘地址: 链接:http://pan.baidu.com/s/1qYoJ6I4 密码:zsni

1、项目结构

核心jar为:storm-core-1.1.0.jar

2、执行原理:

一个Topology是Spouts和Bolts组成的图, 通过Stream Groupings将图中的Spouts和Bolts连接起来,如下图:

3、Spout代码

4、UpperBolt代码

5、AppendBolt代码

6、TopologyMain代码

7、提交到Storm集群运行:

(1)将项目导出jar,步骤如下:

(2)如果有警告的话,直接忽略即可。 (2)将导出的jar上传到服务器上,nimbus主机即可,我这里上传到:/home/xuliugen/temp 目录下,

(4)在2台supervisor主机上创建项目中需要的目录:

/home/xuliugen/server/stormdata/

(5)提交到Storm集群的命令为:

>./storm jar /home/xuliugen/temp/stormdemo.jar com.xuliugen.demo.topology.TopologyMain (1)/home/xuliugen/temp/stormdemo.jar为打包的jar在服务器上的位置; (2)com.xuliugen.demo.topology.TopologyMain位主函数全路径;

(6)最后查看Storm UI可以看到:

(7)运行效果

相关阅读:

Apache Kafka:下一代分布式消息系统

Kafka简介、基本原理、执行流程与使用场景

Kafka 单机和分布式环境搭建与案例使用

版权声明

Java后端技术所推送文章,为本人原创、网上收集或其他作者投稿,对于网上收集部分除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,我们会在24小时内删除处理,谢谢!^_^ QQ:1573876303。

原文发布于微信公众号 - Java后端技术(JavaITWork)

原文发表时间:2017-08-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安恒网络空间安全讲武堂

【翻译】t-pot 16.10-多蜜罐平台

t-pot 16.10-多蜜罐平台 2016年10月31日,德国电信公司Honeypot项目 在2016年3月,我们发布了T-Pot 16.03,积极的反馈鼓励...

526100
来自专栏aoho求索

Redis Cluster深入与实践(续)

前文回顾 上一篇文章基于redis的分布式锁实现写了基于redis实现的分布式锁。分布式环境下,不会还使用单点的redis,做到高可用和容灾,起码也是redi...

47070
来自专栏向治洪

深刻理解HDFS工作原理

概述 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统的简称。HDFS被设计成适合运行在通用硬件(commo...

266100
来自专栏架构师之旅

一文读懂Hadoop、HBase、Hive、Spark分布式系统架构

机器学习、数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hive是分布...

812110
来自专栏听雨堂

浏览器缓存问题的解决

web网站修改后,在浏览器端缓存的内容,将极其严重的影响效果,用户根本看不到改版的内容。这个问题,困扰我已久。 iis时代,我好像还没有太多的印象,新网站只要把...

22970
来自专栏杨建荣的学习笔记

Orabbix定制监控Oracle的简单配置(r6笔记第26天)

Orabbix是在zabbix的基础上提供的一套插件,能够提供对Oracle的监控功能真是术业有专攻,在Oracle层面zabbix希望也能够走得更远,所以对于...

35340
来自专栏安全领域

使用JavaScript开发物联网设备也会非常安全

本文将引导你完成一个练习,向你展示如何在 IoTivity 安全框架上使用 Java 对 OCF 设备进行快速原型设计。

512100
来自专栏黑白安全

GitHub 推出 Python 安全警告,识别依赖包的安全漏洞

GitHub 宣布了 Python 安全警告,使 Python 用户可以访问依赖图,并在他们的库所依赖的包存在安全漏洞时收到警告。

10440
来自专栏编程坑太多

『中级篇』docker之CI/CD持续集成—真实JAVA-Maven项目的CI演示(73)

源码地址:https://github.com/limingios/gitlabci-maven

64590
来自专栏Hadoop实操

聊聊个人对安装部署CDH集群前置准备的理解

这一步可以参考我之前写的文章《如何在HP dl380 Gen9服务器上安装Redhat 7.2并配置软RAID》、《如何为Hadoop集群服务器绑定双万兆网卡》

32740

扫码关注云+社区

领取腾讯云代金券