大数据技术之Storm的安装与配置

大数据技术之Storm的安装与配置

这篇文章深入研究了大数据技术中实时计算系统 Apache Storm 的安装与配置过程。首先,文章介绍了 Apache Storm 在大数据处理中的重要性,强调其在实时数据处理领域的关键作用。随后,详细阐述了如何在系统中进行 Storm 的安装,包括必要的依赖项和配置要点。
在安装步骤中,文章提供了清晰的指导,涵盖了从下载 Storm 到解压缩、配置环境变量以及启动服务的全过程。读者将能够轻松地按照这些步骤完成 Storm 的安装,为后续的实时计算任务做好准备。

进一步,文章讨论了 Storm 的配置过程,包括集群配置、节点设置和相关参数的调整。这些配置方面的详细说明有助于读者根据实际需求进行定制,以达到最佳性能和可靠性。
通过本文,读者将获得在大数据环境中安装和配置 Apache Storm 的实用指南,为利用 Storm 进行实时计算提供了基础。文章以其详实的内容为读者提供了操作步骤和配置细节,使其能够快速而顺利地建立起一个可用的 Storm 环境。

前言知识

Apache Storm作为大数据处理的实时计算系统,在大数据技术领域扮演着重要的角色,其意义主要体现在以下几个方面:

实时数据处理: Storm专注于实时流数据处理,具有低延迟和高吞吐量的特性。它能够在数据流中进行实时计算和分析,使得用户能够即时获取和处理数据,满足了许多场景下对于实时性的需求,如金融交易监控、实时报警系统等。

可伸缩性和高性能: Storm具备良好的横向扩展能力,能够轻松地扩展到大规模集群,以处理大量数据和并发计算任务。其高性能和可伸缩性使得它适用于处理高负载和高并发的实时数据流。

容错性和可靠性: Storm设计具备容错机制,能够在节点故障时保证数据处理的可靠性和连续性。它采用了数据流的可重放性和任务的透明恢复机制,确保即使在出现故障时也能保持数据处理的完整性。

灵活性和可编程性: Storm提供了丰富的编程接口,支持多种编程语言,如Java、Python等,同时也支持开发自定义的数据处理逻辑。这种灵活性使得开发人员能够根据实际需求进行定制化开发,适应不同的应用场景。

生态系统和整合性: Storm作为开源项目,拥有丰富的生态系统,与其他大数据技术(如Hadoop、Kafka等)良好整合,可以作为一个实时计算引擎与其他系统配合使用,构建更全面的大数据处理解决方案。

总体而言,Storm在实时数据处理领域的重要性体现在其能够高效地处理实时数据流、保证计算的低延迟性和高可靠性、支持横向扩展、灵活定制等方面,为大数据处理提供了强大的实时计算能力。

1.准备阶段

1.1 虚拟机
2台虚拟机,ip地址分别为192.168.95.20、192.168.95.21。第1台作为主节点;具体ip地址和普通用户名视自己情况对应处理。(ip地址根据自己实际情况更改!)
本文章所用的全部资料都在网盘,网盘链接
链接:https://pan.baidu.com/s/1MrzDAGUxqduU0HFNuTebdA?pwd=1234
需要的小伙伴可以自行下载。

master 192.168.95.20
node1  192.168.95.22
node2  192.168.95.23

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.1创建普通用户
在所有节点上进行。
都创建名为iot(具体视自己情况)的普通用户,并以iot登录。
创建用户iot

useradd iot

在这里插入图片描述
在这里插入图片描述
各节点分别设置iot用户密码

passwd iot

在这里插入图片描述
在这里插入图片描述
在master和node1节点分别设置iot用户权限

chmod -v u+w /etc/sudoers
vi /etc/sudoers

添加iot ALL=(ALL) ALL
然后wq!保存退出。
在这里插入图片描述
在这里插入图片描述
设置完成后,reboot重启,选择iot用户登录。

在这里插入图片描述
Node2
在这里插入图片描述
1.2创建目录
在所有节点上进行。

$mkdir -p /opt/softwares //用于存放软件包

在这里插入图片描述
在这里插入图片描述

$mkdir -p /opt/modules //用于存放解压文件夹

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将安装包上传到softwares目录
在这里插入图片描述
将master节点下的/opt/softwares文件分发给node1节点

sudo scp -r /opt/softwares iot@192.168.95.21:/opt

