当前位置: 首页 > news >正文

广州做网站哪家公司好湖南今日新闻最新头条

广州做网站哪家公司好,湖南今日新闻最新头条,领卷网站如何做代理,茶叶销售网站源代码JStorm是由Alibaba开源的实时计算系统,它使用Java重写了Apache Storm(使用ClojureJava混编),而且在原来的基础上做了很多改进的地方。使用Java重写,对于使用Java的开发人员来说,可以通过阅读源码来了解JSto…

JStorm是由Alibaba开源的实时计算系统,它使用Java重写了Apache Storm(使用Clojure+Java混编),而且在原来的基础上做了很多改进的地方。使用Java重写,对于使用Java的开发人员来说,可以通过阅读源码来了解JStorm内部的原理和实现,而且可以根据运行错误日志来排查错误。
下面通过安装配置,以及简单使用的验证,来说明JStorm宏观上与Apache Storm的不同之处。

安装配置JStorm Server

首先,要保证JDK成功安装配置,然后在一个节点上下载、安装、配置JStorm。例如,我在hadoop1节点上,下载并解压缩:

1wget http://42.121.19.155/jstorm/jstorm-0.9.6.2.zip
2unzip jstorm-0.9.6.2.zip
3 cd jstorm-0.9.6.2

修改配置文件conf/storm.yaml,内容修改如下:

01########### These MUST be filled in for a storm configuration
02  storm.zookeeper.servers:
03      - "10.10.4.128"
04      - "10.10.4.129"
05      - "10.10.4.130"
06 
07  storm.zookeeper.root: "/jstorm"
08 
09# %JSTORM_HOME% is the jstorm home directory
10  storm.local.dir: "/tmp/jstorm/data"
11 
12  java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"
13 
14  supervisor.slots.ports:
15     - 6800
16     - 6801
17     - 6802
18     - 6803

要保证ZooKeeper集群已经成功启动,并在ZooKeeper中创建/jstorm,执行如下命令:

1 ssh zookeeper@10.10.4.128
2 /usr/local/zookeeper/bin/zkCli.sh

然后创建/jstorm,执行如下命令:

1 create /jstorm ""

配置环境变量JSTORM_HOME,修改~/.bashrc文件,增加如下内容:

1 export JSTORM_HOME=/home/kaolatj/jstorm-0.9.6.2
2 export  PATH=$PATH:$JSTORM_HOME/bin

使环境变量生效:

1 source ~/.bashrc

配置完上面内容后,需要创建~/.jstorm目录,并将配置好的storm.yaml文件拷贝到该目录下:

1 mkdir ~/.jstorm
2 cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm

最好在每个节点都执行上述配置,尤其是在提交Topology的时候,如果没有这个就会报错的。
最后,要将JStorm安装文件拷贝到集群其他从节点上,我这里有2个从节点hadoop2和hadoop3,执行如下命令:

1 scp -r /home/kaolatj/jstorm-0.9.6.2 kaolatj@hadoop2:~/
2 scp -r /home/kaolatj/jstorm-0.9.6.2 kaolatj@hadoop3:~/

同样,在从节点上配置好环境变量JSTORM_HOME。

安装JStorm UI

安装JStorm UI,可以安装在任何一个节点上,只要保证JStorm UI的安装包(WAR文件)的配置文件和JStorm集群相同即可。JStorm UI运行在Web容器之中,可以使用Tomcat。我这里,直接在Nimbus节点上安装Jstorm UI。
首先,安装Tomcat Web容器:

1wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.zip
2unzip apache-tomcat-7.0.57.zip
3 cd apache-tomcat-7.0.57
4 chmod +x bin/*.sh

然后,将jstorm-ui-0.9.6.2.war软件包拷贝到Tomcat的webapps目录下,jstorm-ui-0.9.6.2.war直接在解压缩的jstorm-0.9.6.2.zip包中,拷贝即可:

1 cp ~/jstorm-0.9.6.2/jstorm-ui-0.9.6.2.war webapps/
2 mv ROOT ROOT.old
3 ln -s jstorm-ui-0.9.6.2 ROOT

在启动Tomcat之前,要保证配置文件$JSTORM_HOME/conf/storm.yaml拷贝到目录~/.jstorm下面。
最后,启动Tomcat,并查看日志:

1bin/catalina.sh start
2 
3 tail -100f logs/catalina.out

JStorm UI安装完成后,可以通过访问http://10.10.4.125:8080即可看到Web UI界面。
另外,可以直接通过源码进行构建,将对应的配置配好的文件$JSTORM_HOME/conf/storm.yaml直接打包到WAR文件里面,然后就可以直接发布到Web容器中(如Tomcat),这样可以不用将$JSTORM_HOME/conf/storm.yaml拷贝到目录~/.jstorm下面。

验证JStorm

我这里写了一个相对比较复杂的JStorm程序,原来是基于apache-storm-0.9.2-incubating构建的应用,现在迁移到JStorm计算平台,保留了Apache Storm中一些工具包,像storm-kafka,同时还用到Kafka,在Storm UI上DAG图如下所示:
msg-process-topology
参考Maven依赖配置如下:

01 <properties>
02      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
03      <jstorm.version>0.9.6.2-snapshot</jstorm.version>
04 </properties>
05 
06 <dependencies>
07      <dependency>
08           <groupId>com.alibaba.jstorm</groupId>
09           <artifactId>jstorm-server</artifactId>
10           <version>${jstorm.version}</version>
11           <scope>provided</scope>
12      </dependency>
13      <dependency>
14           <groupId>com.alibaba.jstorm</groupId>
15           <artifactId>jstorm-client</artifactId>
16           <version>${jstorm.version}</version>
17           <scope>provided</scope>
18      </dependency>
19      <dependency>
20           <groupId>com.alibaba.jstorm</groupId>
21           <artifactId>jstorm-client-extension</artifactId>
22           <version>${jstorm.version}</version>
23           <scope>provided</scope>
24      </dependency>
25      
26      <dependency>
27           <groupId>org.apache.storm</groupId>
28           <artifactId>storm-kafka</artifactId>
29           <version>0.9.3-rc1</version>
30           <exclusions>
31                <exclusion>
32                     <groupId>log4j</groupId>
33                     <artifactId>log4j</artifactId>
34                </exclusion>
35           </exclusions>
36      </dependency>
37      <dependency>
38           <groupId>org.apache.kafka</groupId>
39           <artifactId>kafka_2.9.2</artifactId>
40           <version>0.8.1.1</version>
41           <exclusions>
42                <exclusion>
43                     <groupId>org.apache.zookeeper</groupId>
44                     <artifactId>zookeeper</artifactId>
45                </exclusion>
46                <exclusion>
47                     <groupId>log4j</groupId>
48                     <artifactId>log4j</artifactId>
49                </exclusion>
50           </exclusions>
51      </dependency>
52 
53      <dependency>
54           <groupId>org.apache.hadoop</groupId>
55           <artifactId>hadoop-client</artifactId>
56           <version>2.2.0</version>
57           <exclusions>
58                <exclusion>
59                     <groupId>org.slf4j</groupId>
60                     <artifactId>slf4j-log4j12</artifactId>
61                </exclusion>
62           </exclusions>
63      </dependency>
64      <dependency>
65           <groupId>org.apache.hadoop</groupId>
66           <artifactId>hadoop-hdfs</artifactId>
67           <version>2.2.0</version>
68           <exclusions>
69                <exclusion>
70                     <groupId>org.slf4j</groupId>
71                     <artifactId>slf4j-log4j12</artifactId>
72                </exclusion>
73           </exclusions>
74      </dependency>
75      <dependency>
76           <groupId>com.github.ptgoetz</groupId>
77           <artifactId>storm-hdfs</artifactId>
78           <version>0.1.3-SNAPSHOT</version>
79      </dependency>
80      <dependency>
81           <groupId>commons-configuration</groupId>
82           <artifactId>commons-configuration</artifactId>
83           <version>1.10</version>
84      </dependency>
85      <dependency>
86           <groupId>org.slf4j</groupId>
87           <artifactId>slf4j-api</artifactId>
88           <version>1.7.5</version>
89           <scope>provided</scope>
90      </dependency>
91      
92 </dependencies>

提交Topology程序包到JStorm集群,执行如下命令:

1bin/jstorm jar ~/jstorm-msg-process-0.0.1-SNAPSHOT.jar org.shirdrn.storm.msg.MsgProcessTopology MsgProcessTopology

然后,我们可以通过命令行来查看Topology列表:

1bin/jstorm list

结果示例如下所示:

1ClusterSummary(supervisors:[SupervisorSummary(host:hadoop2, supervisor_id:43bb2701-4a3c-4941-8605-68000c66eea5, uptime_secs:89864, num_workers:4, num_used_workers:2), SupervisorSummary(host:hadoop3, supervisor_id:0e72bc94-52d2-4695-8c29-8fbf57d89c9c, uptime_secs:96051, num_workers:4, num_used_workers:3)], nimbus_uptime_secs:226520, topologies:[TopologySummary(id:WordCountTopology-1-1420369616, name:WordCountTopology, status:ACTIVE, uptime_secs:237166, num_tasks:5, num_workers:3, error_info:Y), TopologySummary(id:MsgProcessTopology-3-1420447738, name:MsgProcessTopology, status:ACTIVE, uptime_secs:159044, num_tasks:23, num_workers:2, error_info:)], version:0.9.6.2)

接着再看一下JStorm UI首页的效果图,如图所示:
jstorm-index
运行在JStorm集群上的MsgProcessTopology,点击上图中的Topology Name中的链接,就可以看到Topology的效果图,如下所示:
jstorm-msg-process-topology
在Jstorm UI首页上,点击Supervisor节点链接,可以查看各个节点上运行的Topology及其Task的消息情况,示例如图所示:
jstorm-supervisor
点击Task List中的链接,还可以查看某个Task的明细信息,不再累述。

问题总结

  • 如果原来基于Apache Storm开发的程序,理论上可以无需改动便可以运行在JStorm集群上,只不过在编译打包的时候,指定JStorm依赖:
01 <dependency>
02      <groupId>com.alibaba.jstorm</groupId>
03      <artifactId>jstorm-server</artifactId>
04      <version>${jstorm.version}</version>
05      <scope>provided</scope>
06 </dependency>
07 <dependency>
08      <groupId>com.alibaba.jstorm</groupId>
09      <artifactId>jstorm-client</artifactId>
10      <version>${jstorm.version}</version>
11      <scope>provided</scope>
12 </dependency>
13 <dependency>
14      <groupId>com.alibaba.jstorm</groupId>
15      <artifactId>jstorm-client-extension</artifactId>
16      <version>${jstorm.version}</version>
17      <scope>provided</scope>
18 </dependency>
  • 启动Nimbus和Supervisor进程的时候,一定要在后台启动,否则可能会出现进程无缘无故挂掉的问题,可以执行命令:
1 nohup jstorm nimbus >/dev/null 2>&1 &
2 nohup jstorm supervisor >/dev/null 2>&1 &
  • 如果忘记配置cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm,在提交Topology到JStorm集群时,会出现如下错误:
1[INFO  2015-01-04 17:34:50 CuratorFrameworkImpl:238 main] Starting
2[WARN  2015-01-04 17:34:50 ClientCnxn:1102 main-SendThread(localhost:2181)] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
3java.net.ConnectException: Connection refused
4      at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
5      at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:708)
6      at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
7      at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
8[WARN  2015-01-04 17:34:51 ClientCnxn:1102 main-SendThread(localhost:2181)] Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
9java.net.ConnectException: Connection refused

目前,在哪个节点上提交Topology,必须配置将 $JSTORM_HOME/conf/storm.yaml拷贝到~/.jstorm目录下,否则就会报错。
这个配置,我觉得以后JStorm可以做个优化,只要宿主机安装了JStorm程序,实际上就应该根据环境变量$JSTORM_HOME自动找到对应的配置文件$JSTORM_HOME/conf/storm.yaml。

  • 在使用JStorm Maven依赖的时候,你可以无法在网上找到Public Repository,这时,你需要下载指定版本的JStorm源码,然后在你的开发主机上安装到本地Maven Repository,执行如下命令:
1 cd ~/jstorm-0.9.6.2
2 mvn install -DskipTests
  • 查看JStorm运行日志,每个Topology的程序运行日志会写入自己的日志文件,便于查看和排错,如图所示:

jstorm-logs

参考链接

  • https://github.com/alibaba/jstorm
  • https://github.com/alibaba/jstorm/wiki/JStorm-Chinese-Documentation
  • https://github.com/alibaba/jstorm/wiki/如何安装
  • http://v.youku.com/v_show/id_XODYwMjY0ODY4.html
  • https://issues.apache.org/jira/browse/STORM-582
  • http://mail-archives.apache.org/mod_mbox/storm-dev/201412.mbox/browser

 

http://shiyanjun.cn/archives/1019.html

http://www.zhongyajixie.com/news/54866.html

相关文章:

  • 网站建设开发程序代码推广引流工具
  • 体育直播网站开发数据源获取长沙官网seo收费标准
  • scatter网站开发网络推广公司有多少家
  • 淘宝刷单网站制作必应搜索引擎首页
  • 安庆网站建设推广保定百度seo排名
  • 北京网站优化效果怎样淘宝关键词排名查询工具免费
  • WordPress网站打不开nginxseo搜索引擎优化策略
  • 网站空间商推荐网站开发公司排行榜
  • wordpress 网站名称宁波seo外包费用
  • 自己做网站打开很卡怎么把网站排名排上去
  • 手机网站建设的第一个问题b站推广网站2024年不用下载
  • 西宁做网站网络优化主要做什么
  • 博彩网站开发seo关键词排名优
  • 界面设计好看的网站谷歌推广一年多少钱
  • 门户网站建设实施方案商丘搜索引擎优化
  • 网站建设 人员 年终总结哪里有软件培训班
  • 网站推广策划书 精品如何做网站推广及优化
  • 怎么做网站推广平台网站流量统计平台
  • 网站建设与网页制作基础入门教程营销广告网站
  • 如何做免费域名网站昆山网站建设公司
  • 莞城网站仿做seo网站优化培训要多少钱
  • 网站代码编辑器志鸿优化网
  • 门户网站开发投标文件.doc微信搜一搜怎么做推广
  • 优化推广排名网站教程重庆整站seo
  • 张家界旅游网站官网b2b网站推广排名
  • 巢湖做网站seo网站优化平台
  • 邵阳整站优化网易游戏推广代理加盟
  • 大淘客联盟做网站石家庄网站建设方案优化
  • 手机版做我女朋友网站常州网站建设书生商友
  • 网站建设维护学什么九幺seo优化神器