云计算与大数据——Storm配置及运行WordCountTopology(保姆级教程!)

云计算与大数据——Storm配置及运行WordCountTopology(保姆级教程!)

前言

当今世界正处于云计算和大数据的快速发展阶段,而Storm作为一种高效、可靠的实时计算框架,受到了广泛的关注和应用。在这篇文章中,我们将从头开始,将提供一份保姆级教程,帮助进行相关配置和运行WordCountTopology。向您展示如何配置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

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

8.启动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地址视自己情况改变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,关于Storm配置及运行WordCountTopology就结束了,过程有点繁琐,但是一步步来遇到问题解决问题,在实践中提高自己运维能力。无论做什么事,我们的主线任务都不能断,无论各位是考研考公或是考教资,希望各位都不要忘了主线,把精力和时间浪费在不值得的事,一路走来难免有后悔,不过还有机会,希望早晚有一天能听到属于我们自己的“Congratulations”,祝你我.

今日写博客Bgm——《祝贺你》歌手:朱迪·霍普斯专辑:希望(Remix)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【二】xxl-job 源码分析

xxl-job 源码分析 简介&#xff1a;阅读优秀的开源项目源码总是一件让人激动的事情&#xff0c;分布式调度平台xxl-job我们在生产环境也是有了很多的实践应用&#xff0c;一款产品使用久了对其实现原理多少有些了解了&#xff0c;今天也是抽出整块的时间来认真分析一下xxl-job的…

安卓备份分区----手动查询安卓系统分区信息 导出系统分区的一些基本操作

在玩机搞机过程中。有时候需要手动查看有些分区信息&#xff0c;或者备份分区的操作。那么今天以小米8为例解析下其中的操作步骤 机型&#xff1a;小米8 adb版本&#xff1a;https://developer.android.com/studio/releases/platform-tools 机型芯片&#xff1a;高通骁龙845…

三门问题-Swift测试

三门问题&#xff08;Monty Hall problem&#xff09;亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论&#xff0c;大致出自美国的电视游戏节目Lets Make a Deal。问题名字来自该节目的主持人蒙提霍尔&#xff08;Monty Hall&#xff09;。 参赛者会看见三扇关闭了的门&#xf…

TikTok的媒体革命:新闻业如何适应短视频时代?

在数字时代&#xff0c;媒体行业一直在不断演变和创新&#xff0c;以适应观众的变化需求和技术的发展。而在这个进化的过程中&#xff0c;短视频应用TikTok已经崭露头角&#xff0c;成为了一个重要的信息传播平台。 这篇文章将深入探讨TikTok如何引领了媒体的一场革命&#xf…

某高校的毕设

最近通过某个平台接的单子&#xff0c;最后Kali做的测试没有公开可以私聊给教程。 下面是规划与配置 1.vlan方面&#xff1a;推荐一个vlan下的所有主机为一个子网网段 连接电脑和http客户端的接口配置为access接口 交换机与交换机或路由器连接的接口配置为trunk接口---也可以…

数据分析回头看2——重复值检查/元素替换/异常值筛选

0、前言&#xff1a; 这部分内容是对Pandas的回顾&#xff0c;同时也是对Pandas处理异常数据的一些技巧的总结&#xff0c;不一定全面&#xff0c;只是自己在数据处理当中遇到的问题进行的总结。 1、当数据中有重复行的时候需要检测重复行&#xff1a; 方法&#xff1a;使用p…

RabbitMQ工作模式——Routing路由模式

