首页 文章 精选 留言 我的

精选列表

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

搭建网站前,先看看云服务器与虚拟主机的四个区别

云服务器与虚拟主机从字面上看十分相似,以致于很多企业不明白它们之间的区别。 云服务器与虚拟主机的区别 1、从技术层面来说,云服务有着丰富的服务器资源做基础,它整合了计算、存储、网络的三个核心要素,每个集群节点被部署在互联网的骨干数据中心;而虚拟主机则是服务器的其中一个部分,用来防止Web程序的组件,能够为网站提供数据传输和存放两个功能。 2、从服务器资源的层面来看,云服务是云计算服务的重要组成部分,具有独立的服务器资源,能够为网站提供多种资源;由于虚拟主机是从服务器上划分的,因此,使用虚拟主机就要和其他网站共享服务器的资源。 3、从服务器管理的层面看,云服务基于云计算的强大资源,能够进行远程的管理和运作,并且企业能够根据需要进行灵活配置;但虚拟主机却不能进行远程管理,技术人员只能到机房上使用控制面板对虚拟主机进行各种运维工作。 4、从使用成本的角度来说,云服务器不需要企业自建机房,在向服务商租用服务器时也无需提交押金,远程控制等优势也大大节省了人力、财力成本;由于由于虚拟主机是多个空间分享一台服务器的带宽、IP等资源,性比价也很高,但容易存在访问延迟、容易遭受攻击等问题。 服务器是为网站提供计算服务的设备,并承担着响应服务请求、处理访问等问题,需要具备承担服务并且保障服务的能力。云服务器和虚拟主机有着很大的区别,我们要根据网站的类型、访问流量的大小等因素,选择适合自己的服务器。

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

直播系统搭建:音视频处理的一般流程与推流端的四个环节

音视频处理的一般流程数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机:CCD、CMOS拾音器:声电转换装置(咪头)、音频放大电路。 2.数据编码:使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据涉及技术或协议:编码方式:CBR、VBR编码格式视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等 3.数据传输:将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输涉及技术或协议:传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等控制信令:SIP和SDP、SNMP等。 4、解码数据:使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音涉及技术或协议:一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等5、播放显示:在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音涉及技术或协议:显示器、扬声器、3D眼镜等。 推流端的四个环节1、 首先是采集环节:采集是指对图像和声音的采集,简单说就是能让网络视频直播系统和主播摄像头连起来,软件能获取到外界的音视频信息。然后是前处理阶段:这里也是俗称美颜的阶段,这要求我们在网络视频直播系统中加入美颜、特效、萌颜等效果,而这个算法需要涉及到GPU编程,这个阶段的难点不在于美颜,因为美颜通常使用SDK来解决的,重点在于GPU占比。 2、 目前市面上的手机硬件配置已经越来越高了,但在一些老旧机型上,功耗仍然是个很大的问题,GPU占用太高会导致手机发烫、摄像头掉帧甚至软件闪退。 3、 接下来就是编码了,编码是为了压缩数据也是为了更好的解码,通常我们会选择用硬编码来平衡编码速度和编码质量之间的效率比,但软编仍然是画面质量更高的选择,也有用户愿意使用软编码的方式,因此在最初设计系统时,我们应当同时设计好软编硬编两种编码方式。 4、 推流端最后一个操作就是推流,把视频推流到服务器,以便于直播视频的分发和拉流。

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

从零开始搭建Java开发环境第一篇:Java工程师必备软件大合集

1、JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 目前主流的JDK版本还是JAVA8,我在阿里用的也是Java8。JDK里已经包含了JRE也就是Java虚拟机和运行环境,无需另外下载安装。 2、MySQL 和 Navicat for MySQL 数据库一般还是用免费的MySQL,这里推荐8.0以上的版本,具体怎么安装可以看这篇文章:https://mp.csdn.net/postedit/100056872 https://dev.mysql.com/downloads/file/?id=488055​​​​安装完数据库之后,如果你不想一直手打命令行,那么还是要安装一下Navicat for MySQL的,这是一个很不错的数据库可视化工具。 https://www.navicat.com.cn/download/navicat-for-mysql 3、IDEA IDEA是现在最流行的Java开发IDE了,不用多说,用就完事了。破解方法网上自寻https://www.jetbrains.com/idea 4、GIT 基本上在公司里一定会接触到Git,这个代码写作程序会让你的代码管理工作变得十分轻松。学会Git 命令行之后,可以开始做自己的项目了。https://git-scm.com/ 5、ssh工具:putty ssh工具主要用于连接虚拟机,如果你把应用部署到服务器上,那么这玩意是用得上的https://www.baidu.com/link?url=lybwwF5_uT3rj-46H6fUwBCKF1vMMlokKSMqm3m5aHS&wd=&eqid=ea24f6d5000b77f3000000065d61353a 当然还有xshell,secureCRT等工具也可以使用。 6、sublime 一款文本编辑器,可以写代码,可以编辑文本,总之很强大,有些在ide里不方便处理的东西就在这里处理吧。http://www.sublimetext.com/3 7、Maven、Tomcat 现在的IDEA里已经帮你安装好了Maven,所以你无需额外配置,直接新建项目,在pom.xml引入你需要的依赖,IDEA会自动帮你把依赖从maven官方仓库里下载下来。 https://maven.apache.org/download.cgi如今SpringBoot也已经继承了TOMCAT服务器,你甚至无需额外下载一个Tomcat。https://tomcat.apache.org/download-80.cgi 有了这些软件之后,你就可以开始开发啦。

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

