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

中国移动项目部署文档

一、项目架构

二、启动集群

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 - test4、列出表的信息使用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 secondshbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0110 secondshbase(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 seconds7、查询一行记录使用get命令一次获取一行记录hbase(main):017:0> get 'test', 'row1'
COLUMN                         CELL                                                                                                       cf:a                              timestamp=1568514191889, value=value1                                                                      
1 row(s) in 0.0140 seconds8、禁用一张表如果要删除表或更改表的设置,需要先使用disable命令禁用该表,之后也可以使用enable命令重新使用该表。hbase(main):018:0> disable 'test'
0 row(s) in 1.3350 secondshbase(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 seconds9、删除表在表已经禁用的情况下,使用drop命令删除表hbase(main):021:0> drop 'test'
0 row(s) in 0.1550 seconds10、退出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.rhkb.cn/news/174000.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023 年值得关注的国外网络安全初创公司

网络安全初创公司试图解决的问题往往有点超前于主流。他们可以比大多数老牌公司更快地填补空白或新兴需求。初创公司通常可以更快地创新&#xff0c;因为它们不受安装基础的限制。 当然&#xff0c;缺点是初创公司往往缺乏资源和成熟度。公司致力于初创公司的产品或平台是有风…

Spring Web MVC入门

一&#xff1a;了解Spring Web MVC (1)关于Java开发 &#x1f31f;Java开发大多数场景是业务开发 比如说京东的业务就是电商卖货、今日头条的业务就推送新闻&#xff1b;快手的业务就是短视频推荐 (2)Spring Web MVC的简单理解 &#x1f497;Spring Web MVC&#xff1a;如何使…

缓解大模型幻觉问题的解决方案

本文记录大模型幻觉问题的相关内容。 参考&#xff1a;Mitigating LLM Hallucinations: a multifaceted approach 地址&#xff1a;https://amatriain.net/blog/hallucinations &#xff08;图&#xff1a;解决大模型幻觉的不同方式&#xff09; 什么是幻觉&#xff1f; 幻觉…

常见面试题-MySQL专栏(一)

为什么 mysql 删了行记录&#xff0c;反而磁盘空间没有减少&#xff1f; 答&#xff1a; 在 mysql 中&#xff0c;当使用 delete 删除数据时&#xff0c;mysql 会将删除的数据标记为已删除&#xff0c;但是并不去磁盘上真正进行删除&#xff0c;而是在需要使用这片存储空间时&…

Linux之线程池

线程池 线程池概念线程池的应用场景线程池实现原理单例模式下线程池实现STL、智能指针和线程安全其他常见的各种锁 线程池概念 线程池&#xff1a;一种线程使用模式。 线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待…

如何在Node.js中使用环境变量或命令行参数来设置HTTP爬虫ip?

首先&#xff0c;定义问题&#xff1a;在 Node.js 应用程序中&#xff0c;我们可以通过环境变量或命令行参数来设置HTTP爬虫ip&#xff0c;以便在发送请求时使用这些HTTP爬虫ip。 亲身经验&#xff1a;我曾经需要为一个项目设置HTTP爬虫ip&#xff0c;以便在发送请求时使用这些…

EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明

一、准备阶段 POE交换机欧姆龙PLC 支持EtherNet Ip协议CX-Programmer 9.5配置软件 二、配置读卡器 1、打开软件 2、选择网卡&#xff0c;如果多网卡的电脑请注意对应所接的网卡&#xff0c;网卡名一般为“Network adapter Realtek PCIe GBE Family” 3、点击“选择网卡”&…

Node学习笔记之user用户API模块

1、获取用户的基本信息 步骤 获取登录会话存储的session中用户的id判断是否获取到id根据用户id查询数据库中的个人信息检查指定 id 的用户是否存在将密码设置为空将数据返回给前端 // 获取用户信息数据 exports.userinfo (req, res) > {(async function () {// 1. 获取…

BUUCTF rar 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 这个是一个rar文件&#xff0c;里面好像隐藏着什么秘密&#xff0c;但是压缩包被加密了&#xff0c;毫无保留的告诉你&#xff0c;rar的密码是4位纯数字。 密文&#xff1a; 下载附件&#xff0c;解压得到一个rar压…

MySQL---JDBC编程

文章目录 什么是JDBC&#xff1f;JDBC的工作原理JDBC的使用添加驱动创建数据源DataSource创建数据库连接Connection创建操作命令Statement执行SQL指令释放资源 通过JDBC演示CRUD新增查询&#xff08;需要增加一步 遍历结果集合的操作&#xff09;修改删除 什么是JDBC&#xff1…

Qt界面实现中英文切换

要实现的效果&#xff0c;是下拉列表切换中文和English实现按钮文本中英文内容切换。 实现步骤&#xff1a; 1.在VS中鼠标对Translation Files文件右击&#xff0c;选择“添加”--->“模块”. 在弹窗的窗口中选择“Qt”--->“Qt Translation File”。 添加Translation_e…

BIOS MBR UEFI GPT详解

先来看下名词 启动方式&#xff1a; BIOS&#xff1a;Basic Input Output System&#xff0c;中文名称"基本输入输出系统"。 UEFI&#xff1a;Unified Extensible Firmware Interface&#xff0c;中文名称"统一的可扩展固件接口"。 Legacy&#xff1a;…

DAY38 动态规划 + 509. 斐波那契数 + 70. 爬楼梯 + 746. 使用最小花费爬楼梯

动态规划理论 动态规划&#xff0c;Dynamic Programming&#xff0c; DP&#xff0c; 如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推导…

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

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

AD教程(一)工程组成及创建

AD教程&#xff08;一&#xff09;工程组成及创建 工程组成 原理图库 绘制电阻模型、芯片模型、电容模型等&#xff0c;即将元件模型绘制出来。 原理图 将绘制的原件模型放置到原理图中&#xff0c;然后再添加连接的导线、网络标号。器件和器件之间的连接关系&#xff0c;在原…

SDL事件处理以及线程使用(2)

事件使用 #include <stdio.h> #include <SDL.h>#define FF_QUIT_EVENT (SDL_USEREVENT 1) // 定义自定义事件#undef main int main() {SDL_Window* pWindow NULL;SDL_Init(SDL_INIT_VIDEO);// 创建窗口pWindow SDL_CreateWindow("Event Test Title&…

【方法】如何给PDF文件添加“打开密码”?

PDF文件可以在线浏览&#xff0c;但如果想要给文件添加“打开密码”&#xff0c;就需要用到软件工具&#xff0c;下面小编分享两种常用的工具&#xff0c;小伙伴们可以根据需要选择。 工具一&#xff1a;PDF编辑器 PDF阅读器一般是没有设置密码的功能模块&#xff0c;PDF编辑器…

深入浅出排序算法之希尔排序

目录 1. 原理 2. 代码实现 3. 性能分析 1. 原理 希尔排序法又称缩小增量法。希尔排序法的基本思想是&#xff1a;先选定一个整数&#xff0c;把待排序文件中所有记录分成个组&#xff0c;所有距离为的记录分在同一组内&#xff0c;并对每一组内的记录进行排序。然后&#xf…

7.scala方法初探

概述 在 scala 中&#xff0c;方法定义在内中&#xff0c;这点类似于 java &#xff0c;此文说明如何定义方法&#xff0c;及方法一些 用法 相关链接 阅读之前&#xff0c;可以先行浏览一下 官方文档 scala相关文章 定义一个参数的方法 这个例子定义了一个名为 double 方法&a…

【Linux】权限完结

个人主页点击直达&#xff1a;小白不是程序媛 系列专栏&#xff1a;Linux被操作记 目录 前言 chown指令 chgrp指令 文件类型 file指令 目录的权限 粘滞位 umask指令 权限总结 前言 上篇文章我们说到对于一个文件所属者和所属组都是同一个人时&#xff0c;使用所属者身…