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

中国移动项目部署文档

一、项目架构

大数据-Storm流式框架(八)---Storm案例_第1张图片

二、启动集群

1、启动Zookeeper集群

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

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

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


  
    hbase.rootdir
    file:///root/hbase
  
  
    hbase.zookeeper.property.dataDir
    /root/zookeeper
  

我们不需要创建任何目录,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

大数据-Storm流式框架(八)---Storm案例_第2张图片

  1. 启动storm分析-- cmccstorm

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

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

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

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

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

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

大数据-Storm流式框架(八)---Storm案例_第3张图片

大数据-Storm流式框架(八)---Storm案例_第4张图片

你可能感兴趣的:(Storm,大数据,storm)