在这里插入图片描述
Node1节点查看传输文件

cd /opt
ls
cd softwares
ls -hl

在这里插入图片描述
node2
在这里插入图片描述
1.4将已下载软件放置在/opt/softwares目录
放在主节点。后面如要放在从节点,请遵照。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.安装依赖包及软件

2.1安装依赖包
在所有节点上进行。

$ sudo yum -y install gcc-c++ uuid* libtool libuuid libuuid-devel

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.2安装并配置JDK
2.2.1安装JDK
2.2.1.1.1在主节点上解压
此步骤如果该前面章节安装过,已忽略。
2.2.1.2检查Java是否安装成功
Master里面查看java:

java -version

在这里插入图片描述
Node1里面查看java:

java -version

在这里插入图片描述
Node2里面查看java:

Java -version

在这里插入图片描述

3.安装Zookeeper

以下步骤如无特殊说明,请在主节点上运行。
3.1解压安装包

$tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/modules

在这里插入图片描述
3.2配置Zookeeper
3.2.1编辑主节点配置文件

$vi /opt/modules/apache-zookeeper-3.6.3-bin/conf/zoo.cfg

在这里插入图片描述
在配置文件的最后添加以下内容:

server.1=192.168.95.20:2888:3888
server.2=192.168.95.22:2888:3888
server.3=192.168.95.23:2888:3888

在这里插入图片描述
在这里插入图片描述
3.2.1myid文件
3.2.1.1创建zkData目录及myid文件
在所有节点上进行。

$mkdir -p /opt/modules/apache-zookeeper-3.6.3-bin/zkData/
$cd /opt/modules/apache-zookeeper-3.6.3-bin/zkData/
$touch myid

Master:
在这里插入图片描述
Node1:
在这里插入图片描述
Node2:
在这里插入图片描述
3.2.1.2第一个节点
在第一个节点进行。

$vi /opt/modules/apache-zookeeper-3.6.3-bin/zkData/myid

键入:
1
在这里插入图片描述
3.2.1.3第二个节点
在第二个节点进行。

$vi /opt/modules/apache-zookeeper-3.6.3-bin/zkData/myid

键入:
2
在这里插入图片描述
3.2.1.4第三个节点
在第三节点进行。

$vi /opt/modules/apache-zookeeper-3.6.3-bin/zkData/myid

键入:
3
在这里插入图片描述
3.3配置Zookeeper环境变量
在所有节点上进行。

$sudo vi /etc/profile

做如下修改:

export ZOOKEEPER_HOME=/opt/modules/apache-zookeeper-3.6.3-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

master:
在这里插入图片描述
在这里插入图片描述
Node1:
在这里插入图片描述
Node2
在这里插入图片描述
在这里插入图片描述

4.安装ZeroMQ

在所有节点进行。
4.1解压缩包

cd /opt/softwares
rpm -ivh zeromq-4.3.4-37.5.src.rpm
cd ~/rpmbuild/SOURCES
tar -zxvf zeromq-4.3.4.tar.gz

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.2编译并安装

$ cd zeromq-4.3.4/
$ ./autogen.sh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$./configure

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$make

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$sudo make install

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.3更新动态链接库

$sudo vi /etc/ld.so.conf

在最后面追加/usr/local/lib/ //该目录存放了JZMQ和ZeroMQ的库文件
在这里插入图片描述

sudo ldconfig  //将库路径加载到内存

在这里插入图片描述
参考:https://blog.51cto.com/u_2650279/6143472 ;https://www.656463.com/article/UbuntuxStormazdjfbs_3

5.安装JZMQ

在所有节点进行。
5.1安装git

$ sudo yum install -y git

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.2下载JZMQ代码

$cd /opt/softwares
$git clone https://github.com/zeromq/jzmq.git

