准备工作:

  1、安装Kafka,启动,以及创建相应的topic

1、启动kafkabin/kafka-server-start.sh  config/server.properties > /dev/null 2>&1 &2、列出所有的topicsbin/kafka-topics.sh --list --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:21813、创建topicsbin/kafka-topics.sh --create --topic apache-logs --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:2181 --replication-factor 1 --partitions 5bin/kafka-topics.sh --create --topic apache-error-logs --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:2181 --replication-factor 1 --partitions 5bin/kafka-topics.sh --create --topic apache-slow-logs --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:2181 --replication-factor 1 --partitions 5

  2、安装Python以及pip

pip install apache-log-parser

3、创建并修改  Fake-Apache-Log-Generator

Fake-Apache-Log-Generator is not presented to package, and also we need to modify the script.

$ git clone https://github.com/kiritbasu/Fake-Apache-Log-Generator.git
$ cd Fake-Apache-Log-Generator

Open apache-fake-log-gen.py and replace while (flag): statements to below

 elapsed_us = random.randint(1 * 1000,1000 * 1000) # 1 ms to 1 secseconds=random.randint(30,300)increment = datetime.timedelta(seconds=seconds)otime += incrementip = faker.ipv4()dt = otime.strftime('%d/%b/%Y:%H:%M:%S')tz = datetime.datetime.now(pytz.timezone('US/Pacific')).strftime('%z')vrb = numpy.random.choice(verb,p=[0.6,0.1,0.1,0.2])uri = random.choice(resources)if uri.find("apps")>0:uri += `random.randint(1000,10000)`resp = numpy.random.choice(response,p=[0.9,0.04,0.02,0.04])byt = int(random.gauss(5000,50))referer = faker.uri()useragent = numpy.random.choice(ualist,p=[0.5,0.3,0.1,0.05,0.05] )()f.write('%s - - [%s %s] %s "%s %s HTTP/1.0" %s %s "%s" "%s"\n' % (ip,dt,tz,elapsed_us,vrb,uri,resp,byt,referer,useragent))log_lines = log_lines - 1flag = False if log_lines == 0 else True

4、准备parse-fake-log-gen-to-json-with-incrementing-id.py 脚本

import sys
import apache_log_parser
import jsonauto_incr_id = 1
parser_format = '%a - - %t %D "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
line_parser = apache_log_parser.make_parser(parser_format)
while True:# we'll use pipeline = sys.stdin.readline()if not line:breakparsed_dict = line_parser(line)parsed_dict['id'] = auto_incr_idauto_incr_id += 1# works only python 2, but I don't care cause it's just a test module :)parsed_dict = {k.upper(): v for k, v in parsed_dict.iteritems() if not k.endswith('datetimeobj')}print json.dumps(parsed_dict)

7、将产生的apache log 解析为Json写到kafka
  

python apache-fake-log-gen.py -n 0 | python parse-fake-log-gen-to-json-with-incrementing-id.py | ../kafka/bin/kafka-console-producer.sh --broker-list 192.168.46.160:9092 --topic apache-logs

8、查看发送到kafka
  

bin/kafka-console-consumer.sh --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:2181 --topic apache-logs

9、storm-sql-kafka
  启动storm集群 nimbus,ui,supervisor

${storm_home}/bin/storm sql apache_log_error_filtering.sql apache_log_error_filtering --artifacts "org.apache.storm:storm-sql-kafka:1.1.1,org.apache.storm:storm-kafka:1.1.1,org.apache.kafka:kafka_2.10:0.8.2.2^org.slf4j:slf4j-log4j12,org.apache.kafka:kafka-clients:0.8.2.2"${storm_home}/bin/storm sql apache_log_slow_filtering.sql apache_log_slow_filtering --artifacts "org.apache.storm:storm-sql-kafka:1.1.1,org.apache.storm:storm-kafka:1.1.1,org.apache.kafka:kafka_2.10:0.8.2.2^org.slf4j:slf4j-log4j12,org.apache.kafka:kafka-clients:0.8.2.2" --jars "UDFTest-0.0.1-SNAPSHOT.jar"

10、查看kafka 返回的结果
  bin/kafka-console-consumer.sh --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:2181 --topic apache-error-logs

  bin/kafka-console-consumer.sh --zookeeper zk-datanode-01:2181,zk-datanode-02:2181,zk-datanode-03:2181 --topic apache-slow-logs

问题报错记录
ImportError: No module named pytz
ImportError: No module named numpy
ImportError: No module named faker

解决方式:pip install pytz
pip install numpy
pip install faker