1.Routing路由模式 Routing生产者代码 public class Producer_Routing {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.…

Android T 禁止应用添加窗口的操作

序 什么情况下会出现我们需要禁止应用添加窗口的情况呢&#xff1f; 假如有一个应用的窗口&#xff0c;我们点开后是透明的或者会影响到系统的使用&#xff0c;那么我们就有必要对这个窗口操作一下 回顾我们在Android T WMS窗口相关流程中所讲的内容 禁止应用添加窗口的操作…

程序开发常用在线工具汇总

菜鸟工具# https://c.runoob.com/ 编码# ASCII码# https://www.habaijian.com/ 在线转换# https://www.107000.com/T-Ascii/http://www.ab126.com/goju/1711.html Base64# 在线转换# https://www.qqxiuzi.cn/bianma/base64.htmhttp://www.mxcz.net/tools/Unicode.aspx …

Diffusion Autoencoders: Toward a Meaningful and Decodable Representation

Diffusion Autoencoders: Toward a Meaningful and Decodable Representation (Paper reading) Konpat Preechakul, VISTEC, Thailand, CVPR22 Oral, Cited:117, Code, Paper 1. 前言 扩散概率模型 (DPM) 在图像生成方面取得了显着的质量&#xff0c;可与 GAN 相媲美。但是与…

引入嵌入和向量搜索时的三个错误

将非结构化数据表示为嵌入向量以及使用向量搜索进行基于嵌入的检索 (embedding-based retrieval - EBR) 比以往任何时候都更加流行。 嵌入到底是什么&#xff1f; Roy Keyes 在《嵌入的最短定义&#xff1f;》中对此进行了很好的解释。 嵌入是学习的转换&#xff0c;使数据更有…

React redux更新数据的诡异特征==》彻底掌握redux更新state机制的精髓

此文章是跟随我上一篇文章《Redux Toolkit中action派发但state值不更新的原因》写的。 本来一切都搞定了&#xff0c;此时我突发奇想&#xff1a; 如果让api服务端不发送包含x-pagination的header信息&#xff0c;web端会不会报错。因为按照web端 redux原有的逻辑&#xff1a;…

ubuntu与win之间共享文件夹

ubuntu上设置共享文件夹 第一步&#xff1a;点击【设置】或【虚拟机弹窗下面的【设置】选项】 第二步&#xff1a;进入【虚拟机设置】页面&#xff0c;点击【选项】如下图所示 第三步&#xff1a;启用共享文件&#xff1a;点击【总是启用】第四步&#xff1a;添加共享文件&…

【深度学习】RNN循环神经网络和LSTM深度学习模型

1. 循环神经网络 RNN&#xff08; Recurrent Neural Network&#xff09; 循环神经网络的一个核心是可以把前面的序列数据用到后面的结果预测里面。怎么样实现这一点呢。RNN 结构如下图所示。 前部序列的信息经处理后&#xff0c;作为输入信息传递到后部序列。 数学模型&…

机器学习第十三课--主成分分析PCA

一.高维数据 除了图片、文本数据&#xff0c;我们在实际工作中也会面临更多高维的数据。比如在评分卡模型构建过程中&#xff0c;我们通常会试着衍生出很多的特征&#xff0c;最后就得到上千维、甚至上完维特征;在广告点击率预测应用中&#xff0c;拥有几个亿特征也是常见的事…

使用U3D、pico开发VR(一)——将unity的场景在设备中呈现

最近srtp项目在赶进度&#xff0c;自己之前是在电脑端进行的开发。但是项目是VR端&#xff0c;因此需要重新学习&#xff0c;在此记录一下自己的学习经历。 首先&#xff0c;如何将unity的场景在自己的眼镜中进行呈现呢&#xff1f; 对此&#xff0c;我也找了很多教程&#xff…

Ubuntu 安装Kafka

在本指南中&#xff0c;我们将逐步演示如何在 Ubuntu 22.04 上安装 Apache Kafka。 在大数据中&#xff0c;数以百万计的数据源生成了大量的数据记录流&#xff0c;这些数据源包括社交媒体平台、企业系统、移动应用程序和物联网设备等。如此庞大的数据带来的主要挑战有两个方面…

软件架构的演化和维护

软件架构的演化和维护 定义 定义 顶不住了&#xff0c;刷题去了&#xff0c;不搞这个了&#xff0c;想吐。。。

GLTF编辑器也可以转换GLB模型

1、GLB模型介绍 GLB&#xff08;GLTF Binary&#xff09;是一种用于表示三维模型和场景的文件格式。GLTF是"GL Transmission Format"的缩写&#xff0c;是一种开放的、跨平台的标准&#xff0c;旨在在各种3D图形应用程序和引擎之间进行交换和共享。 GLB文件是GLTF文件…

目标检测:Edge Based Oriented Object Detection

论文作者&#xff1a;Jianghu Shen,Xiaojun Wu 作者单位&#xff1a;Harbin Institute of Technology Shenzhen 论文链接&#xff1a;http://arxiv.org/abs/2309.08265v1 内容简介&#xff1a; 1&#xff09;方向&#xff1a;遥感领域中的目标检测技术 2&#xff09;应用&…