Java版Spring Cloud B2B2C o2o社交电商-搭建Eureka注册中心

一创建一个SpringBoot工程,命名为eureka-server,并在pom.xml中引入必要的依赖,代码如下。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.7.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <!--<dependency>--> <!--<groupId>org.springframework.boot</groupId>--> <!--<artifactId>spring-boot-starter-actuator</artifactId>--> <!--</dependency>--> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 二 通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用程序进行对话,只需要在SpringBoot应用中添加下面这个注解就能开启此功能。 @EnableEurekaServer @SpringBootApplication public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(args); } } 三在默认情况下,服务注册中也会将自己作为客户端来尝试注册它自己,所以需要禁用它的客户端行为。 application.properties中增加如下配置。 spring.application.name=eureka-server server.port=1111 eureka.instance.hostname=localhost # 关闭保护机制 #eureka.server.enable-self-preservation=false eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/ logging.file=${spring.application.name}.log 说明:eureka.client.register-with-eureka:由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己。 eureka.client.fetch-registry:由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false。

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

Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用

本地安装单机版本Flink 一般来说,线上都是集群模式,那么单机模式方便我们测试和学习。 环境要求 本地机器上需要有 Java 8 和 maven 环境,推荐在linux或者mac上开发Flink应用: 如果有 Java 8 环境,运行下面的命令会输出如下版本信息: 如果有 maven 环境,运行下面的命令会输出如下版本信息: 开发工具推荐使用 ItelliJ IDEA。 第一种方式 来这里https://flink.apache.org/ 看这里: 注意: An Apache Hadoop installation is not required to use Apache Flink. For users that use Flink without any Hadoop components, we recommend the release without bundled Hadoop libraries. 这是啥意思?这个意思就是说Flink可以不依赖Hadoop环境,如果说单机玩的话,下载一个only版本就行了。 第二种方式(不推荐) git clone https://github.com/apache/flink.git cd flink mvn clean package -DskipTests 然后进入编译好的Flink中去执行 bin/start-cluster.sh 其他乱七八糟的安装办法 比如 Mac用户可以用brew install apache-flink ,前提是安装过 brew这个mac下的工具. 启动Flink 我们先到Flink的目录下来:如下: $ flink-1.7.1 pwd /Users/wangzhiwu/Downloads/flink-1.7.1 执行命令: 接着就可以进入 web 页面(http://localhost:8081/) 查看 恭喜你,一个单机版的flink就跑起来了。 构建一个应用 当然了,我们可以用maven,一顿new,new出来一个过程,这里我们将使用 Flink Maven Archetype 来创建我们的项目结构和一些初始的默认依赖。在你的工作目录下,运行如下命令来创建项目: mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=1.7.2 \ -DgroupId=flink-project \ -DartifactId=flink-project \ -Dversion=0.1 \ -Dpackage=myflink \ -DinteractiveMode=false 这样一个工程就构建好了。 还有一个更加牛逼的办法,看这里: curl https://flink.apache.org/q/quickstart.sh | bash 直接在命令行执行上面的命令,结果如下图: 同样可以构建一个Flink工程,而且自带一些demo。 原理是什么?点一下它看看就明白了。https://flink.apache.org/q/quickstart.sh 编写一个入门级的WordCount // // Program // public static void main(String[] args) throws Exception { // set up the execution environment final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); // get input data DataSet<String> text = env.fromElements( "To be, or not to be,--that is the question:--", "Whether 'tis nobler in the mind to suffer", "The slings and arrows of outrageous fortune", "Or to take arms against a sea of troubles," ); DataSet<Tuple2<String, Integer>> counts = // split up the lines in pairs (2-tuples) containing: (word,1) text.flatMap(new LineSplitter()) // group by the tuple field "0" and sum up tuple field "1" .groupBy(0) //(i,1) (am,1) (chinese,1) .sum(1); // execute and print result counts.print(); } // // User Functions // /** * Implements the string tokenizer that splits sentences into words as a user-defined * FlatMapFunction. The function takes a line (String) and splits it into * multiple pairs in the form of "(word,1)" (Tuple2&lt;String, Integer&gt;). */ public static final class LineSplitter implements FlatMapFunction<String, Tuple2<String, Integer>> { @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) { // normalize and split the line String[] tokens = value.toLowerCase().split("\\W+"); // emit the pairs for (String token : tokens) { if (token.length() > 0) { out.collect(new Tuple2<String, Integer>(token, 1)); } } } } } 类似的例子,官方也有提供的,可以在这里下载:WordCount官方推荐 运行 本地右键运行: 提交到本地单机Flink上 进入工程目录,使用以下命令打包 mvn clean package -Dmaven.test.skip=true 然后,进入 flink 安装目录 bin 下执行以下命令提交程序: flink run -c org.myorg.laowang.WordCount /Users/wangzhiwu/WorkSpace/quickstart/target/quickstart-0.1.jar 分别制定main方法和jar包的地址。 在刚才的控制台中,可以看到: 我们刚才提交过的程序。 flink的log目录下有我们提交过的任务的日志:

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

