Storm集群搭建(1.2.2版本)

storm集群部署(1.2.2版本)

前提环境

CentOS release 6.4 (Final)+JDK8+Python 2.6.6

集群部署

设置zookeeper集群

机器要求环境

Java 7+(Apache Storm 1.x通过travis ci对java 7和java 8 JDK进行测试)
Python 2.6.6(Python 3.x也应该工作,但不作为CI环境的一部分进行测试)
这些是使用Storm测试的依赖项的版本。 Storm可能适用于不同版本的Java和/或Python,也可能不适用。

storm版本获取

storm1.2.2版本下载

解压并配置STORM_HOME

STORM_HOME=/data/apache-storm-1.2.2
PATH=$STORM_HOME/bin:$PATH
export PATH

配置storm.yaml

storm.zookeeper.servers:
     - "server1"
     - "server2"
     - "server3"
storm.local.dir: "/data/apache-storm-1.2.2/storm-local"
nimbus.seeds: ["server3"]
ui.port: 18080
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000

说明:
- 配置zookeeper集群地址

storm.zookeeper.servers:
  - "server1"
  - "server2"
  - "server3"
  • storm.local.dir:Nimbus和Supervisor守护进程需要本地磁盘上的目录来存储少量状态(如jar,confs和类似的东西)。 您应该在每台计算机上创建该目录,为其提供适当的权限,然后使用此配置填写目录位置。 例如:
    storm.local.dir: "/data/storm"

  • nimbus.seeds:工作节点需要知道哪些机器是主机的候选者才能下载拓扑jar和confs。
    nimbus.seeds: ["server1"]
    我们鼓励您将值填写到机器的FQDN列表中。 如果要设置Nimbus H/A,则必须解决运行nimbus的所有计算机的FQDN。 当您只想设置“伪分布式”群集时,您可能希望将其保留为默认值,但仍鼓励您填写FQDN。

  • supervisor.slots.ports:对于每个工作者计算机,您可以使用此配置配置在该计算机上运行的工作程序数。 每个工作人员使用单个端口接收消息,此设置定义哪些端口可以使用。 如果您在此处定义了五个端口,那么Storm将分配最多五个工作人员在此计算机上运行。 如果定义三个端口,Storm最多只能运行三个端口。 默认情况下,此设置配置为在端口6700,6701,6702和6703上运行4个工作程序。例如:

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
  • 健康状况检查
    Storm提供了一种机制,管理员可以通过该机制将管理员定期运行管理员提供的脚本,以确定节点是否健康。管理员可以让主管通过在storm.health.check.dir中的脚本中执行他们选择的任何检查来确定节点是否处于健康状态。如果脚本检测到节点处于不健康状态,则必须以字符串ERROR开头的标准输出行。主管将定期运行运行状况检查目录中的脚本并检查输出。如果脚本的输出包含字符串ERROR,如上所述,主管将关闭所有工作人员并退出。如果主管在监督下运行,则可以调用/bin/storm node-health-check来确定是否应该启动主管或节点是否运行状况不佳。运行状况检查目录位置可以配置为:storm.health.check.dir: "healthchecks"脚本必须具有执行权限。允许任何给定的运行状况检查脚本在由于超时而标记为失败之前运行的时间可以配置为:storm.health.check.timeout.ms: 5000

启动节点

nimbus上的启动脚本

nohup /root/apache-storm-1.2.2/bin/storm nimbus > /dev/null &  
nohup /root/apache-storm-1.2.2/bin/storm ui > /dev/null &
nohup /root/apache-storm-1.2.2/bin/storm logviewer > /dev/null &

supervisor上启动脚本

nohup /root/apache-storm-1.2.2/bin/storm supervisor > /dev/null &
nohup /root/apache-storm-1.2.2/bin/storm logviewer > /dev/null &

UI访问:可以通过将Web浏览器导航到http://{ui host}:8080来访问UI。

关闭程序:可以使用jps查看pid来kill。

配置外部库和环境变量(可选)

如果需要外部库或自定义插件的支持,可以将这些jar放入extlib/extlib-daemon/目录中。 请注意,extlib-daemon/目录存储仅由守护程序(Nimbus,Supervisor,DRPC,UI,Logviewer)使用的jar,例如HDFS和自定义调度库。 因此,用户可以配置两个环境变量STORM_EXT_CLASSPATH和STORM_EXT_CLASSPATH_DAEMON,以包括外部类路径和仅守护进程的外部类路径。

你可能感兴趣的:(Storm,BigData)