大数据-Storm流式框架(八)---Storm案例

news2025/4/8 14:34:31

中国移动项目部署文档

一、项目架构

二、启动集群

1、启动Zookeeper集群

2、启动Hbase(完全分布式需要先启动Hadoop集群)

在conf/hbase-env.sh中设置JAVA_HOME

在conf/hbase-site.xml中,仅需要指定hbase和zookeeper写数据的本地路径。默认情况下会在/tmp下创建新的目录。

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///root/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/root/zookeeper</value>
  </property>
</configuration>

我们不需要创建任何目录,hbase会创建。如果手动创建了,hbase会做一个迁移,这不是我们想要的。

bin/start-hbase.sh脚本用于启动hbase。启动成功,hbase会在标准输出打印成功启动的信息。使用jps查看进程,会只有一个HMaster进程。这个进程中包含了一个HMaster、一个HRegionServer以及一个zookeeper的daemon。它们在同一个进程中。



1、连接HBase:
	shell> ./bin/hbase shell
2、在hbase的shell中输入help并回车,获取帮助:
	hbase(main):001:0> help
3、创建表
	使用create命令创建表,必须指定表名和列族的名称
	hbase(main):001:0> create 'test', 'cf'
0 row(s) in 0.4170 seconds

=> Hbase::Table - test

4、列出表的信息
	使用list命令列出信息。
	hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds

=> ["test"]

5、向table插入数据
	使用put命令。
	hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0850 seconds

hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0110 seconds

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0100 seconds
	以上,插入了三个值,每次一个。第一次在row1的位置,cf:a列插入值value1。hbase中的列由列族前缀cf跟一个冒号,再跟一个列标识符后缀比如a。

6、一次性扫描表中的所有数据
	要查询表中的数据,可以使用scan命令。可以在该命令中使用限定条件,下面获取了表中的所有数据:
	hbase(main):016:0> scan 'test'
ROW                     COLUMN+CELL                                                                                                
 	row1                      column=cf:a, timestamp=1568514191889, value=value1                                                         
 	row2                      column=cf:b, timestamp=1568514198429, value=value2                                                         
row3                      column=cf:c, timestamp=1568514205341, value=value3                                                         
3 row(s) in 0.0350 seconds

7、查询一行记录
	使用get命令一次获取一行记录
	hbase(main):017:0> get 'test', 'row1'
COLUMN                         CELL                                                                                                       
 	cf:a                              timestamp=1568514191889, value=value1                                                                      
1 row(s) in 0.0140 seconds

8、禁用一张表
	如果要删除表或更改表的设置,需要先使用disable命令禁用该表,之后也可以使用enable命令重新使用该表。
	hbase(main):018:0> disable 'test'
0 row(s) in 1.3350 seconds

hbase(main):019:0> enable 'test'
0 row(s) in 0.2520 seconds

	再次使用disable命令禁用该表:
	hbase(main):020:0> disable 'test'
0 row(s) in 1.2580 seconds

9、删除表
	在表已经禁用的情况下,使用drop命令删除表
	hbase(main):021:0> drop 'test'
0 row(s) in 0.1550 seconds

10、退出HBase的shell
	退出shell断开到集群的连接,可以使用quit命令。但是hbase服务进程仍然在后台运行。
	hbase(main):022:0> quit
[root@node1 hbase-0.98.12.1-hadoop2]#

11、停止hbase服务进程
	bin/start-hbase.sh开启hbase的所有进程,bin/stop-hbase.sh用于停止所有hbase进程。
	[root@node1 hbase-0.98.12.1-hadoop2]# bin/stop-hbase.sh 
stopping hbase..................
[root@node1 hbase-0.98.12.1-hadoop2]#
12、使用jps查看进程信息,确保hbase的HMaster和HRegionServer进程成功关闭:
	[root@node1 hbase-0.98.12.1-hadoop2]# jps
2831 Jps
[root@node1 hbase-0.98.12.1-hadoop2]#start-hbase.sh
3、启动Kafka集群
	bin/kafka-server-start.sh config/server.properties

三、项目部署

1、在Hbase中创建如下表:

start-hbase.sh

hbase shell

create 'cell_monitor_table','cf'

  1. 修改项目配置

A、cmccstorm项目

    1. 修改cmcc.constant.Constants中对应各配置项。

