Jstorm2.1.1集群安装

Strom是什么? storm是Twitter开源的的一个分布式的,容错的实时流计算系统,用来处理大数据系统中一些实时计算业务。strom本身是一个类似Hadoop的MapReduce的计算框架,最大不同在于storm是一个启动后不会停止的服务,除非主动kill掉,而MapReduce则会主动运行结束,storm本身并不负责存储数据,通常互联网的业务场景下strom会从kafka里面读取数据,然后计算完毕后,把计算结果写入redis,mysql或者hbase等一些存储或缓存系统中。 Strom能干什么? Storm 有许多应用领域,包括实时分析、在线机器学习、信息流处理(例如,可以使用Storm 处理新的数据和快速更新数据库)、连续性的计算(例如,使用Storm 连续查询,然后将结果返回给客户端,如将微博上的热门话题转发给用户)、分布式RPC(远过程调用协议,通过网络从远程计算机程序上请求服务)、ETL(Extraction Transformation Loading,数据抽取、转换和加载)等。 Strom的特点: (1)简化了编程模型,降低了开发的难度 (2)支持多语言编程 (3)高容错性 (4)可水平扩展 (5)有ack机制,保证消息可靠快速至少得到一次完整处理 (6)支持local模式,方便快速开发调试 Strom的架构模型

Jstorm是什么? Strom原生是用Clojure开发的,阿里团队在使用过程中,发现了不少了问题,于是使用Java重写了整个storm,使其更稳定,更快,更强大,并兼容原来storm的接口,所以命名为Jstrom,在阿里文档中提到,原storm写的jar,无须改动任何代码即可高效稳定的运行在jstrom的集群中, 如何安装Jstorm? 操作系统: Centos7 节点三个: 192.168.10.38 zk1 jdk8 nimbus+ui+tomcat 192.168.10.39 zk2 jdk8 supervisor 192.168.10.40 zk3 jdk8 supervisor (1)在3个节点上安装JDK,不再详细叙述 (2)在3个节点上安装zookeeper,不再详细叙述,不清楚者,可参考我之前的文章: http://qindongliang.iteye.com/category/299318 zookeeper安装完之后,需要启动 (3)在github下下载jstorm的压缩包: https://github.com/alibaba/jstorm/releases

(4)解压到指定目录并配置环境变量: unzip jstorm-2.1.1.zip vi .bashrc 加入如下变量:

Java代码

  1. export PATH
  2. export PATH=.:$PATH
  3. #jdk
  4. export JAVA_HOME=/home/search/jdk1.8.0_102/
  5. export CLASSPATH=.:$JAVA_HOME/lib
  6. export PATH=$JAVA_HOME/bin:$PATH
  7. #jstorm
  8. export JSTORM_HOME=/home/search/jstorm-2.1.1
  9. export PATH=$PATH:$JSTORM_HOME/bin

(5)下载tomcat wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-8/v8.5.3/bin/apache-tomcat-8.5.3.tar.gz (6)安装storm-ui

Java代码

  1. //拷贝storm-ui的war包到tomcat的webapps路径下面
  2. cp /home/search/jstorm-2.1.1/storm-ui-2.1.1.war /home/search/apache-tomcat-8.5.4/webapps
  3. //备份旧目录
  4. mv ROOT ROOT.old
  5. //创建软连接,此时linux上会闪烁,不用担心,启动tomcat后,即可正常
  6. ln -s jstorm-ui-2.1.1 ROOT
  7. //最后进入tomcat的bin目录,启动
  8. bin/startup.sh

(7)安装配置jstorm 编辑vi jstorm-2.1.1/conf/storm.yaml文件

