首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

使用.NET Core搭建分布式音频效果处理服务(一)需求、问题和解决方案的几个坑

最近公司需要在服务器上实现两个音频的合成及效果处理。 哇,乍一听功能很简单吧,就是将两个音频叠加,随便一个媒体处理软件几秒钟即可完成,但这仅仅只是针对单用户而言而已。其次,本来这种服务原本就不应该在服务器上面实现,为何? 流媒体处理是相当耗费服务器资源的,包括IO,CPU,bandwidth等等。 服务器资源并不是毫无限制的,比如物理数量就会涉及到整体成本。 如果是一台机器维护到也简单,但实际运行场景远不止这么简单。 处理这类流媒体,时间上绝不是用毫秒级的方式来响应,这样就会衍生出更多的问题,比如一些莫名其妙的运行时错误。 如果在C/S模式下,完全可以采用client原生的在客户机上面进行流数据媒体处理,再将处理后的文件上传到指定的云存储位置(比如阿里云的OSS),这样对于服务器来说0压力,只是做个中间数据传递即可。一切就那么简单,不存在大并发问题,不存在扩展性问题,可两个关键问题又来了: 如果所有交互设备都使用统一的流媒体处理库进行处理(比如ffmpeg),那么,最终得到的效果文件将必定是一样的,可目前关键是目前IOS小组和ANDROID小组参数一样,得到的效果却完全不一样,IOS上有很明显的电流声和杂音(如果有高手指点一下,鄙人非常感谢,嘿嘿)。 在原生的软件(APP)上调用ffmpeg是可行的,在网页上怎么办?毕竟目前网页也可以实现录音的功能,比如微信API、Recorder.js,用户需要将自己的录制的声音进行一些效果处理的时候,那么网页将是无能为力的。 如上的最终效果不一致、平台功能没有100%覆盖问题,将又是这个产品实际的最大隐患,一致性和通用性并不只是针对技术要求,用户在产品的反馈上同样也需要一致性和通用性。因此,这样就需要服务器来统一处理这类功能需求和问题,如下几点优势(仅针对这个项目而言): 一致性。不论在哪种设备和操作系统(现在谁没有几台的智能设备啊),通过服务器统一反馈回来的音频文件试听效果均是一样的。 通用性。只需要统一的一个接口调用,不论PC,APP,H5网页,甚至包括嵌入式设备,只要能通信,那用户就能实现自己想要的音频合成效果。 不发烧。还有一个就是用户的可移动设备不用在因为处理某个音频而发烧烫手了,喝喝(对于部分低配的ANDROID手机)。 纯粹的点对点C/S模式,这里就不画图了,下一节我们开始慢慢的画饼o(∩_∩)o 哈哈。 感谢阅读

优秀的个人博客,低调大师

手把手教你搭建基于CNN模型的Flask Web应用

对于机器学习和人工智能研究人员而言,好多人都只是构建好模型后就没有进一步处理了,停留在一个比较粗糙的模型上面,没有将其变成一个产品,其实好多创业型人工智能公司都是设计好模型后,将其转化成产品,之后再推向市场。每一个深度学习研究者心中或多或少都想成为一名创业者,但不知道超哪个方向发展。那么,本文将从最简单的网页应用开始,一步一步带领你使用TensorFlow创建一个卷积神经网络(CNN)模型后,使用Flash RESTful API将模型变成一个网页应用产品。 本文使用TensorFlow NN模块构建CNN模型,并在CIFAR-10数据集上进行训练和测试。为了使模型可以远程访问,使用Python创建Flask web应用来接收上传的图像,并使用HTTP返回其分类标签。 1.安装Python、TensorFl

优秀的个人博客,低调大师

一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)

