Jstorm运维经验

简介: Jstorm运维经验

1.启动supervisor或nimbus最好是以后台方式启动, 避免终端退出时向jstorm发送信号,导致jstorm莫名其妙的退出

nohup jstorm supervisor >/dev/null 2>&1 &

2.推荐使用admin用户启动所有的程序, 尤其是不要用root用户启动web ui
3.在安装目录下,建议使用jstorm-current链接, 比如当前使用版本是jstorm 0.9.4, 则创建链接指向jstorm-0.9.4, 当以后升级时, 只需要将jstorm-current链接指向新的jstorm版本。

ln -s jstorm-0.9.4 jstorm-current

4.将JStorm的本地目录和日志配置到一个公共目录下, 比如/home/admin/jstorm_data 和/home/admin/logs, 不要配置到JSTORMHOME/data和JSTORMHOME/data和JSTORM_HOME/logs,当升级时,替换整个目录时, 容易丢失所有的本地数据和日志。

5.JStorm支持环境变量JSTORM_CONF_DIR, 当设置了该变量时, 会从该目录里读取storm.yaml文件, 因此建议设置该变量,该变量指定的目录存放配置文件storm.yaml, 以后每次升级时,就可以简单的替换目录就可以了
6.建议不超过1个月,强制重启一下supervisor, 因为supervisor是一个daemon进程, 不停的创建子进程,当使用时间过长时, 文件打开的句柄会非常多,导致启动worker的时间会变慢,因此,建议每隔一周,强制重启一次supervisor
7.Storm web ui推荐使用apache tomcat 7.x, 默认的端口是8080, 如果需要将80 端口重定向到8080时, 可以用root执行命令:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

8.Jvm GC 需要使用CMS GC 方式, JStorm默认已经设置, 使用Storm的朋友需要类似的设置,

worker.childopts: "-Xms1g -Xmx1g -Xmn378m -XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=65"

9.对于一些重要的应用,可以对大集群进行分组, 修改配置文件的 “storm.zookeeper.root” 和 “nimbus.host”

10.Zeromq推荐2.1.7

64位java 就需要使用64位zeromq
在64位OS上使用32位java, 编译zeromq 增加flag –m32

11.对于应用使用ZK较频繁的,需要将JStorm的ZK 和应用的ZK 隔离起来,不混在一起使用

12.nimbus节点上建议不运行supervisor, 并建议把nimbus放置到ZK 所在的机器上运行
13.推荐slot数为 ”CPU 核 - 1“, 假设24核CPU, 则slot为23
14.配置cronjob,定时检查nimbus和supervisor,一旦进程死去,自动重启
15.ZK 的maxClientCnxns=500
16.Linux对外连接端口数限制,TCP client对外发起连接数达到28000左右时,就开始大量抛异常,需要

# echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range

作者:glowd
原文:https://blog.csdn.net/zengqiang1/article/details/78450956

相关文章
|
运维 Apache 流计算
《基于Apache Flink的平台化构建及运维优化经验》电子版地址
基于Apache Flink的平台化构建及运维优化经验
117 0
《基于Apache Flink的平台化构建及运维优化经验》电子版地址
|
运维
分享一些个人总结的阿里云产品使用和运维的经验
个人最近三年阿里云使用和运维经验的总结分享。年底我终于把它写成了一个文档,希望分享给大家。我做的都是基础的运维,没什么高深的内容。可能还会有错误,请大家批评指正!
429 0
|
监控 关系型数据库 应用服务中间件
|
28天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
47 4
|
6天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
23 4