0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Apache Storm的安装部署

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-20 15:41 次阅读

一、基础介绍

Storm是一个免费开源的分布式实时计算系统。分布式意味着Storm是一个集群,部署在多台机器上。实时便是实时计算,相比于MapReduce的批处理,实时更关注于数据处理的速度和延时。

Apache Storm官网提供了各个版本的下载,体现为apache-storm-*.tar.gz,部署Storm时,直接将其解压,并配置相关配置文件即可。注意到,Storm采用Clojure和Java语言编写,Clojure也是运行在JVM之上的,所以环境上要保证安装Java环境。

Storm运行时体现为Master-Worker集群。Master节点运行nimbus进程,给Work节点分任务。Worker节点运行supervisor进程,负责分配nimbus传递过来的任务,以启动或停止worker进程。nimbus和supervisor都是无状态的,它们之间通过zookeeper来协调任务,也就是将状态信息存放在zookeeper中。

Storm的集群部署为:

图片

二、基础环境

# Linux操作系统版本
root@linux:# lsb_release -a 
No LSB modules are available.
Distributor ID:  Ubuntu
Description:  Ubuntu 18.04.2 LTS
Release:  18.04
Codename:  bionic
# python版本
root@linux:# python --version
Python 2.7.17
root@linux:# python3 --version
Python 3.6.9
# java版本
root@linux:# java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-8u272-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)

三、Zookeeper安装

  1. 下载Zookeeper包,解压并部署在/opt目录下
tar -xvf apache-zookeeper-3.7.1-bin.tar.gz 
mkdir /opt/zookeeper
chmod 777 /opt/zookeeper/
mv apache-zookeeper-3.7.1-bin.tar.gz /opt/zookeeper/
  1. 配置zoo.cfg文件
# The number of milliseconds of each tick
# 心跳时间,单位毫秒
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
# Leader和Follower初始连接时最大的心跳数
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# 保存Zookeeper数据的目录
dataDir=/opt/zookeeper/zkdata
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60

3.启动 Zookeeper 服务端

root@linux:/opt/zookeeper/apache-zookeeper-3.7.1-bin/bin# ./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@linux:/opt/zookeeper/apache-zookeeper-3.7.1-bin/bin#
  1. 查看进程
root@linux:/opt/zookeeper/apache-zookeeper-3.7.1-bin/bin# jps
18706 Jps
18670 QuorumPeerMain #Zookeeper服务进程
root@linux:/opt/zookeeper/apache-zookeeper-3.7.1-bin/bin# 
查看状态
root@linux:/opt/zookeeper/apache-zookeeper-3.7.1-bin/bin# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone

四、Storm安装

  1. 修改conf/storm.yaml文件,修改为本机的IP地址
########### These MUST be filled in for a storm configuration
 storm.zookeeper.servers: #Zookeeper主机列表
     - "30.0.0.218"
 nimbus.seeds: ["30.0.0.218"] #master候选者
  1. 打开/etc/profile文件,增加如下:
export PATH=$PATH:/opt/apache-storm-2.3.0/bin
  1. 执行命令:source /etc/profile。
  2. 按照顺序启动:
storm nimbus &
storm supervisor &
storm ui &
  1. 查看启动进程:
root@linux:# jps
22817 UIServer
22549 Nimbus
22709 Supervisor
20775 QuorumPeerMain
23039 Jps

可能会遇到的问题:

端口冲突问题:
root@linux:/opt# Running: java -server -Ddaemon.name=ui -Dstorm.options= -Dstorm.home=/opt/apache-storm-2.3.0 -Dstorm.log.dir=/opt/apache-storm-2.3.0/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/apache-storm-2.3.0/*:/opt/apache-storm-2.3.0/lib/*:/opt/apache-storm-2.3.0/extlib/*:/opt/apache-storm-2.3.0/extlib-daemon/*:/opt/apache-storm-2.3.0/lib-webapp/*:/opt/apache-storm-2.3.0/conf -Xmx768m -Djava.deserialization.disabled=true -Dlogfile.name=ui.log -Dlog4j.configurationFile=/opt/apache-storm-2.3.0/log4j2/cluster.xml org.apache.storm.daemon.ui.UIServer
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
  at org.apache.storm.daemon.ui.UIServer.main(UIServer.java:183)
Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
  at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:346)
  at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:308)
  at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
  at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)
  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
  at org.eclipse.jetty.server.Server.doStart(Server.java:394)
  at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
  at org.apache.storm.daemon.ui.UIServer.main(UIServer.java:179)
Caused by: java.net.BindException: Address already in use
  at sun.nio.ch.Net.bind0(Native Method)
  at sun.nio.ch.Net.bind(Net.java:461)
  at sun.nio.ch.Net.bind(Net.java:453)
  at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)
  at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
  at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:342)
  ... 7 more