注:如果出现fatal: unable to access 'https://github.com/zeromq/jzmq.git/': Failed connect to github.com:443; Connection refused问题,可使用以下命令解决:(参考:https://blog.csdn.net/weixin_44442186/article/details/124979085)
取消全局代理:

git config --global --unset http.proxy
git config --global --unset https.proxy

添加全局代理:

git config --global http.proxy
git config --global https.proxy

在这里插入图片描述
将下载好的JZMQ代码通过scp传到node1和node2节点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.3编译并安装
直接复制粘贴到终端:

$cd jzmq
$cd jzmq-jni
$./autogen.sh
$./configure
$make
$sudo make install

Master节点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Node1节点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Node2节点:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6.安装Storm

以下步骤如无特殊说明,请在主节点上运行。
6.1解压缩Storm安装包
解压apache-storm-2.4.0.tar.gz到/opt/modules目录(若没有此目录则创建)

$ tar -zxvf apache-storm-2.4.0.tar.gz -C /opt/modules

在这里插入图片描述
6.2设置Storm配置文件
$vi /opt/modules/apache-storm-2.4.0/conf/storm.yaml
做如下替换:
6.2.1替换1

#storm.zookeeper.servers:
  - "server1"
   - "server2"

替换为:

storm.zookeeper.servers:
- "192.168.95.20"
- "192.168.95.22"
- "192.168.95.23"

在这里插入图片描述
6.2.2替换2

nimbus.seeds: ["host1", "host2", "host3"]

替换为:

nimbus.seeds: ["192.168.109.131", "192.168.109.132", "192.168.109.133"]

在这里插入图片描述
6.2.3设置临时路径
在所有节点进行。
storm.local.dir: "/tmp/storm" //前提是已经创建了此临时路径
参考:https://blog.csdn.net/zjjcchina/article/details/120650514
在这里插入图片描述
6.3复制到从节点

Sudo chmod 777 /opt/modules

在这里插入图片描述

$scp -r /opt/modules/apache-storm-2.4.0/ iot@192.168.95.22: /opt/modules/

在这里插入图片描述

$scp -r /opt/modules/apache-storm-2.4.0/ iot@192.168.95.23: /opt/modules/

在这里插入图片描述
在这里插入图片描述
6.4配置Storm环境变量
在所有节点上运行。

$sudo vi /etc/profile

做如下修改:

#set storm environment
export STORM_HOME=/opt/modules/apache-storm-2.4.0
export PATH=$PATH:$STORM_HOME/bin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.5使环境变量生效
在所有节点上运行。

$source /etc/profile

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7启动Zookeeper
此步需要在启动Storm之前执行。
在所有节点上执行。
确保已经添加java环境。

sudo vim /etc/profile

在这里插入图片描述

cd /opt/modules/apache-zookeeper-3.6.3-bin/bin
udo vi ./zkServer.sh

在这里插入图片描述
加入

export JAVA_HOME=/usr/lib/jvm/java-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述

$cd /opt/modules/apache-zookeeper-3.6.3-bin/bin
$./zkServer.sh start

执行结果及进程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.启动Storm

建议使用MobaXterm远程登录客户端,因为同一个节点,比如192.168.109.131需要启动多个服务,且各个服务启动后就不会返回shell界面。这时就可以使用MobaXterm较方便的打开多个终端启动其他服务。
8.1主节点
8.1.1启动nimbus进程

$storm nimbus

在这里插入图片描述
8.1.2启动UI

$vi /opt/modules/apache-storm-2.4.0/conf/storm.yaml

storm ui的默认端口为8080, 而该端口被其他进程占用(如hadoop等),我们将其修改为其它端口。
加入:
ui.port: 19999(注意冒号后面一定要有空格)

在这里插入图片描述

$storm ui

在这里插入图片描述
8.1.3启动logviewer

$storm logviewer

在这里插入图片描述
8.1.4主节点执行结果及进程
直接jps查看进程:

jps

在这里插入图片描述
8.2从节点
8.2.1启动supervisor

$storm supervisor

在这里插入图片描述
在这里插入图片描述
8.2.2启动logviewer

.$storm logviewer

在这里插入图片描述
9Storm应用实践
9.1使用Maven管理storm-starter
在主节点进行。
9.1.1安装Maven
9.1.1.1解压

$tar -zxvf apache-maven-3.9.2-bin.tar.gz -C /opt/modules/

在这里插入图片描述
9.1.2配置Maven环境变量
9.1.2.1设置Maven环境变量

$sudo vi /etc/profile
export MAVEN_HOME=/opt/modules/apache-maven-3.9.2
export PATH=$PATH:$MAVEN_HOME/bin

在这里插入图片描述
9.1.2.2使环境变量生效

$source /etc/profile

在这里插入图片描述
9.1.2.3测试Maven是否安装成功

mvn -version

在这里插入图片描述
9.1.3使用Maven管理示例工程storm-starter
9.1.3.1修改Maven的配置文件

$cd /opt/modules/apache-maven-3.9.2/conf
$vi settings.xml

对以下语句进行注释:

<mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
</mirror>

在这里插入图片描述
9.1.3.2进入storm-starter目录

$cd /opt/modules/apache-storm-2.4.0/examples/storm-starter

在这里插入图片描述
9.1.3.3编辑pom.xml文件

$vi pom.xml

在和标签中添加:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.6.0</version>
    <executions>
        <execution>
            <goals>
                <goal>java</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <mainClass>storm.starter.WordCountTopology</mainClass>
    </configuration>
</plugin>

在这里插入图片描述
9.1.3.4编译storm-starter工程

$ mvn clean install -DskipTests=true

此过程会下载大量文件,请耐心等待……
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
9.1.3.5打包成jar

$ mvn package

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.2提交运行

$cd /opt/modules/apache-storm-2.4.0/examples/storm-starter/target
$storm jar ./storm-starter-2.4.0.jar org.apache.storm.starter.WordCountTopology wordcountTpy 

//参考:https://blog.csdn.net/lt1693016523/article/details/82662071
成功提交运行jar包
在这里插入图片描述
在这里插入图片描述
9.2.1UI监控
任务提交之后就可以监控。在浏览器中输入:

192.168.95.20:19999 //ip地址视自己情况改变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/242690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

掌握Web、DNS、FTP、DHCP服务器的配置。掌握简单网络方案的规划和设计

1、Web服务器配置 2、综合设计 配置完后,所有的终端主机都要能够访问外网服务器,并进行测试。(本题可以自行选题,自行设计,但必须包含路由器、服务器(web、dns、DHCP、)、交换机及防火墙)。 3.做好规划并搭建拓扑图: 4.给PC机与服务器配置好IP,网关 5.给每个交换机…

【Spring】02 Bean 的命名

文章目录 1. 定义2. 使用优势3. 如何命名4. 注解驱动5. 最佳实践1&#xff09;使用明确的业务名词2&#xff09;避免缩写和首字母缩略词2&#xff09;不要过度使用别名 结语 在 Spring 框架中&#xff0c;Bean 是应用程序中的主要组件&#xff0c;负责承载和管理应用的核心功能…

bugku -- eval

<?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?> //这段代码包含了一个PHP脚本。首先&#xff0c;它包含了一个名为"flag.php"的文件。然后&#xff0c;它定义了一个变量$a&#xff0c…

SpringBootWeb入门、HTTP协议、Web服务器-Tomcat

目录 一、SpringBootWeb入门 二、HTTP协议 HTTP-请求协议 HTTP-响应协议 HTTP-协议解析 三、Web服务器-Tomcat 服务器概述 Tomcat 一、SpringBootWeb入门 直接基于SpringFramework进行开发&#xff0c;存在两个问题&#xff1a;配置繁琐、入门难度大 通过springboot就…

MATLAB读写txt文件数据与进制转换

文章目录 前言读txt文件读txt中的十进制数据到MATLAB读txt数据的其他进制数据转为十进制到MATLAB读txt内容到MATLAB 写txt文件总:将MATLAB生成的10进制数据转换成十进制和radix进制写入txt分:将MATLAB中十进制数据以radix进制数据格式写入txt文件分:将MATLAB中十进制数据写入tx…

gRPC-Gateway:高效转换 RESTful 接口 | 开源日报 No.105

grpc-ecosystem/grpc-gateway Stars: 16.4k License: BSD-3-Clause gRPC-Gateway 是一个遵循 gRPC HTTP 规范的 gRPC 到 JSON 代理生成器。它是 Google 协议缓冲编译器 protoc 的插件&#xff0c;可以读取 protobuf 服务定义并生成反向代理服务器&#xff0c;将 RESTful HTTP…

linux下配置vscode中的ros的c++调试

第一步 这块是launch.json {"version": "0.2.0","configurations": [{"name": "g - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${wo…

Facebook运营技巧详解,Facebook多店铺如何运营?

在前不久的文章中就讲过Facebook养号和广告的投放技巧&#xff0c;今天东哥就趁热打铁来接着讲讲Facebook的运营技巧&#xff0c;现在做外贸和跨境电商的人基本上都用过Facebook&#xff0c;像在流量这么庞大的平台上想要抓住更多机遇&#xff0c;懂得一些运营技巧是必不可少的…

解决前端VUE前端框架报错Error: error:0308010C:digital envelope routines::unsupported的几种方法

一、报错信息&#xff1a; Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:67:19)at Object.createHash (node:crypto:135:10)at module.exports (E:\Projects\platform-code\platform-cloud\ruoyi-ui\node_modules\we…

鸿蒙开发之页面与组件生命周期

一、页面间的跳转 创建文件的时候记得选择创建page文件&#xff0c;这样就可以在main->resources->profile->main_pages.json中自动形成页面对应的路由了。如果创建的时候你选择了ArkTS文件&#xff0c;那么需要手动修改main_pages.json文件中&#xff0c;添加相应的…

缓存雪崩问题与应对策略

目录 1. 缓存雪崩的原因 1.1 缓存同时失效 1.2 缓存层无法应对高并发 1.3 缓存和后端系统之间存在紧密关联 2. 缓存雪崩的影响 2.1 系统性能下降 2.2 数据库压力激增 2.3 用户请求失败率增加 3. 应对策略 3.1 多级缓存 3.2 限流与降级 3.3 异步缓存更新 3.4 并发控…

OpenHarmony应用开发——更改应用名称和图标

一、前言 相比其他&#xff0c;可能学者更希望学到的就是更改应用名称和图标&#xff0c;当一个自己的程序运行在手机上的时候&#xff0c;或许更有成就感...... 二、详细步骤 首先&#xff0c;我们要先找到声明应用图标和应用名称的地方。如下图所示&#xff0c;在entry ->…

互联网,我们的虚拟世界

同学们&#xff0c;你们知道互联网是干什么的吗&#xff1f;它就像一个虚拟的世界&#xff0c;让我们能够连接到任何地方&#xff0c;获取任何信息&#xff0c;就像你现在正在通过互联网阅读我的文章一样。 互联网 你们有没有想过&#xff0c;如果没有互联网&#xff0c;我们的…

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些&#xff1f; Java程序存储数据&#xff08;变量、对象、数组、集合&#xff09;&#xff0c;数据保存在内存中&#xff0c;属于瞬时状态存储。 文件&#xff08;File&#xff09;存储数据&#xff0c;保存…

webpack学习-4.开发环境

webpack学习-4.开发环境 1.mode2.使用source map3.自动编译代码3.1 webpack 的 观察模式3.2 使用 webpack-dev-server3.3 使用 webpack-dev-middleware 4.总结 1.mode 本章的标题一看就是开发环境&#xff0c;那就要引入webpack配置文件的mode了。 mode 属性用于指定 Webpack …

总结了人工智能领域,能源领域,电气领域比较好中的一些sci期刊!!仅供参考

文章目录 前言一、总结了人工智能领域&#xff0c;能源领域&#xff0c;电气领域比较好中的一些sci期刊 总结 前言 期刊查询网站&#xff1a; https://www.letpub.com.cn/index.php?pagejournalapp&viewsearch 链接: 点我跳转期刊查询网站 一、总结了人工智能领域&#…

hive数据仓库工具

1、hive是一套操作数据仓库的应用工具&#xff0c;通过这个工具可实现mapreduce的功能 2、hive的语言是hql[hive query language] 3、官网hive.apache.org 下载hive软件包地址 Welcome! - The Apache Software Foundationhttps://archive.apache.org/ 4、hive在管理数据时分为元…

[Excel] vlookup函数

VLOOKUP用法 VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])其中&#xff1a; lookup_value是你要查找的值table_array是你要在其中进行查找的表格区域col_index_num是你要返回的在table_array中列索引号range_lookup是一个可选参数&#xff0c;用于指定…

控制笔记本电脑性能,增强性能/控制发热---Thinkpad x280

1、引言 手上有一台收来办公的Thinkpad x280,但安装的联想管家却没有性能调节选项&#xff0c;导致电脑性能释放很不顺手。由于有室外办公需求&#xff0c;也就有续航需求&#xff0c;也是让它减少发热&#xff1b;同时我想在室内的时候&#xff0c;完整发挥它的性能&#xff…

App防止恶意截屏功能的方法:iOS、Android和鸿蒙系统的实现方案

防止应用被截图是一个比较常见的需求&#xff0c;主要是出于安全考虑。下面将分别为iOS&#xff08;苹果系统&#xff09;、Android&#xff08;安卓系统&#xff09;及HarmonyOS&#xff08;鸿蒙系统&#xff09;提供防止截屏的方法和示例代码。 在企业内部使用的应用中&…