使用.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 待续......

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

Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置

原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许差别请查阅相关文档即可。原文发表于我的技术博客 1. Ionic 环境的安装 1.1 Node.js 与 npm 介绍 Node.js 与 npm 是 Ionic 环境的基础,这里我们做一下简要介绍。Node.js 是基于 Chrome's V8 JavaScript engine 构建的一个JavaScript runtime (一般翻译为 JavaScript 运行时),特点是事件驱动、非阻塞等。npm 是 Node.js 中的 JavaScript 包管理。目前已经是最大的开源组件库,使用起来非常方便,也非常值得学习。 以上两个组件,只需要安装 Node.js 即可。 Mac 系统中,下载 pkg 安装; Windows 系统中,下载对应的 msi 安装,注意 32 位和 64 位版本的区别。 下载地址:https://nodejs.org/en/download/ 安装后,可以通过 node -v 查看当前版本,确认是否安装成功或者查看当前的 Node.js 版本。 Ionic 推荐安装 Node.js 的版本为 v4.0+,即高于 4.0 的版本即可。 1.2 Ionic 的安装 这里使用最新的 v2.0 beta 版本进行学习,而且 2.0 版本对于 1.0 版本的所有功能都进行了兼容,所以项目如果从 1.0 转成 2.0,也是可以平滑过渡的。 安装 Ionic,使用以下命令即可。 $ npm install -g ionic@beta 如果需要安装 Ionic 1.0 版本,使用如下命令即可。 $ npm install -g ionic 2.初始化空项目并体验 安装了 Ionic 后,使用如下命令初始化一个空项目,名称为 ionicdemo。 $ ionic start ionicdemo --v2 ionic start 命令默认采用 tabs template 作为初始化项目的模板,如果需要其他的模板,那么在项目名称后面添加上对应的模板名称即可,如要使用 tutorial template 作为模板,那么命令如下。 $ ionic start ionicdemo tutorial --v2 其他的模板列表参见这里。 注意这里的 --v2 参数,因为 ionic 命令是和 1.0 版本公用的,所以添加 --v2 参数明确了使用2.0 版本去初始化项目。 此过程主要安装了必要的 npm modules,并且安装依赖的 Cordova 组件。 这里还有一个技巧,就是如果想使用 TypeScript,那么只要在命令后面添加 --ts 参数即可。 进入项目目录。 $ cd ionicdemo 运行,在浏览器中查看效果。 $ ionic serve 当需要在浏览器中模拟 iPhone 下的 UI 展示,需要选择对应的模拟设备,刷新即可。 这里的原理是 Chrome 修改了对应的 User-Agent,Ionic 根据此进行了对应的 UI 呈现。 在控制台中可以看到。 使用浏览器进行开发调试是非常方便的方案,不需要频繁连接真机,并且可以方便直观地借助 Chrome 控制台进行样式、JavaScript 等调试。 如果需要在模拟器上运行,那么 iOS 设备执行下面的命令即可。 $ ionic run ios 如果是 Android 设备,那么执行下面的命令。 $ ionic run android 这样就可以在对应的模拟器上运行了,至于详细的 iOS/Android 的环境配置,我们在下面的章节将有详细地讲解。 作者:Parry 出处:http://www.cnblogs.com/parry/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Spring

Spring

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册