如:HBASE_ZOOKEEPER_LIST、KAFKA_ZOOKEEPER_LIST、BROKER_LIST、ZOOKEEPERS

B、cmccweb项目

  1. 修改cmcc.hbase.dao.impl.HBaseDAOImp中Hbase的Zookeeper集群配置
  2. 启动生成测试数据的方法 -- cmccstorm

运行kafka.productor. CellProducer,随机生成模拟数据,并将数据写入到Kafka中。

此时,可查看Kafka中topic列表:

bin/kafka-topics.sh --zookeeper node2:2181,node3:2181,node4:2181 --list

bin/kafka-topics.sh --zookeeper node2:2181,node3:2181,node4:2181 --create --replication-factor 2 --partitions 1 --topic mylog_cmcc

bin/kafka-console-consumer.sh --zookeeper node2:2181,node3:2181,node4:2181 --from-beginning --topic mylog_cmcc

mylog_cmcc为模拟数据发送至Kafka中的topic

查看数据:

bin/kafka-console-consumer.sh --zookeeper node2:2181,node3:2181,node4:2181 --topic mylog_cmcc

  1. 启动storm分析-- cmccstorm

(当前项目以本地测试为例)

运行topo.KafkaOneCellMonintorTopology,从Kafka中读取数据,Storm分析之后,结果写入Hbase中存放。

此时,若已经产生“掉话”情况,分析结果在Hbase当中可以查看到:

  1. 启动web展示项目 -- cmccweb

将cmccweb添加到Tomcat中,启动Tomcat服务,浏览器通过访问以下地址查看:

http://localhost:8080/cmcc/onecellmonitor.jsp

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

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

相关文章

【Python学习】—Python基础语法(七)

一、异常 当检测到一个错误时&#xff0c;Python解释器无法继续执行&#xff0c;反而出现一些提示错误。 基本语法&#xff1a; try:可能发生的错误 except:如果出现异常执行的代码二、异常的传递 三、模块 import time print("你好") time.sleep(5) print("…

知识管理的PSCA循环

前言&#xff1a;在PMP备考第二章《环境》部分&#xff0c;面对项目的复杂性&#xff0c;提到了知识管理的PSDA循环&#xff0c;本篇博客主要谈一下什么是PSDA循环&#xff0c;以及我们面对复杂的环境&#xff0c;如何提升自己的学习能力和认知水平。 目录 知识的冰山模型 P…

我的架构复盘

1、背景 我目前公司研发中心担任软件研发负责人&#xff0c;研发中心分为3组&#xff0c;总共有30多人。研发中心主要开发各类生产辅助工具&#xff0c;比如巡检、安全教育等系统。系统不对外&#xff0c;只在公司内部使用。 就我个人来说&#xff0c;作为研发负责人&#xf…

高级深入--day44

Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架&#xff0c;但是不支持分布式&#xff0c;Scrapy-redis是为了更方便地实现Scrapy分布式爬取&#xff0c;而提供了一些以redis为基础的组件(仅有组件)。 pip install scrapy-redis Scrapy-redis提供了下面四种组件&a…

STM32G030F6P6 芯片实验 (一)

STM32G030F6P6 芯片实验 (一) 淘宝搞了几片, 没试过 G系列, 试试感觉. 先搞片小系统版: 套 STM32F103C8T6小系统板格式. 原理图: (1) Ref 有点跳, 从 STM32F103C8T6 系统板改的, 没重编号. (2) Type-C 纯给电, 砍了 16pin的, 直接换 6pin的。 (3) 测试LED放 B2。 (4) 测试底…

Java基于SpringBoot+Vue的网上图书商城管理系统(附源码,教程)

文章目录 1. 简介2 技术栈3 系统功能4系统设计4.1数据库设计 5系统详细设计5.1系统功能模块5.1系统功能模块5.2管理员功能模块 源码下载地址 1. 简介 本次设计任务是要设计一个网上图书商城&#xff0c;通过这个系统能够满足网上图书商城的管理功能。系统的主要功能包括首页、…

javascript中各种风骚的代码

