`
邢邢色色
  • 浏览: 230522 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Storm集群搭建与配置指南

阅读更多

系统环境

  • 安装环境为GNU/Linux 2.6.32 x64。

  • 需要为每台设置好hostname,并在/etc/hosts配置好集群中每台机器的hostnameip的关系。

  • 确认集群里每台机器互相之间都是可以访问的,取消端口的限制。

注:以下命令行输入的命令没有加sudo,可自己酌情添加。

 

Storm集群包含以下组件

  • zookeeper

  • kafka

  • storm

三者都运行在JVM里,所以需要先安装Java环境。

 

Java环境

官方推荐使用Java6,安装过程略,需在~/.bashrc中配置好JAVA_HOME,并在PATH追加JAVA_HOME/bin

 

Python环境

Storm需要Python2.6.6以上的环境,一般都有预装,如果没有可以使用yum安装或者通过源码进行安装。

 

Zookeeper环境

kafkastorm都高度依赖Zookeeper,所以先部署他。

 

版本

官方建议配一个3台机器的集群,使用的是3.3.6稳定版。

 

准备

下载后解压,假设解压到/usr/local/zookeeper,设置一个环境变量$ZK_HOME指向这个目录。

 

配置

进入$ZK_HOME/conf目录,创建配置文件zoo.cfg,如下所示:

tickTime=2000
dataDir=your path
clientPort=2181
initLimit=5
syncLimit=2
server.1=
机器1hostname:2888:3888
server.2=
机器2hostname:2888:3888
server.3=
机器3hostname:2888:3888

 

本文后续章节会对这些参数进行详细的介绍,这里只是简单说几点:集群中的每台机器都需要感知整个集群是由哪几台机器组成的,在配置文件中,可以按照这样的格式,每行写一个机器配置: server.id=host:port:port. 关于这个id,我们称之为Server ID,用来标识该host在集群中的机器序号。在每个ZooKeeper机器上,我们都需要在数据目录(数据目录就是dataDir数指定的那个目录)下创建一个myid文件,该文件只有一行内容,并且是一个数字——对应这个 Server ID数字。

 

ZooKeeper的设计中,集群中所有机器上的zoo.cfg文件的内容都是一致的。

 

关于myid文件。myid文件中只有一个数字,即一个Server ID。例如,server.1 myid 文件内容就是”1“。注意,请确保每个servermyid文件中id数字不同,并且和s erver.id=host:port:port中的id一致。另外,id的范围是1~255

 

在其他2台机器也进行上述的操作,唯一的不同是myid中的数字。

 

如果要设置JVM参数,可以在$ZK_HOME/conf/java.env进行配置,例如:

export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"

zk使用log4j输出日志,默认输出到控制台上,可以到 $ZK_HOME/conf/log4j.properties中进行修改。

 

启动集群

分别执行$ZK_HOME/bin/zkServer.sh start启动。其中还有许多其他命令可具体参考其他文档。使用echo stat|nc ip port命令可验证集群的状态。

 

其他说明

有一些配置需要特别提一下:

maxClientCnxns单个客户端与单台服务器之间的连接数的限制,是ip级别的,这个值设置太小集群无法正常工作。设置为0代表无限制,其实就差不多了。其他配置在运维篇中会详细描述。

 

Kafka环境

一开始其实只需要配置一台kafka就可以了,因为kafka是无中心结构的,每个节点的地位都是一样的,节点之间通过zk进行互相发现和交互。加入一个新节点只需要启动节点进程,会自动向 zk报告自己的存在,这样集群中的其他节点也会知道了。不过这里假设配置的是多节点的集群。

 

版本

kafka_2.9.2-0.8.1版本

 

准备

下载后解压,假设解压到/usr/local/kafka,设置一个环境变量$KAFKA_HOME指向这个目录。

 

配置

修改$KAFKA_HOME/conf/server.properties配置文件,里面已有一些配置,下面选一个些重点的来说:

broker.id表示集群的一个节点的唯一表示,用一个数字表示。

 

log.dirs代表数据的持久化的目录,kafka不使用内存,而是直接持久化到硬盘,利用的是操作系统本身的缓存机制进行缓存,所以这个目录很重要。

 

log.retention.hours代表数据要保留多少个小时,超过这个时间会被自动删除。消费者即使从 kafka中取走了数据,但kafka也不会马上删除,而是过期了再删除。

 

zookeeper.connect表示与kafka进行通讯的zk集群,这个也很重要。

其他命令请参考官方文档。

 

kafka也是使用了log4j打日志,到$KAFKA_HOME/conf/log4j.properties修改即可。

 

修改kafkaJVM参数可以在$KAFKA_HOME/bin/kafka-server-start.sh中修改:

export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G 等等"

 

启动集群

$KAFKA_HOME/bin/kafka-server-start.sh为启动命令,其他命令请参考官方文档。

如果有多个节点请分别在节点上启动。

启动后进程工作在前台,如果要设成daemon请使用nohup命令并在命令最后加上&

 

在任意一个节点中输入命令来创建一个topic(队列)进行验证。

$/KAFKA_HOME/bin/kafka-topics.sh --create --topic first_topic --zookeeper 你的ZK集群IP:PORT --partitions 1 --replication-factor 1

如果输出Created topic "first_topic".则表示OK

 

Storm环境

storm集群中的节点角色分为nimbus(监控和分派任务)supervisor(任务具体调度)两种,一般一台主机只扮演其中的一种角色,要都在一起也可以,不过最好是要保持nimbus的安全,因为nimbus有单点故障的危险。这里假设都在一台机器上,分开的话过程也是一样的。

 

版本

apache-storm-0.9.1-incubating版本

 

准备

下载后解压,假设解压到/usr/local/storm,设置一个环境变量$STORM_HOME指向这个目录。

 

配置

修改$STORM_HOME/conf/storm.yaml,不管是nimbus还是supervisor都是一样的配置。对其中一些重要的配置进行说明:

storm.local.dir: "your path",这是storm的各个节点存储一些本地数据的路径,比如说上传的topology和它的JAR文件等等。

 

storm.zookeeper.servers:

 

      • "zk1 ip : port"

      • "zk2 ip : port"

 

代表zk集群的地址。

 

nimbus.host: "nimbus ip",代表nimbus节点的ip

 

supervisor.slots.ports:

- 46700

- 46701

- 46702

 

代表supervisor节点可以启动的worker子进程的个数,其中的数字代表worker节点用来通信的本地端口号。默认是4个。

 

各个节点和workerJVM参数可以分别配置,例如:

nimbus.childopts: "-Xmx2048m"

supervisor.childopts: "-Xmx2048m"

worker.childopts: "-Xmx2024m"

更多配置默认参数请参见官方文档,在这里可以看到默认配置:

https://github.com/apache/incubator-storm/blob/master/conf/defaults.yaml

 

启动集群

nimbus节点中启动:

$STORM_HOME/bin/storm nimbus

 

supervisor节点中启动:

$STORM_HOME/bin/storm supervisor

 

随意一个节点可以启动一个web后台程序,可以监控集群和拓扑的性能:

$STORM_HOME/bin/storm ui

 

上述启动的所有进程工作在前台,如果要设成daemon请使用nohup命令并在命令最后加上&

 

最后在浏览器中输入地址:

http://{运行ui后台程序的进程ip}:8080

 

如果可以看到类似下面的页面就表示部署成功了:

 

 

 

  • 大小: 45.4 KB
分享到:
评论

相关推荐

    批量下载】storm环境搭建v1等.zip

    2. **环境搭建**:在本地或集群上设置Storm环境需要安装JDK,配置环境变量,下载Storm的安装包,解压并启动Nimbus(主节点)、Supervisor(工作节点)和服务监控界面UI。 3. **Hadoop集成**:Storm可以与Hadoop生态...

    基于Storm的分布式流计算集群详细配置

    本配置指南将详细阐述如何在多台服务器上搭建一个基于Storm的分布式流计算集群。 ### 一、服务器分布与角色 在构建Storm集群时,我们需要至少三台服务器来搭建ZooKeeper集群,一台服务器作为Nimbus节点,以及多台...

    storm集群部署手册

    通过上述步骤,您可以顺利完成storm集群的搭建,包括虚拟机的安装、网络配置、集群环境配置以及JDK的安装。这些步骤对于部署分布式计算框架storm至关重要,有助于构建高效稳定的分布式计算环境。

    storm入门.pdf

    此外,还需要搭建Zookeeper集群来协调Storm集群的工作。 除了书籍《Getting Started with Storm》之外,还有一些社区和网站提供了Storm的使用文档和教程,这些都是学习Storm技术的宝贵资源。在实践中,开发者应重视...

    细细品味Storm_Storm简介及安装

    第2章详细讲解storm 集群环境的安装和搭建,以及如何将topology部署 到分布式环境中;第3章通过传感器数据实例详细 介绍Trident topology;第4章讲解如何使用Storm 和Tridentj挂行实时趋势分析;第5章介绍如何使用 ...

    [Packt]Learning Storm.2014

    ### 关于《Learning Storm》...本书提供了详细的指南和实用案例,帮助读者从零开始搭建Storm环境,并逐步深入理解其工作原理和应用场景。无论是初学者还是有一定经验的开发者,都能从中获得有价值的信息和实践经验。

    apache-storm-2.0.0-src.tar.gz

    1. **实时数据处理**:与批处理系统不同,Storm 可以连续处理数据流,实时生成结果,这对实时分析和快速响应事件的场景非常有用。 2. **容错机制**:Storm 使用一种名为“拓扑”的结构来组织数据流处理任务,当某个...

    实时计算开发 - Storm从入门到精通

    3. **提交Topology**:通过Storm客户端提交Topology到Storm集群中运行。 #### 六、高级特性 - **容错机制**:Storm支持多种容错机制,如自动故障恢复、消息确认机制等。 - **状态管理**:通过状态后端实现对Bolt...

    Hadoop权威指南中文版(完全版)

    1. Hadoop安装与配置:包括单机模式、伪分布式模式和完全分布式模式的搭建,以及集群的监控和故障排查技巧。 2. HDFS详解:深入理解HDFS的数据存储模型,块的概念,副本策略,以及NameNode和DataNode的角色与工作...

    Storm Applied Strategies for real-time event processing.pdf

    本书《Storm Applied》作为一本实用指南,旨在帮助读者掌握如何利用Apache Storm解决与实时数据流处理相关的实际问题。书中不仅介绍了Storm的基础概念,还通过实际案例帮助读者快速上手并在生产环境中部署Storm。 #...

    Clouder Manager 安装与配置

    **Cloudera Manager安装与配置指南** Cloudera Manager是一款强大的大数据管理平台,它提供了对CDH(Cloudera Distribution Including Apache Hadoop)组件的全面安装、配置、管理和监控功能。CDH是Cloudera公司...

    CDH搭建hadoop环境文档指南

    4. **集群配置**:使用Cloudera Manager配置集群的服务和角色分配。 5. **启动集群**:启动CDH集群并确保所有服务正常运行。 #### 用户权限设置 需要创建特定用户来运行Cloudera Manager和Hadoop集群进程,以确保...

    大数据课程体系.docx

    - **Storm集群搭建**:提供详细的步骤来搭建Storm集群。 - **Storm配置文件配置项讲解**:解释Storm配置文件中的各项配置参数及其作用。 - **集群搭建常见问题解决**:总结集群搭建过程中可能遇到的问题及其解决方案...

    大数据入门指南v1.0

    - **Hadoop环境搭建**:讲解单机伪集群和集群环境的配置方法。 - **HDFS API**:介绍如何使用Java API进行文件操作。 2. **Hive**: - **Hive简介**:提供数据仓库功能,基于Hadoop对大规模数据进行批处理。 - ...

    Hadoop权威指南中文版PDF

    5. **Hadoop安装与配置**:学习如何在本地或集群环境中搭建Hadoop环境,包括配置文件详解和故障排查技巧。 6. **数据处理优化**:探讨提高Hadoop性能的各种策略,如压缩、数据本地化、I/O优化和JobTracker的调优。 ...

    Hadoop权威指南 第四版 中文版 192M

    此外,《Hadoop权威指南 第四版 中文版》也覆盖了Hadoop集群的安装、配置和管理。对于希望将Hadoop部署到生产环境的读者而言,了解如何搭建稳定、高效的Hadoop集群是必不可少的知识。在部署集群的过程中,需要考虑...

    strom的学习记录,包括安装过程、整体介绍、监控页面等

    Apache Storm 是一个强大的流式处理框架,通过上述步骤,我们可以成功安装并配置 Zookeeper 和 Storm,从而搭建起一个基本可用的 Storm 集群。对于初学者来说,理解这些基础配置和概念是非常重要的,这有助于更好地...

    Hadoop权威指南(第四版).rar

    该书详细讲解了Hadoop的核心概念、架构、安装与配置,以及在大数据处理中的实际应用。 首先,Hadoop的核心包括两个主要组件:Hadoop Distributed File System (HDFS)和MapReduce。HDFS是分布式文件系统,它将大型...

    kafka 权威指南 2018年1月出版 完整版

    接下来,指南涵盖了安装和配置Kafka的步骤,包括集群的搭建、配置参数的调整以及与Zookeeper的集成。这部分内容对于实际操作Kafka至关重要,帮助读者理解如何在生产环境中部署和管理Kafka集群。 书中还详细介绍了...

Global site tag (gtag.js) - Google Analytics