Java代码

  1. ########### These MUST be filled in for a storm configuration
  2. storm.zookeeper.servers:
  3. - "192.168.10.38"
  4. - "192.168.10.39"
  5. - "192.168.10.40"
  6. storm.zookeeper.root: "/jstorm"
  7. # cluster.name: "default"
  8. #nimbus.host/nimbus.host.start.supervisor is being used by $JSTORM_HOME/bin/start.sh
  9. #it only support IP, please don't set hostname
  10. # For example
  11. # nimbus.host: "10.132.168.10, 10.132.168.45"
  12. nimbus.host: "192.168.10.38"
  13. #nimbus.host.start.supervisor: false
  14. # %JSTORM_HOME% is the jstorm home directory
  15. storm.local.dir: "%JSTORM_HOME%/data"
  16. # please set absolute path, default path is JSTORM_HOME/logs
  17. # jstorm.log.dir: "absolute path"
  18. # java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"
  19. # if supervisor.slots.ports is null,
  20. # the port list will be generated by cpu cores and system memory size
  21. # for example,
  22. # there are cpu_num = system_physical_cpu_num/supervisor.slots.port.cpu.weight
  23. # there are mem_num = system_physical_memory_size/(worker.memory.size * supervisor.slots.port.mem.weight)
  24. # The final port number is min(cpu_num, mem_num)
  25. # supervisor.slots.ports.base: 6800
  26. # supervisor.slots.port.cpu.weight: 1.2
  27. # supervisor.slots.port.mem.weight: 0.7
  28. # supervisor.slots.ports: null
  29. # supervisor.slots.ports:
  30. # - 6800
  31. # - 6801
  32. # - 6802
  33. # - 6803
  34. # Default disable user-define classloader
  35. # If there are jar conflict between jstorm and application,
  36. # please enable it
  37. # topology.enable.classloader: false
  38. # enable supervisor use cgroup to make resource isolation
  39. # Before enable it, you should make sure:
  40. # 1. Linux version (>= 2.6.18)
  41. # 2. Have installed cgroup (check the file's existence:/proc/cgroups)
  42. # 3. You should start your supervisor on root
  43. # You can get more about cgroup:
  44. # http://t.cn/8s7nexU
  45. # supervisor.enable.cgroup: false
  46. ### Netty will send multiple messages in one batch
  47. ### Setting true will improve throughput, but more latency
  48. # storm.messaging.netty.transfer.async.batch: true
  49. ### if this setting is true, it will use disruptor as internal queue, which size is limited
  50. ### otherwise, it will use LinkedBlockingDeque as internal queue , which size is unlimited
  51. ### generally when this setting is true, the topology will be more stable,
  52. ### but when there is a data loop flow, for example A -> B -> C -> A
  53. ### and the data flow occur blocking, please set this as false
  54. # topology.buffer.size.limited: true
  55. ### default worker memory size, unit is byte
  56. # worker.memory.size: 2147483648
  57. # Metrics Monitor
  58. # topology.performance.metrics: it is the switch flag for performance
  59. # purpose. When it is disabled, the data of timer and histogram metrics
  60. # will not be collected.
  61. # topology.alimonitor.metrics.post: If it is disable, metrics data
  62. # will only be printed to log. If it is enabled, the metrics data will be
  63. # posted to alimonitor besides printing to log.
  64. # topology.performance.metrics: true
  65. # topology.alimonitor.metrics.post: false
  66. # UI MultiCluster
  67. # Following is an example of multicluster UI configuration
  68. # ui.clusters:
  69. # - {
  70. # name: "jstorm",
  71. # zkRoot: "/jstorm",
  72. # zkServers:
  73. # [ "localhost"],
  74. # zkPort: 2181,
  75. # }

(8)分发配置好的jstorm包,并启动集群 A:在nimbus上,执行nohup jstorm nimbus &启动nimbus,查看$JSTORM_HOME/logs/nimbus.log,检查是否有错误 B:在supervisor节点上执行 “nohup jstorm supervisor &”, 查看$JSTORM_HOME/logs/supervisor.log检查有无错误 (9)访问nimbus所在机的ip:8080,查看Jstorm的ui图:

至此安装成功! (10)常用命令 提交任务命令: jstorm jar xxxx.jar 类名 参数1 参数2 参数n 杀死任务命令: jstorm kill topologyName 参考文档: http://storm.apache.org/ https://github.com/alibaba/jstorm/wiki/JStorm-Chinese-Documentation

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2016-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏假装我会写代码

Laravel Bash 别名

1252
来自专栏逸鹏说道

互联网+ 何人能挡?带着你的Code飞奔吧!

SQLServer性能优化专题 01.SQLServer性能优化之----强大的文件组----分盘存储(水平分库) http://www.cnblogs.com...

2577
来自专栏施炯的IoT开发专栏

Wintel物联网平台-Windows IoT新手入门指南

1. 引言 近期,微软跟进物联网的速度也在不断加速,除了微软手环,。NET MicroFramework,还有一个叫做Windows IoT的项目。该项目早在今...

2055
来自专栏非著名程序员

强烈推荐 | 程序员七大生产力工具

简评:GitHub 是一个面向开源及私有软件项目的托管平台,同时它也为程序员提供了生产力工具,旨在帮助开发者更高效地构建软件。本文给大家推荐七种高效生产力工具。...

2985
来自专栏张善友的专栏

Sync Framework 2.0

Sync Framework 是一个功能完善的同步平台,实现了应用程序、服务和设备的协作和脱机访问。Sync Framework 提供了一些可支持在脱机状态下漫...

2047
来自专栏逸鹏说道

Win10 UWP应用发布流程

简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变。 这篇博文记录了我们发布一款...

2635
来自专栏张善友的专栏

MSDN Magazine 4月份asp.net文章

执行 Web 标准以便更加易于访问:       本文讨论了 Web 标准如此重要的原因,并给出了一些可用于创建符合标准的网站的技术。采用这些标准可能会有一定...

2029
来自专栏从零开始学自动化测试

Appium+python自动化9-SDK Manager

前言 SDK Manager到有哪些东西是必须安装的呢? 一、SDK Manager 1.双击打开SDK Manager界面 ? 2.Tools里面前三个是必须...

3126
来自专栏伪君子的梦呓

小白教程——安装和使用PyCharm

0.0 前言 上一个推送,我教大家怎么安装Python 3.X,安装完了,那我们肯定就是要用IDE (Integrated Development Envi...

6998
来自专栏草根专栏

使用 Moq 测试.NET Core - Why Moq?

在一个项目里, 我们经常需要把某一部分程序独立出来以便我们可以对这部分进行测试. 这就要求我们不要考虑项目其余部分的复杂性, 我们只想关注需要被测试的那部分. ...

1573

扫码关注云+社区

领取腾讯云代金券