可以测试了,storm 版本1.1.1,官网地址:http://storm.apache.org/releases/1.1.1/storm-sql-example.html

 

 

转载于:https://www.cnblogs.com/atomicbomb/p/8145371.html

Storm sql 简单测试相关推荐

  1. Storm性能简单测试

    看了很多关于Storm性能的文章,说法不一,自己根据实际业务测一下是否能满足自身要求(只做了简单集群和代码调优) 场景:kafka消费数据标准化后存储到Hbase中 服务器资源: 两台32G内存做Su ...

  2. oracle 测试sql执行时间_通过错误的SQL来测试推理SQL的解析过程

    这是学习笔记的第 1977 篇文章 如果抛出一个问题,你是如何理解MySQL解析器的,它和Oracle解析器有什么差别?相信大多数同学都会比较迷茫,因为这个问题很难验证,要不是看源码,要不就是查看书上 ...

  3. sql简单带索引的语句_SQL Server 2017:栏目索引和简单计划

    sql简单带索引的语句 Some time ago, SQL Server 2017 was released and issued as CTP. The most exciting release ...

  4. SQL 压力测试实战

    针对数据库的测试,市面上已经有很多工具了,Google 上搜一下 sql testing tool , 他为你选出的工具,琳琅满目,看花双眼. 比如:40+ Best Database Testing ...

  5. SQL注入测试神器sqlmap

    点击上方蓝字"开源优测"一起玩耍 声明 本公众号所有内容,均属微信公众号: 开源优测  所有,任何媒体.网站或个人未经授权不得转载.链接.转贴或以其他方式复制发布/发表.已经本公众 ...

  6. 如何防范SQL注入 SQL注入测试

    从测试来进行测试SQL注入. 首先,看看SQL注入攻击能分为以下三种类型: Inband: 数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页 ...

  7. rabbitmq java 测试_RabbitMQ 简单测试

    RabbitMQ 测试 RabbitMQ 基于Erlang 实现, 客户端可以用Python | Java | Ruby | PHP | C# | Javascript | Go等语言来实现.这里做个 ...

  8. MySQL中MyISAM引擎与InnoDB引擎性能简单测试[转]

    MySQL中MyISAM引擎与InnoDB引擎性能简单测试 [硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows ...

  9. 【文件包含漏洞-02】文件包含漏洞原理、简单测试实例以及空字符绕过实例

    目录 1 文件包含漏洞 1.1 文件包含漏洞概述 1.2 文件包含漏洞的形成原因/条件 1.3 危害 2 文件包含漏洞简单测试实例 2.1 测试环境 2.2 实例一:本地文件包含 2.3 实例二:远程 ...

最新文章

  1. 【MySQL】设置MySQL密码
  2. Vue前后台数据交互实例演示,使用axios传递json字符串、数组
  3. 有关dwr推送的笔记
  4. 在Go群里摸鱼两月认识了几位号主大佬
  5. Spring Boot 学习之表单验证
  6. python构建huffman树_python:哈夫曼树,PythonHuffuman
  7. 【元胞自动机】基于matlab激进策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1297期】
  8. 记字符编码与转义符的纠缠
  9. 无线充QI协议之TX与RX通讯方式篇
  10. 利用python调用PSS/E进行电力系统仿真
  11. RestClient的简单介绍
  12. (快速下载)百度 apollo 开源代码
  13. Spring——Spring两大特性:IOC+AOP
  14. NBMA(mgre)实验HCIP
  15. 使用远程工具远程连接linux(xshell,xftp,xmanager,xrdp)
  16. 控件:TextView
  17. 大学生计算机面试,大学生计算机毕业面试自我介绍
  18. 安卓判断APP是在前台还是在后台
  19. 京东物流轨迹java_京东区块链 JD chain java demo实现
  20. HJ卫星数据的下载与打开

热门文章

  1. 《编程能力基础》刷题笔记(41 题)
  2. 【数据库系统设计】DBMS的数据库保护
  3. RSA加密算法【手把手解释】
  4. 读书笔记_打开量化投资的黑箱01
  5. java继承类长方形面积_java_java用接口、多态、继承、类计算三角形和矩形周长及面积的方法,本文实例讲述了java用接口、多 - phpStudy...
  6. sr锁存器 数电_数字电路第5章(1SR锁存器)_2.ppt
  7. ctf题目:看不见的flag_记一次江西省信息安全线下CTF比赛
  8. 2019有的图纸打印出来看不清楚_CAD图纸打印出来后很多CAD文字消失了怎么办?...
  9. Ingenious Lottery Tickets 模拟
  10. PostgreSQL从未授权到高权限命令执行