Storm的官方网址:http://storm.apache.org/index.html 1:集群部署的基本流程(基本套路): 集群部署的流程:下载安装包、解压安装包、修改配置文件、分发安装包、启动集群; 1:安装一个zookeeper集群,之前已经部署过,这里省略,贴一下步骤; 安装配置zooekeeper集群: 1.1:解压 tar -zxvf zookeeper-3.4.5.tar.gz 1.2:修改配置 cd /home/hadoop/zookeeper-3.4.5/conf/ cp zoo_sample.cfg zoo.cfg vim zoo.cfg 修改:dataDir=/home/hadoop/zookeeper-3.4.5/tmp 在最后添加: server.1=master:2888:3888 server.2=slaver1:2888:3888 server.3=slaver2:2888:3888 保存退出 然后创建一个tmp文件夹 mkdir /home/hadoop/zookeeper-3.4.5/tmp 再创建一个空文件 touch /home/hadoop/zookeeper-3.4.5/tmp/myid 最后向该文件写入ID echo 1 > /home/hadoop/zookeeper-3.4.5/tmp/myid 1.3将配置好的zookeeper拷贝到其他节点: scp -r /home/hadoop/zookeeper-3.4.5/ slaver1:/home/hadoop/ scp -r /home/hadoop/zookeeper-3.4.5/ slaver2:/home/hadoop/ 注意:修改slaver1、slaver2对应/home/hadoop/zookeeper-3.4.5/tmp/myid内容 slaver1: echo 2 > /home/hadoop/zookeeper-3.4.5/tmp/myid slaver2: echo 3 > /home/hadoop/zookeeper-3.4.5/tmp/myid 2、上传storm的安装包,解压缩: [root@master hadoop]# tar -zxvf apache-storm-0.9.2-incubating.tar.gz 3、修改配置文件storm.yaml: 可以创建一个软连接,方便操作storm:[root@master soft]# ln -s apache-storm-0.9.2-incubating storm 修改内容如下所示,下面两个配置均可: #指定storm使用的zk集群 storm.zookeeper.servers: - "zk01" - "zk02" - "zk03" #指定storm集群中的nimbus节点所在的服务器 nimbus.host: "storm01" #指定nimbus启动JVM最大可用内存大小 nimbus.childopts: "-Xmx1024m" #指定supervisor启动JVM最大可用内存大小 supervisor.childopts: "-Xmx1024m" #指定supervisor节点上,每个worker启动JVM最大可用内存大小 worker.childopts: "-Xmx768m" #指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。 ui.childopts: "-Xmx768m" #指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 此次配置使用下面的,进行集群安装: #所使用的zookeeper集群主机 storm.zookeeper.servers: - "master" - "slaver1" - "slaver2" #nimbus所在的主机名 nimbus.host: "master"supervisor.slots.ports-6701-6702-6703-6704-6705 然后将master修改好的storm发送到slaver1,slaver2: [root@master hadoop]# scp -r apache-storm-0.9.2-incubating/ slaver1:/home/hadoop/ [root@master hadoop]# scp -r apache-storm-0.9.2-incubating/ slaver2:/home/hadoop/ 4:启动storm集群,首先启动你的Zookeeper集群,然后再启动你的storm集群哈。 启动Zookeeper集群: 然后启动Storm集群: 启动storm 在nimbus主机上,在nimbus.host所属的机器上启动 nimbus服务: nohup ./storm nimbus 1>/dev/null 2>&1 & 或者使用命令:nohup ./storm nimbus &在nimbus.host所属的机器上启动ui服务: nohup ./storm ui 1>/dev/null 2>&1 & 或者使用命令:nohup ./storm ui & 在supervisor主机上,在其它个点击上启动supervisor服务: nohup ./storm supervisor 1>/dev/null 2>&1 & 或者使用命令:nohup ./storm supervisor & 注意,解释: 1>/dev/null:代表标准输入到这个目录; 2>&1:代表标准输出也到这个目录下面; &:代表这个是后台运行; 如下启动storm方便观察,最后一行是卡住不动的哦: 查看进程如下所示: 可以启动一下storm的ui查看: 查看一下进程如: 启动ui以后可以在浏览器访问,如: 启动supervisor [root@slaver1 bin]# ./storm supervisor 然后可以启动剩下的storm: [root@slaver2 bin]# ./storm supervisor 启动以后可以查看进程jps的启动情况,然后可以去浏览器查看自己http://192.168.3.129:8080/index.html的页面各个启动情况,如supervisor等等。 5:Storm常用操作命令: 1:有许多简单且有用的命令可以用来管理拓扑,它们可以提交、杀死、禁用、再平衡拓扑。 提交任务命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】 2:bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.6.jar storm.starter.WordCountTopology wordcount 杀死任务命令格式:storm kill 【拓扑名称】 -w 10(执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间) 3:storm kill topology-name -w 10 停用任务命令格式:storm deactivte 【拓扑名称】 4:storm deactivte topology-name 5:我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是spouts的nextTuple方法不会被调用。销毁一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,在等待拓扑消息的时间段内允许拓扑完成当前的数据流。 启用任务命令格式:storm activate【拓扑名称】 storm activate topology-name 重新部署任务命令格式:storm rebalance 【拓扑名称】 storm rebalance topology-name 再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。 注意使用storm运行jar包的时候是没有输入输出路径的,区别于hadoop离线分析: 1 [root@master storm]# bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology wordcount 2 Running: /home/hadoop/soft/jdk1.7.0_65/bin/java -client -Dstorm.options= -Dstorm.home=/home/hadoop/soft/apache-storm-0.9.2-incubating -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /home/hadoop/soft/apache-storm-0.9.2-incubating/lib/commons-codec-1.6.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/hiccup-0.3.6.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/curator-client-2.4.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/clout-1.0.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/json-simple-1.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/reflectasm-1.07-shaded.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/httpclient-4.3.3.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/jgrapht-core-0.9.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/jline-2.11.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/ring-servlet-0.3.11.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/asm-4.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/clojure-1.5.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/joda-time-2.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/minlog-1.2.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/logback-classic-1.0.6.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/kryo-2.21.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/netty-3.6.3.Final.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/log4j-over-slf4j-1.6.6.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/commons-lang-2.5.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/tools.logging-0.2.3.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/commons-logging-1.1.3.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/compojure-1.1.3.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/logback-core-1.0.6.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/math.numeric-tower-0.0.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/ring-devel-0.3.11.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/servlet-api-2.5.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/commons-fileupload-1.2.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/guava-13.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/snakeyaml-1.11.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/jetty-6.1.26.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/disruptor-2.10.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/clj-time-0.4.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/jetty-util-6.1.26.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/httpcore-4.3.2.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/core.incubator-0.1.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/carbonite-1.4.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/commons-io-2.4.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/clj-stacktrace-0.2.4.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/slf4j-api-1.6.5.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/curator-framework-2.4.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/netty-3.2.2.Final.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/ring-core-1.1.5.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/chill-java-0.3.5.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/commons-exec-1.1.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/tools.macro-0.1.0.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/storm-core-0.9.2-incubating.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/ring-jetty-adapter-0.3.11.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/zookeeper-3.4.5.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/servlet-api-2.5-20081211.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/objenesis-1.2.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/lib/tools.cli-0.2.4.jar:examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar:/home/hadoop/soft/apache-storm-0.9.2-incubating/conf:/home/hadoop/soft/apache-storm-0.9.2-incubating/bin -Dstorm.jar=examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology wordcount 3 712 [main] INFO backtype.storm.StormSubmitter - Jar not uploaded to master yet. Submitting jar... 4 772 [main] INFO backtype.storm.StormSubmitter - Uploading topology jar examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar to assigned location: storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar 5 Start uploading file 'examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar' to 'storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar' (2927299 bytes) 6 [==================================================] 2927299 / 2927299 7 File 'examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar' uploaded to 'storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar' (2927299 bytes) 8 941 [main] INFO backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar 9 941 [main] INFO backtype.storm.StormSubmitter - Submitting topology wordcount in distributed mode with conf {"topology.workers":3,"topology.debug":true} 10 1431 [main] INFO backtype.storm.StormSubmitter - Finished submitting topology: wordcount 11 [root@master storm]# 使用storm自带的统计的demo启动起来以后ui如下所示: 然后点击wordCount以后如下所示,点击下面的按钮是相应的操作: 点击上面的按钮是相应的操作; 出现如下错误,这里贴一下,出错原因是:/storm/conf/storm.yaml的配置nimbus.host: "master"前面多了一个空格,删除空格即可: 1 [root@slaver1 bin]# ./storm supervisor 2 Exception in thread "main" java.lang.ExceptionInInitializerError 3 at java.lang.Class.forName0(Native Method) 4 at java.lang.Class.forName(Class.java:190) 5 at backtype.storm.config$loading__4910__auto__.invoke(config.clj:17) 6 at backtype.storm.config__init.load(Unknown Source) 7 at backtype.storm.config__init.<clinit>(Unknown Source) 8 at java.lang.Class.forName0(Native Method) 9 at java.lang.Class.forName(Class.java:270) 10 at clojure.lang.RT.loadClassForName(RT.java:2098) 11 at clojure.lang.RT.load(RT.java:430) 12 at clojure.lang.RT.load(RT.java:411) 13 at clojure.core$load$fn__5018.invoke(core.clj:5530) 14 at clojure.core$load.doInvoke(core.clj:5529) 15 at clojure.lang.RestFn.invoke(RestFn.java:408) 16 at clojure.core$load_one.invoke(core.clj:5336) 17 at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) 18 at clojure.core$load_lib.doInvoke(core.clj:5374) 19 at clojure.lang.RestFn.applyTo(RestFn.java:142) 20 at clojure.core$apply.invoke(core.clj:619) 21 at clojure.core$load_libs.doInvoke(core.clj:5417) 22 at clojure.lang.RestFn.applyTo(RestFn.java:137) 23 at clojure.core$apply.invoke(core.clj:621) 24 at clojure.core$use.doInvoke(core.clj:5507) 25 at clojure.lang.RestFn.invoke(RestFn.java:408) 26 at backtype.storm.command.config_value$loading__4910__auto__.invoke(config_value.clj:16) 27 at backtype.storm.command.config_value__init.load(Unknown Source) 28 at backtype.storm.command.config_value__init.<clinit>(Unknown Source) 29 at java.lang.Class.forName0(Native Method) 30 at java.lang.Class.forName(Class.java:270) 31 at clojure.lang.RT.loadClassForName(RT.java:2098) 32 at clojure.lang.RT.load(RT.java:430) 33 at clojure.lang.RT.load(RT.java:411) 34 at clojure.core$load$fn__5018.invoke(core.clj:5530) 35 at clojure.core$load.doInvoke(core.clj:5529) 36 at clojure.lang.RestFn.invoke(RestFn.java:408) 37 at clojure.lang.Var.invoke(Var.java:415) 38 at backtype.storm.command.config_value.<clinit>(Unknown Source) 39 Caused by: while parsing a block mapping 40 in 'reader', line 18, column 1: 41 storm.zookeeper.servers: 42 ^ 43 expected <block end>, but found BlockMappingStart 44 in 'reader', line 23, column 2: 45 nimbus.host: "master" 46 ^ 47 48 at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) 49 at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) 50 at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) 51 at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230) 52 at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159) 53 at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) 54 at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) 55 at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) 56 at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) 57 at org.yaml.snakeyaml.Yaml.load(Yaml.java:424) 58 at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:141) 59 at backtype.storm.utils.Utils.readStormConfig(Utils.java:188) 60 at backtype.storm.utils.Utils.<clinit>(Utils.java:71) 61 ... 36 more 62 Exception in thread "main" java.lang.ExceptionInInitializerError 63 at java.lang.Class.forName0(Native Method) 64 at java.lang.Class.forName(Class.java:190) 65 at backtype.storm.config$loading__4910__auto__.invoke(config.clj:17) 66 at backtype.storm.config__init.load(Unknown Source) 67 at backtype.storm.config__init.<clinit>(Unknown Source) 68 at java.lang.Class.forName0(Native Method) 69 at java.lang.Class.forName(Class.java:270) 70 at clojure.lang.RT.loadClassForName(RT.java:2098) 71 at clojure.lang.RT.load(RT.java:430) 72 at clojure.lang.RT.load(RT.java:411) 73 at clojure.core$load$fn__5018.invoke(core.clj:5530) 74 at clojure.core$load.doInvoke(core.clj:5529) 75 at clojure.lang.RestFn.invoke(RestFn.java:408) 76 at clojure.core$load_one.invoke(core.clj:5336) 77 at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) 78 at clojure.core$load_lib.doInvoke(core.clj:5374) 79 at clojure.lang.RestFn.applyTo(RestFn.java:142) 80 at clojure.core$apply.invoke(core.clj:619) 81 at clojure.core$load_libs.doInvoke(core.clj:5417) 82 at clojure.lang.RestFn.applyTo(RestFn.java:137) 83 at clojure.core$apply.invoke(core.clj:621) 84 at clojure.core$use.doInvoke(core.clj:5507) 85 at clojure.lang.RestFn.invoke(RestFn.java:408) 86 at backtype.storm.command.config_value$loading__4910__auto__.invoke(config_value.clj:16) 87 at backtype.storm.command.config_value__init.load(Unknown Source) 88 at backtype.storm.command.config_value__init.<clinit>(Unknown Source) 89 at java.lang.Class.forName0(Native Method) 90 at java.lang.Class.forName(Class.java:270) 91 at clojure.lang.RT.loadClassForName(RT.java:2098) 92 at clojure.lang.RT.load(RT.java:430) 93 at clojure.lang.RT.load(RT.java:411) 94 at clojure.core$load$fn__5018.invoke(core.clj:5530) 95 at clojure.core$load.doInvoke(core.clj:5529) 96 at clojure.lang.RestFn.invoke(RestFn.java:408) 97 at clojure.lang.Var.invoke(Var.java:415) 98 at backtype.storm.command.config_value.<clinit>(Unknown Source) 99 Caused by: while parsing a block mapping 100 in 'reader', line 18, column 1: 101 storm.zookeeper.servers: 102 ^ 103 expected <block end>, but found BlockMappingStart 104 in 'reader', line 23, column 2: 105 nimbus.host: "master" 106 ^ 107 108 at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) 109 at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) 110 at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) 111 at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230) 112 at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159) 113 at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) 114 at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) 115 at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) 116 at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) 117 at org.yaml.snakeyaml.Yaml.load(Yaml.java:424) 118 at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:141) 119 at backtype.storm.utils.Utils.readStormConfig(Utils.java:188) 120 at backtype.storm.utils.Utils.<clinit>(Utils.java:71) 121 ... 36 more 122 Exception in thread "main" java.lang.ExceptionInInitializerError 123 at java.lang.Class.forName0(Native Method) 124 at java.lang.Class.forName(Class.java:190) 125 at backtype.storm.config$loading__4910__auto__.invoke(config.clj:17) 126 at backtype.storm.config__init.load(Unknown Source) 127 at backtype.storm.config__init.<clinit>(Unknown Source) 128 at java.lang.Class.forName0(Native Method) 129 at java.lang.Class.forName(Class.java:270) 130 at clojure.lang.RT.loadClassForName(RT.java:2098) 131 at clojure.lang.RT.load(RT.java:430) 132 at clojure.lang.RT.load(RT.java:411) 133 at clojure.core$load$fn__5018.invoke(core.clj:5530) 134 at clojure.core$load.doInvoke(core.clj:5529) 135 at clojure.lang.RestFn.invoke(RestFn.java:408) 136 at clojure.core$load_one.invoke(core.clj:5336) 137 at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) 138 at clojure.core$load_lib.doInvoke(core.clj:5374) 139 at clojure.lang.RestFn.applyTo(RestFn.java:142) 140 at clojure.core$apply.invoke(core.clj:619) 141 at clojure.core$load_libs.doInvoke(core.clj:5417) 142 at clojure.lang.RestFn.applyTo(RestFn.java:137) 143 at clojure.core$apply.invoke(core.clj:621) 144 at clojure.core$use.doInvoke(core.clj:5507) 145 at clojure.lang.RestFn.invoke(RestFn.java:408) 146 at backtype.storm.command.config_value$loading__4910__auto__.invoke(config_value.clj:16) 147 at backtype.storm.command.config_value__init.load(Unknown Source) 148 at backtype.storm.command.config_value__init.<clinit>(Unknown Source) 149 at java.lang.Class.forName0(Native Method) 150 at java.lang.Class.forName(Class.java:270) 151 at clojure.lang.RT.loadClassForName(RT.java:2098) 152 at clojure.lang.RT.load(RT.java:430) 153 at clojure.lang.RT.load(RT.java:411) 154 at clojure.core$load$fn__5018.invoke(core.clj:5530) 155 at clojure.core$load.doInvoke(core.clj:5529) 156 at clojure.lang.RestFn.invoke(RestFn.java:408) 157 at clojure.lang.Var.invoke(Var.java:415) 158 at backtype.storm.command.config_value.<clinit>(Unknown Source) 159 Caused by: while parsing a block mapping 160 in 'reader', line 18, column 1: 161 storm.zookeeper.servers: 162 ^ 163 expected <block end>, but found BlockMappingStart 164 in 'reader', line 23, column 2: 165 nimbus.host: "master" 166 ^ 167 168 at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) 169 at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) 170 at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) 171 at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230) 172 at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159) 173 at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) 174 at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) 175 at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) 176 at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) 177 at org.yaml.snakeyaml.Yaml.load(Yaml.java:424) 178 at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:141) 179 at backtype.storm.utils.Utils.readStormConfig(Utils.java:188) 180 at backtype.storm.utils.Utils.<clinit>(Utils.java:71) 181 ... 36 more 开始我用的apache-storm-0.9.2-incubating.tar.gz版本,使用如下官方demo,出现的问题是storm的ui的点击wordcount没有 Spouts (All time),Bolts (All time),Topology Visualization,Topology Configuration等等这些内容;解决方法,我是换的新版本解决问题: [root@slaver1 storm]# bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.6.jar storm.starter.WordCountTopology wordcount 待续......

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册