执行命令:lsof -i:8080,可以看到8080被zookeeper占用。
修改zookeeper的zoo.cfg文件,添加如下:
admin.serverPort=8008
端口冲突解决。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算系统
    +关注

    关注

    0

    文章

    42

    浏览量

    10287
  • MapReduce
    +关注

    关注

    0

    文章

    45

    浏览量

    6297
  • Storm
    +关注

    关注

    0

    文章

    5

    浏览量

    2645
收藏 人收藏

    评论

    相关推荐

    Storm使用场景

    Storm基础(一):架构和组件
    发表于 06-11 16:37

    在Linux里安装apache

    今天终于在在Linux把apache安装好了,花了将近两天的时间,废材啊。。。
    发表于 07-05 06:57

    如何安装Apache

    Web服务器--安装Apache
    发表于 05-29 13:29

    Centos7下如何使用Apache部署Django项目

    Centos7下使用Apache部署Django项目
    发表于 05-29 12:26

    怎样在Docker Swarm上部署Apache Storm

    本文是一篇来源于Baqend Tech博客的客座转贴,描述了如何在Docker Swarm,而不是在虚拟机上部署和调配Apache Storm集群。这个题目很有意思,Wolfram
    发表于 10-10 14:24 0次下载
    怎样在Docker Swarm上<b class='flag-5'>部署</b><b class='flag-5'>Apache</b> <b class='flag-5'>Storm</b>

    Apache完全安装指南

    本文讨论如何安装支持mod_perl、mod_ssl及php的apache web服务器,并安装webalizer实现对web访进行日志分析。手把手引导初学者编辑一个安全、功能完备的web服务器系统
    发表于 11-07 11:36 0次下载

    如何利用Storm完成实时分析处理数据

    Storm本身是Apache托管的开源的分布式实时计算系统,它的前身是Twitter Storm。在Storm问世以前,处理海量的实时数据信息,大部分是类似于使用消息队列,加上工作进程
    发表于 04-26 15:30 8082次阅读
    如何利用<b class='flag-5'>Storm</b>完成实时分析处理数据

    Storm环境下基于权重的任务调度算法

    大数据流式计算平台Apache Storm默认采用轮询的方式进行任务调度,未考虑到拓扑中各任务计算开销的差异以及任务之间不同类型的通信模式,在负载均衡和通信开销方面存在较大的优化空间。针对这一
    发表于 04-17 10:52 0次下载
    <b class='flag-5'>Storm</b>环境下基于权重的任务调度算法

    探讨Apache kafka在部署可伸缩物联网解决方案中所扮演的角色

    Apache stormApache spark和Apache hadoop集群提供支持的数据处理管道的网关。
    发表于 07-21 09:37 577次阅读

    Linux下Apache服务器的安装和配置

    Linux下Apache服务器的安装和配置(现代电源技术的发展概况)-Linux下Apache服务器的安装和配置,有需要的可以参考!
    发表于 08-31 16:22 8次下载
    Linux下<b class='flag-5'>Apache</b>服务器的<b class='flag-5'>安装</b>和配置

    Php+mysql+apache编译安装详述

    Php+mysql+apache编译安装详述(深圳市核达中远通电源技术股份有限公司大吗)-文档为Php+mysql+apache编译安装详述详解文档,是一份不错的参考资料,感兴趣的可以
    发表于 09-18 14:42 2次下载
    Php+mysql+<b class='flag-5'>apache</b>编译<b class='flag-5'>安装</b>详述

    在linux下安装Apache+Php+Mysql

    在linux下安装Apache+Php+Mysql(数字电源技术及其应用)-文档为在linux下安装Apache+Php+Mysql详解文档,是一份不错的参考资料,感兴趣的可以下载看看
    发表于 09-18 16:09 5次下载
    在linux下<b class='flag-5'>安装</b><b class='flag-5'>Apache</b>+Php+Mysql

    mysql的安装-与php、Apache相结合

    mysql的安装-与php、Apache相结合(深圳核达中远通电源技术有限公司 产品功能用途)-文档为mysql的安装-与php、Apache相结合总结文档,是一份不错的参考资料,感兴
    发表于 09-18 16:33 20次下载
    mysql的<b class='flag-5'>安装</b>-与php、<b class='flag-5'>Apache</b>相结合

    Apache Doris正式成为 Apache 顶级项目

    全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apache)于美国时间 2022 年 6 月 16 日宣布,Apache Doris 成功从 Apache 孵化器毕业,
    的头像 发表于 06-17 14:08 1003次阅读

    Apache Storm是什么

    使用Storm框架进行流数据的实时处理,就需要编写“水龙头”和“闪电”的处理逻辑,并将它们通过Topology串接在一起,构建实时处理的业务逻辑。
    的头像 发表于 02-20 15:34 1115次阅读
    <b class='flag-5'>Apache</b> <b class='flag-5'>Storm</b>是什么