1.判断数值符号是否相同 function numericSymbolsIsEqual(x: number, y: number): boolean {return (x ^ y) > 0}console.log(numericSymbolsIsEqual(1, 1))console.log(numericSymbolsIsEqual(-1, 1))console.log(numericSymbolsIsEqual(1, -1))console.log(numericSymbols…

利用STM32CubeMX和keil模拟器,3天入门FreeRTOS(0) —— 创建工程

前言 &#xff08;1&#xff09;FreeRTOS是我一天过完的&#xff0c;由此回忆并且记录一下。个人认为&#xff0c;如果只是入门&#xff0c;利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后&#xff0c;再去学习网上的一些其他课程也许会简单很多。 &#xff08;2&am…

spring-代理模式

代理模式 一、概念1.静态代理2.动态代理 一、概念 ①介绍 二十三种设计模式中的一种&#xff0c;属于结构型模式。它的作用就是通过提供一个代理类&#xff0c;让我们在调用目标 方法的时候&#xff0c;不再是直接对目标方法进行调用&#xff0c;而是通过代理类间接调用。让不…

Centos虚拟机安装配置与MobaXterm工具及Linux常用命令

目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像 1.4 虚拟机开机初始设置 1.4.1 查看网络配置 1.4.2 编辑网络配置 二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装 2.3 切换国内源 三、Linux常用命令和模式 3.1 …

leetCode 260.只出现一次的数字 ||| + 位运算

260. 只出现一次的数字 III - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums&#xff0c;其中恰好有两个元素只出现一次&#xff0c;其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。你必须设计并实现线性时间复杂度的算法且…

微信小程序 人工智能志愿者服务活动报名系统uniAPP+vue

基于java语言设计并实现了人工智能志愿者服务APP。该APP基于B/S即所谓浏览器/服务器模式&#xff0c;应用SpringBoot框架与HBuilder X技术&#xff0c;选择MySQL作为后台数据库。系统主要包括用户、志愿活动、活动报名、活动签到、服务职责、服务排行等功能模块。 本文首先介绍…

C++之回调函数使用和不使用using、typedef、function定义总结(二百五十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

prometheus服务发现

Consul简介 ◼ 一款基于golang开发的开源工具&#xff0c;主要面向分布式&#xff0c;服务化的系统提供服务注册、服务发现和配置管理 的功能 ◼ 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能 部署 curl -LO https://releases.hashicorp…

单片机与进制数

目录 一:数字系统的由来 A:二进制 1: 基础概念 2: 二进制运算 3:二进制的计算 B:八进制 1:基础概念 C:16进制表 四:单片机中的进制数 一:数字系统的由来 1:远古时代:结绳计数 2:非位置化数字系统: 罗马数字 非位置化数字系统: 一个符号在不同的位置只会表达同样的意思…

Gitee 发行版

Gitee 发行版 1、Gitee 发行版管理2、项目仓库中创建发行版本3、项目中导入3.1 gradle配置3.2 dependencies执行正常&#xff0c;包没有下载 1、Gitee 发行版管理 Gitee 发行版&#xff08;Release&#xff09;管理 2、项目仓库中创建发行版本 按照Gitee官网操作就行 3、项目…

N-130基于springboot,vue校园社团管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatis-plus 本系…

Linux 下 12 个最佳 Notepad++ 替代品

Notepadd 是一款完全免费的源代码编辑器&#xff0c;旨在替代 Windows 上的记事本 – 基于 Scintilla 用 C 编写&#xff0c;并实现 Win32 API 和 STL&#xff0c;以确保程序尺寸小且执行速度快 – 这些特性使其成为一个家族开发者中的名字。遗憾的是&#xff0c;没有适用于 Li…

Jetpack:021-Jetpack中的滑动列表

文章目录 1. 概念介绍2. 使用方法2.1 函数参数2.2 列表成员 3. 示例代码4. 内容扩展5. 内容总结 我们在上一章回中介绍了Jetpack中底部导航栏相关的内容&#xff0c;本章回中主要介绍 滑动列表。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍…

【Git】HEAD detached from xxx 问题及解决方案

问题背景 最近用git的时候遇到了一个问题&#xff0c;场景是这样的。 我有一个分支main&#xff0c;其中有两个commit A和B&#xff0c;A是最新commit&#xff0c;B是历史commit。我先切到B看了看之前的代码&#xff0c;然后切到A&#xff0c;并进行了一些代码修改&#xff0…