Storm相关脚本说明文档
2014-11-06 20:09
447 查看
博客公告:
(1)本博客所有博客文章搬迁至《博客虫》http://blogchong.com/
(2)文章对应的源码下载链接参考博客虫网站首页的“代码GIT”;
(3)更多的相关文章更新,以及代码等,请关注博客虫网站,网站中有技术Q群,以及代码共享链接。
(4)该博客内容还会继续更新,不过会慢一些。
该文档为实实在在的原创文档,转载请注明:
http://blog.sina.com.cn/s/blog_8c243ea30101j1e4.html
目录
Storm相关脚本说明文档... 1
1 文档说明... 2
2 相关脚本... 2
2.1 sshFreeLogin.sh. 2
2.1.1 脚本说明... 2
2.1.2 上代码... 2
2.2 optZk.sh. 3
2.2.1 脚本说明... 3
2.2.2 上代码... 3
2.3 monitorNimbus.sh. 4
2.3.1 脚本说明... 4
2.3.2 上代码... 4
3 寻求帮助... 5
3.1 原由... 5
3.2 问题... 5
3.2.1 metaq-client代码... 5
3.2.2 报错... 7
老规矩了,习惯了在写文档前说点什么。写这个文档呢,是因为前几天在群中有人讨论关于nimbus没有自动重启机制,如何保证系统挂掉后重启的问题。刚好有朋友也问到了这个问题,就写了几个脚本,顺便写个文档说明说明。
顺便还写了个集群免登陆的脚本,及集群ZK操作的脚本。免登陆后再执行zk操作脚本,我们就可以在一台机子上启动集群的ZK、停止ZK及查看ZK状态等等。
关于nimbus监控脚本,只需要后台让他执行就行了,他会自动检测nimbus是否挂掉,如果挂掉就会重启他,有点像nimbus守护进程类似的东西,顺便还给他写了monitor监控的log,方便查询。
这些脚本都是原创的哦,刚写出来的,新鲜出炉的。
好了,就说这些了。
有兴趣和我一起讨论相关技术的加入我建的qq群:191321336
我的一些文档都会更新到我的blog上:http://blog.sina.com.cn/huangchongyuan(~_~来关注我吧),有兴趣的去看看,欢迎一起探讨技术。
该脚本用于ip之间免登陆设置,在storm集群中,往往很多时候只有一个操作界面,需要登录的其他节点进行操作,设置免登陆后,该操作会变的更简单。
该脚本会有一个ip.list配置列表。
192.168.2.240
192.168.2.241
192.168.2.242
sshFreeLogin.sh:
#!/bin/bash
#author: chongyuanHuang
#blog: http://blog.sina.com.cn/huangchongyuan
#QQgroup: 191321336
#E-mail: 874450476@qq.com
function Echo() {
parameter=$1
name=$2
if [ $1 -ne 1 ]; then
echo "Usage: $2 ip.list"
echo" please input ip.list for freelogin and password next"
exit 1
fi
}
function LocalSsh() {
remote=$1
echo"------------------------------------------------------------"
echo "Begin to set Local-Remote free login!"
ssh-keygen -t rsa -P ''
scp /root/.ssh/id_rsa.pub $1:/root/id_rsa.pub
ssh $1 'cat /root/id_rsa.pub >>/root/.ssh/authorized_keys'
ssh $1 'chmod 600 /root/.ssh/authorized_keys'
echo "Local-Remote free login set Ok!"
echo"------------------------------------------------------------"
}
if [ $# -eq 1 ]; then
num=`awk 'END{print NR}' $1`
echo 'Set free login ip.list:'
for ((i=1;i<=$num;i++)); do
ip=`cat $1 | sed -n ''$i'p'`
echo $ip
LocalSsh $ip
done
else
Echo $# $0
fi
该脚本主要是ZK集群操作,配合免登陆设置,可以在一台机子上进行ZK集群的启动,停止及查看状态等操作。该脚本稍微改改就可以用于其它集群类型的操作。代码很简单,可以自己看看。
optZk.sh:
#!/bin/bash
#author: chongyuanHuang
#blog: http://blog.sina.com.cn/huangchongyuan
#QQgroup: 191321336
#E-mail: 874450476@qq.com
function Echo() {
parameter=$1
name=$2
if [ $parameter -ne 2 ]; then
echo "Usage: $name ip.list start/stop/status"
echo" please input ip.list opt"
exit 1
fi
}
function optZk() {
ip=$1
opt=$2
echo"------------------------------------------------------------"
echo "Begin to '$opt' '$ip' ZK:"
ssh $1 '/usr/local/zookeeper/bin/zkServer.sh '$opt''
echo"------------------------------------------------------------"
}
if [ $# -eq 2 ]; then
num=`awk 'END{print NR}' $1`
for ((i=1;i<=$num;i++)); do
ip=`cat $1 | sed -n ''$i'p'`
echo $ip
optZk $ip $2
done
else
Echo $# $0
fi
该脚本用于nimbus的监控,只需后台执行该脚本,该脚本会自动监控nimbus的运行,当检测到挂掉以后,会自动重启,并且会把监控结果以log的形式保存下来。
MonitorNimbus.sh:
#!/bin/bash
#author: chongyuanHuang
#blog: http://blog.sina.com.cn/huangchongyuan
#QQgroup: 191321336
#E-mail: 874450476@qq.com
function Init() {
date=`date +%Y%m%d%H%M%S`
echo ''$date': Begin monitor nimbus.' >monitorNimbus.log
}
function MonitorNimbus() {
for ((;;)); do
num=`ps aux | grep nimbus | grep -v grep | wc -l`
if [ $num -eq 0 ]; then
date1=`date +%Y%m%d%H%M%S`
echo ''$date1': nimbus is down, and restarting!'>> monitorNimbus.log
storm nimbus&
fi
sleep 60
done
}
Init
MonitorNimbus
exit 1
前几天一直在研究metaq,试图往metaq上写数据(已经启动ZK集群,及metaq集群,并且都保证集群启动成功,metaq也配置好了),但代码执行时出错了,纠结了很久。希望有朋友能够帮助我,有能指导的请博客留言,谢谢了。
这是我的metaq写数据的代码:
final MetaClientConfig metaClientConfig = newMetaClientConfig();
final ZKConfig zkConfig = new ZKConfig();
zkConfig.zkConnect = "192.168.2.240:2181";
zkConfig.zkRoot = "/meta";
metaClientConfig.setZkConfig(zkConfig);
SendResult sendResult;
final MessageSessionFactory sessionFactory = newMetaMessageSessionFactory(metaClientConfig);
final MessageProducer producer =sessionFactory.createProducer();
// publish topic
finalString topic = "meta-test";
if(producer ==
null) {
System.out.println("produceris null");
}else {
System.out.println("produceris: " + producer);
}
producer.publish(topic);
fis = new FileInputStream("test.log");
final BufferedReader reader = newBufferedReader(new InputStreamReader(fis, "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
try{
sendResult= producer.sendMessage(new Message(topic,line.getBytes()));
if (sendResult.isSuccess()) {
System.out.println("Send message successfully,sent to "
+ "[" +
sendResult.getPartition() + "[");
}
else {
System.err.println("Sendmessage failed,error message:"
+sendResult.getErrorMessage());
}
} catch (final Exception e) {
e.printStackTrace();
}
}
PS:有知道的朋友指导一二,留个言,拜托了~~~
(1)本博客所有博客文章搬迁至《博客虫》http://blogchong.com/
(2)文章对应的源码下载链接参考博客虫网站首页的“代码GIT”;
(3)更多的相关文章更新,以及代码等,请关注博客虫网站,网站中有技术Q群,以及代码共享链接。
(4)该博客内容还会继续更新,不过会慢一些。
该文档为实实在在的原创文档,转载请注明:
http://blog.sina.com.cn/s/blog_8c243ea30101j1e4.html
类型 | 详细 |
备注 | 该文档为storm相关脚本说明文档,包括集群免登陆脚本,操作ZK集群,及最重要的nimbus监控重启脚本。该部分附有源代码。 |
相关描述 | ² 其他相关文档请参考新浪博客http://blog.sina.com.cn/huangchongyuan ² ² 部分文档涉及到源码,有需要的博客留言 ² 欢迎加入storm-分布式-IT技术交流群(191321336,群中有详细的资料),一起讨论技术,一起分享代码,一起分享设计。 |
Storm相关脚本说明文档... 1
1 文档说明... 2
2 相关脚本... 2
2.1 sshFreeLogin.sh. 2
2.1.1 脚本说明... 2
2.1.2 上代码... 2
2.2 optZk.sh. 3
2.2.1 脚本说明... 3
2.2.2 上代码... 3
2.3 monitorNimbus.sh. 4
2.3.1 脚本说明... 4
2.3.2 上代码... 4
3 寻求帮助... 5
3.1 原由... 5
3.2 问题... 5
3.2.1 metaq-client代码... 5
3.2.2 报错... 7
1 文档说明
老规矩了,习惯了在写文档前说点什么。写这个文档呢,是因为前几天在群中有人讨论关于nimbus没有自动重启机制,如何保证系统挂掉后重启的问题。刚好有朋友也问到了这个问题,就写了几个脚本,顺便写个文档说明说明。
顺便还写了个集群免登陆的脚本,及集群ZK操作的脚本。免登陆后再执行zk操作脚本,我们就可以在一台机子上启动集群的ZK、停止ZK及查看ZK状态等等。
关于nimbus监控脚本,只需要后台让他执行就行了,他会自动检测nimbus是否挂掉,如果挂掉就会重启他,有点像nimbus守护进程类似的东西,顺便还给他写了monitor监控的log,方便查询。
这些脚本都是原创的哦,刚写出来的,新鲜出炉的。
好了,就说这些了。
有兴趣和我一起讨论相关技术的加入我建的qq群:191321336
我的一些文档都会更新到我的blog上:http://blog.sina.com.cn/huangchongyuan(~_~来关注我吧),有兴趣的去看看,欢迎一起探讨技术。
2 相关脚本
2.1 sshFreeLogin.sh
2.1.1 脚本说明
该脚本用于ip之间免登陆设置,在storm集群中,往往很多时候只有一个操作界面,需要登录的其他节点进行操作,设置免登陆后,该操作会变的更简单。
该脚本会有一个ip.list配置列表。
2.1.2 上代码
Ip.list:192.168.2.240
192.168.2.241
192.168.2.242
sshFreeLogin.sh:
#!/bin/bash
#author: chongyuanHuang
#blog: http://blog.sina.com.cn/huangchongyuan
#QQgroup: 191321336
#E-mail: 874450476@qq.com
function Echo() {
parameter=$1
name=$2
if [ $1 -ne 1 ]; then
echo "Usage: $2 ip.list"
echo" please input ip.list for freelogin and password next"
exit 1
fi
}
function LocalSsh() {
remote=$1
echo"------------------------------------------------------------"
echo "Begin to set Local-Remote free login!"
ssh-keygen -t rsa -P ''
scp /root/.ssh/id_rsa.pub $1:/root/id_rsa.pub
ssh $1 'cat /root/id_rsa.pub >>/root/.ssh/authorized_keys'
ssh $1 'chmod 600 /root/.ssh/authorized_keys'
echo "Local-Remote free login set Ok!"
echo"------------------------------------------------------------"
}
if [ $# -eq 1 ]; then
num=`awk 'END{print NR}' $1`
echo 'Set free login ip.list:'
for ((i=1;i<=$num;i++)); do
ip=`cat $1 | sed -n ''$i'p'`
echo $ip
LocalSsh $ip
done
else
Echo $# $0
fi
2.2 optZk.sh
2.2.1 脚本说明
该脚本主要是ZK集群操作,配合免登陆设置,可以在一台机子上进行ZK集群的启动,停止及查看状态等操作。该脚本稍微改改就可以用于其它集群类型的操作。代码很简单,可以自己看看。
2.2.2 上代码
optZk.sh:
#!/bin/bash
#author: chongyuanHuang
#blog: http://blog.sina.com.cn/huangchongyuan
#QQgroup: 191321336
#E-mail: 874450476@qq.com
function Echo() {
parameter=$1
name=$2
if [ $parameter -ne 2 ]; then
echo "Usage: $name ip.list start/stop/status"
echo" please input ip.list opt"
exit 1
fi
}
function optZk() {
ip=$1
opt=$2
echo"------------------------------------------------------------"
echo "Begin to '$opt' '$ip' ZK:"
ssh $1 '/usr/local/zookeeper/bin/zkServer.sh '$opt''
echo"------------------------------------------------------------"
}
if [ $# -eq 2 ]; then
num=`awk 'END{print NR}' $1`
for ((i=1;i<=$num;i++)); do
ip=`cat $1 | sed -n ''$i'p'`
echo $ip
optZk $ip $2
done
else
Echo $# $0
fi
2.3 monitorNimbus.sh
2.3.1 脚本说明
该脚本用于nimbus的监控,只需后台执行该脚本,该脚本会自动监控nimbus的运行,当检测到挂掉以后,会自动重启,并且会把监控结果以log的形式保存下来。
2.3.2 上代码
MonitorNimbus.sh:
#!/bin/bash
#author: chongyuanHuang
#blog: http://blog.sina.com.cn/huangchongyuan
#QQgroup: 191321336
#E-mail: 874450476@qq.com
function Init() {
date=`date +%Y%m%d%H%M%S`
echo ''$date': Begin monitor nimbus.' >monitorNimbus.log
}
function MonitorNimbus() {
for ((;;)); do
num=`ps aux | grep nimbus | grep -v grep | wc -l`
if [ $num -eq 0 ]; then
date1=`date +%Y%m%d%H%M%S`
echo ''$date1': nimbus is down, and restarting!'>> monitorNimbus.log
storm nimbus&
fi
sleep 60
done
}
Init
MonitorNimbus
exit 1
3 寻求帮助
3.1 原由
前几天一直在研究metaq,试图往metaq上写数据(已经启动ZK集群,及metaq集群,并且都保证集群启动成功,metaq也配置好了),但代码执行时出错了,纠结了很久。希望有朋友能够帮助我,有能指导的请博客留言,谢谢了。
3.2 问题
3.2.1 metaq-client代码
这是我的metaq写数据的代码:
final MetaClientConfig metaClientConfig = newMetaClientConfig();
final ZKConfig zkConfig = new ZKConfig();
zkConfig.zkConnect = "192.168.2.240:2181";
zkConfig.zkRoot = "/meta";
metaClientConfig.setZkConfig(zkConfig);
SendResult sendResult;
final MessageSessionFactory sessionFactory = newMetaMessageSessionFactory(metaClientConfig);
final MessageProducer producer =sessionFactory.createProducer();
// publish topic
finalString topic = "meta-test";
if(producer ==
null) {
System.out.println("produceris null");
}else {
System.out.println("produceris: " + producer);
}
producer.publish(topic);
fis = new FileInputStream("test.log");
final BufferedReader reader = newBufferedReader(new InputStreamReader(fis, "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
try{
sendResult= producer.sendMessage(new Message(topic,line.getBytes()));
if (sendResult.isSuccess()) {
System.out.println("Send message successfully,sent to "
+ "[" +
sendResult.getPartition() + "[");
}
else {
System.err.println("Sendmessage failed,error message:"
+sendResult.getErrorMessage());
}
} catch (final Exception e) {
e.printStackTrace();
}
}
3.2.2 报错
PS:有知道的朋友指导一二,留个言,拜托了~~~
相关文章推荐
- [置顶] 11gR2中awr 相关脚本的说明
- 基于Angle游戏引擎相关的文档说明
- 2:文档编辑生成目录相关方法说明
- 【半原创】wdcp_v2升v3的脚本及相关操作方法说明
- Oracle性能诊断艺术-相关脚本说明
- 树型结构脚本相关文档
- storm官方文档----配置文件说明
- storm文档(8)----配置文件说明
- lua-gif相关软件安装说明文档
- storm文档(8)----配置文件说明
- Storm相关问题整理文档
- storm-kafka组件中KafkaOffsetMetric相关统计指标说明
- Android module paths: NDK官方文档,module相关说明文档
- 11gR2中awr 相关脚本的说明
- Storm相关问题整理文档
- Linux shell脚本中与if相关参数说明
- 关于配置weblogic密匙库信息、SSL,启用HTTPS、禁用HTTP的相关配置文档说明
- 抓取后台给的接口文档网页上的属性及相关说明
- 在线文档技术及相关原理说明swfTOOLS+Flexpaper