Storm sql 简单测试
准备工作:
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 简单测试相关推荐
- Storm性能简单测试
看了很多关于Storm性能的文章,说法不一,自己根据实际业务测一下是否能满足自身要求(只做了简单集群和代码调优) 场景:kafka消费数据标准化后存储到Hbase中 服务器资源: 两台32G内存做Su ...
- oracle 测试sql执行时间_通过错误的SQL来测试推理SQL的解析过程
这是学习笔记的第 1977 篇文章 如果抛出一个问题,你是如何理解MySQL解析器的,它和Oracle解析器有什么差别?相信大多数同学都会比较迷茫,因为这个问题很难验证,要不是看源码,要不就是查看书上 ...
- sql简单带索引的语句_SQL Server 2017:栏目索引和简单计划
sql简单带索引的语句 Some time ago, SQL Server 2017 was released and issued as CTP. The most exciting release ...
- SQL 压力测试实战
针对数据库的测试,市面上已经有很多工具了,Google 上搜一下 sql testing tool , 他为你选出的工具,琳琅满目,看花双眼. 比如:40+ Best Database Testing ...
- SQL注入测试神器sqlmap
点击上方蓝字"开源优测"一起玩耍 声明 本公众号所有内容,均属微信公众号: 开源优测 所有,任何媒体.网站或个人未经授权不得转载.链接.转贴或以其他方式复制发布/发表.已经本公众 ...
- 如何防范SQL注入 SQL注入测试
从测试来进行测试SQL注入. 首先,看看SQL注入攻击能分为以下三种类型: Inband: 数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页 ...
- rabbitmq java 测试_RabbitMQ 简单测试
RabbitMQ 测试 RabbitMQ 基于Erlang 实现, 客户端可以用Python | Java | Ruby | PHP | C# | Javascript | Go等语言来实现.这里做个 ...
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试[转]
MySQL中MyISAM引擎与InnoDB引擎性能简单测试 [硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows ...
- 【文件包含漏洞-02】文件包含漏洞原理、简单测试实例以及空字符绕过实例
目录 1 文件包含漏洞 1.1 文件包含漏洞概述 1.2 文件包含漏洞的形成原因/条件 1.3 危害 2 文件包含漏洞简单测试实例 2.1 测试环境 2.2 实例一:本地文件包含 2.3 实例二:远程 ...
最新文章
- 【MySQL】设置MySQL密码
- Vue前后台数据交互实例演示,使用axios传递json字符串、数组
- 有关dwr推送的笔记
- 在Go群里摸鱼两月认识了几位号主大佬
- Spring Boot 学习之表单验证
- python构建huffman树_python:哈夫曼树,PythonHuffuman
- 【元胞自动机】基于matlab激进策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1297期】
- 记字符编码与转义符的纠缠
- 无线充QI协议之TX与RX通讯方式篇
- 利用python调用PSS/E进行电力系统仿真
- RestClient的简单介绍
- (快速下载)百度 apollo 开源代码
- Spring——Spring两大特性:IOC+AOP
- NBMA(mgre)实验HCIP
- 使用远程工具远程连接linux(xshell,xftp,xmanager,xrdp)
- 控件:TextView
- 大学生计算机面试,大学生计算机毕业面试自我介绍
- 安卓判断APP是在前台还是在后台
- 京东物流轨迹java_京东区块链 JD chain java demo实现
- HJ卫星数据的下载与打开
热门文章
- 《编程能力基础》刷题笔记(41 题)
- 【数据库系统设计】DBMS的数据库保护
- RSA加密算法【手把手解释】
- 读书笔记_打开量化投资的黑箱01
- java继承类长方形面积_java_java用接口、多态、继承、类计算三角形和矩形周长及面积的方法,本文实例讲述了java用接口、多 - phpStudy...
- sr锁存器 数电_数字电路第5章(1SR锁存器)_2.ppt
- ctf题目:看不见的flag_记一次江西省信息安全线下CTF比赛
- 2019有的图纸打印出来看不清楚_CAD图纸打印出来后很多CAD文字消失了怎么办?...
- Ingenious Lottery Tickets 模拟
- PostgreSQL从未授权到高权限命令执行