storm,storm安装部署,storm配置调优,storm启动脚本 | AiTi修炼|重剑无锋,拈花微笑
Header
Header

Storm集群与单机部署与调优配置

Storm集群与单机部署

Strom分为nimbus节点和Supervisor节点,在nimbus节点上启动nimbus进程和ui进程;在Supervisor节点启动supervisor进程和logview进程。Strom需要依赖JDK和Zookeeper,Zookeeper的部署不单独列出。nimbus机器负载不高,可以使用虚拟机进行部署,Supervisor节点会跑真正的业务,建议使用物理机进行安装配置。每台机器上可以启动的Worker数量可以根据业务情况单独来配置。

首先安装配置nimbus机器

  • 安装JDK,选择JDK7

解压缩jdk到 /usr/local/目录,并创建符号链接

ln -s -f jdk1.7.0_75/ jdk
  • 编辑/etc/profile,增加相应Java相关配置
export JAVA_HOME=/usr/local/jdk

export JAVAPTH=/usr/local/jdk/bin

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  • 创建storm账号和程序目录

groupadd storm adduser storm -g storm passwd storm
  • 创建Storm程序目录和日志文件目录等

mkdir /usr/local/hadoop chown -R storm:storm hadoop mkdir /data/storm chown -R storm:storm /data/storm mkdir /data/logs chown -R storm:storm /data/logs chown -R storm:storm /data/appdatas/
  • 切换到storm账号,部署storm程序
su storm

cd /usr/local/hadoop/

tar -zxvf apache-storm-1.0.2.tar.gz

ln -s -f apache-storm-1.0.2/ storm-release
  • 在用户目录下创建符号链接

cd /home/storm ln -s -f /usr/local/hadoop/storm-release/ storm-release chown -R storm:storm storm-release
  • 创建环境变量

vi /etc/profile export STORM_HOME=/home/storm/storm-release source /etc/profile
  • 编辑Strom相关配置文件
cd /usr/local/hadoop/storm-release/conf
vi storm.yaml
  • 设定storm使用的Zookeeper地址
storm.zookeeper.servers:
- "10.1.103.156"
- "10.1.103.17"
- "10.1.103.32"
  • 设定Nimbus节点的地址
nimbus.seeds: "storm-nimbus.nh"
设定每台Supervisor节点拥有的Slot数量和端口
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
- 6704
- 6705
- 6706
- 6707
- 6708
- 6709
- 6710
- 6711
  • 设定storm本地文件存放路径
storm.local.dir: "/data/storm
  • 修改worker的Java参数
worker.childopts: "-Xmx2560m -Xms2560m -XX:NewSize=768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxDirectMemorySize=1024m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5
-XX:-CMSConcurrentMTEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -Djava.net.preferIPv4Stack=true"
  • 指定supervisor/nimbus/ui的内存参数
supervisor.childopts: "-Xmx256m"
nimbus.childopts: "-Xmx1024m"
ui.childopts: "-Xmx768m"
Topology优化pending设置
topology.max.spout.pending: 20000
  • Netty传输相关参数设置
storm.messaging.transport: "backtype.storm.messaging.netty.Context"
storm.messaging.netty.server_worker_threads: 1
storm.messaging.netty.client_worker_threads: 1
storm.messaging.netty.buffer_size: 524288
storm.messaging.netty.max_retries: 100
storm.messaging.netty.max_wait_ms: 1000
storm.messaging.netty.min_wait_ms: 100
  • Task心跳参数设置
task.heartbeat.frequency.secs: 5
  • 修改Storm日志路径
cd /usr/local/hadoop/storm-release/log4j2/
vi cluster.xml
修改所有的appender name下的file配置到/data/logs目录
  • 增加Storm启动脚本
cd /usr/local/hadoop/storm-release/bin
  • 创建nimbus启动脚本
vi nimbus.sh
#!/bin/bash
#
###################################################
#########
export LANG="en_US.UTF-8"
nohup $STORM_HOME/bin/storm nimbus > /data/logs/nimbus.out 2>&1 &
  • 同上,创建supervisor启动脚本
vi supervisor.sh,将nimbus.sh的最后一行换为
nohup $STORM_HOME/bin/storm supervisor > /data/logs/supervisor.out 2>&1
&
  • 创建logviewer的启动脚本
vi logviewer.sh,将nimbus.sh的最后一行换为
nohup $STORM_HOME/bin/storm logviewer > /data/logs/logviewer.out 2>&1
&
  • 创建ui的启动脚本
vi ui.sh,将nimbus.sh的最后一行换为
nohup $STORM_HOME/bin/storm ui > /data/logs/ui.out 2>&1 &
  • 创建进程监控脚本,并加入到crontab中,防止Storm的deamon进程意外退出后,能够自动启动
vi process-check.sh
#!/bin/bash
. /etc/profile
#check supervisor & log
BASE_LOG_DIR=/data/logs
function write_log(){
if [ $# -eq 1 ]
then
echo `date "+%Y-%m-%d %H:%M:%S" `" [$0] $1"
fi
}
function check(){
result=`$JAVA_HOME/bin/jps | grep $1 | wc -l`
if [ $result -eq 0 ]
then
write_log "process $1 dead " >> $BASE_LOG_DIR/$1.check
$STORM_HOME/bin/$1.sh
else
write_log "process $1 alive " >> $BASE_LOG_DIR/$1.check
fi
}
check core
check nimbus
  • 增加所有脚本的可执行权限
chmod +x nimbus.sh
chmod +x logviewer.sh
chmod +x supervisor.sh
chmod +x ui.sh
chmod +x process-check.sh
  • 并把process-check.sh增加到crontab中
crontab -e */2 * * * * /usr/local/hadoop/storm-release/bin/process-check.sh
  • 启动nimbus节点的nimbus和ui
sh /usr/local/hadoop/storm-release/bin/nimbus.sh
sh /usr/local/hadoop/storm-release/bin/ui.sh
  • 打开浏览器,查看nimbus的状态

http://storm-nimbus.nh:8080/index.html 能够看见相关的信息,则正常启动。

  • 部署Supervisor节点
    部署Java环境,同Nimbus节点部署过程。将/usr/local/hadoop/storm-release目录copy到对应的Supervisor机器修改process-check.sh程序的最后两行,改为:
check supervisor
check logviewer
  • 并把process-check.sh增加到crontab中
crontab -e*/2 * * * * /usr/local/hadoop/storm-release/bin/process-check.sh
  • 启动Supervisor和logviewer进程
sh /usr/local/hadoop/storm-release/bin/supervisor.sh
sh /usr/local/hadoop/storm-release/bin/logviewer.sh
tail -f /data/logs/supervisor.log
  • 查看Supervisor启动日志,启动完毕后,可以在
    http://storm-nimbus.nh:8080/index.html的Supervisor Summary里面看见这个节点的相关信息。

对应其他的Supervisor节点,重复上述过程,直至所有节点部署和启动完毕。

rscala.com版权所有,本文Storm集群与单机部署与调优配置转载请注明出处:http://rscala.com/index.php/459.html

该文章归档分类于 storm实践, 大数据基础

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

*

code