Storm DRPC环境搭建笔记
By Mickey.Pro
CentOS 6.3 64bit minimal
http://www.osyunwei.com/archives/4753.html
查看防火墙规则
iptables -L
删除防火墙全部规则
iptables -F
关闭防火墙
chkconfig iptables off
chkconfig ip6tables off
防火墙-重启后永久性生效:
开启:chkconfigiptables on
关闭:chkconfigiptables off
防火墙-即时生效,重启后失效:
开启:serviceiptables start
关闭:service iptables stop
查看selinux安全系统是否关闭
vi /etc/sysconfig/selinux
查看(SELINUX=disabled是关闭 SELINUX=enforcing是执行)
编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0
eg:
DEVICE="eth0"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=static (或dhcp)
IPV4_FAILURE_FATAL=yes
IPADDR=192.168.226.101
NETMASK=255.255.255.0
GATEWAY=192.168.226.2
(HWADDR=00:0C:29:66:18:D7)
编辑主机名、网关
vi /etc/sysconfig/network
GATEWAY=192.168.1.1 (如果没有GATEWAY手动添加一行)
eg:
NETWORKING=yes
HOSTNAME=west13329
GATEWAY=192.168.56.1
编辑DNS
vi /etc/resolv.conf
谷歌公共DNS: nameserver8.8.8.8
可设多个,eg:
nameserver 192.168.226.2
nameserver 8.8.8.8
重启网卡
service network restart(或 /etc/init.d/network restart)
修改主机名(临时修改,重启失效)
hostname your-hostname
uname -n (查看主机名)
修改主机名称(永久修改)
vi /etc/sysconfig/network (修改HOSTNAME=你的主机名,eg: HOSTNAME=host001)
vi /etc/hosts (修改127.0.0.1 你的主机名)
reboot
jdk-6u45-linux-x64-rpm.bin
Python-2.7.6.tgz
zookeeper-3.4.5.tar.gz
storm-0.9.0.1.tar.gz
zeromq-2.1.7.tar.gz
jzmq-master.zip
安装JDK
chmod 777 jdk-6u45-linux-x64-rpm.bin
./jdk-6u45-linux-x64-rpm.bin
(默认安装路径应该是/usr/java/jdk1.6.0_45)
配置JDK
vim /etc/profile
在尾部添加:
export JAVA_HOME=/usr/java/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
使配置生效
source /etc/profile
测试安装的java
java -version
删除JDK安装包
rm –rf sun*.rpm
查看python版本(默认安装,则不需要安装了)
python –V
安装
tar -zxvf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make
make install
如果没有gcc请安装编译器(没编译器报错:configure:error: no acceptable C compiler found in $PATH)
yuminstall -y gcc
修改链接使用新版本
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
解压缩
tar -zxvf zookeeper-3.4.5.tar.gz
编辑配置文件
cd /home/zookeeper-3.4.5/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/data/zookeeper/
clientPort=2181
server.2=192.168.226.102:2888:3888
server.3=192.168.226.103:2888:3888
server.4=192.168.226.104:2888:3888
server.5=192.168.226.105:2888:3888
在配置文件中dataDir目录下创建myid,文件内容为server.2中的编号2
mkdir -p /home/data/zookeeper
cd /home/data/zookeeper
echo “2” > myid
启动Zookeeper服务
cd /home/zookeeper-3.4.5/bin
./zkServer.sh start (停止 ./zkServer.sh stop)
查看服务是否运行
jps (显示java进程QuorumPeerMain)
通过Zookeeper客户端测试服务是否可用
cd /home/zookeeper-3.4.5/bin
./zkCli.sh -server 127.0.0.1:2181
解压缩
tar -zxvf storm-0.9.0.1.tar.gz
编辑配置文件
vi /home/storm-0.9.0.1/conf/storm.yaml
storm.zookeeper.servers:
- "192.168.226.102"
- "192.168.226.103"
- "192.168.226.104"
- "192.168.226.105"
storm.local.dir:"/home/data/storm/workdir"
nimbus.host: "192.168.226.102"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
drpc.servers:
- "192.168.226.101"
nimbus.childopts: -Xmx256m
worker.childopts: -Xmx100m
supervisor.childopts: -Xmx256m
drpc.childopts: -Xmx256m
创建工作和输出目录并赋予权限
mkdir -p /home/data/storm/workdir
mkdir -p /home/data/storm/out
chmod -R 777 /home/data/storm/
启动服务
cd /home/storm-0.9.0.1/bin
./storm nimbus > /home/data/storm/out/nimbus.out2>&1 &
./storm supervisor > /home/data/storm/out/supervisor.out2>&1 &
./storm ui > /home/data/storm/out/ui.out2>&1 &
./storm logviewer > /home/data/storm/out/logviewer.out2>&1 &
./storm drpc > /home/data/storm/out/drpc.out2>&1 &
查看后台服务
jobs
查看JAVA进程
jps
调回前台运行(2为进程ID)
fg 2
调回后台运行(2为进程ID)
bg 2 或 ctr+z 或 在命令后加 &
查看UI的WEB页面(Storm UI必须和Storm Nimbus同一台机器上,否则UI无法正常工作)
http://192.168.226.102:8080
日志文件目录
/home/storm-0.9.0.1/logs
依赖包安装
yum -y install libtool
yum -y install gcc-c++
yum -y install uuid-devel
yum -y install libuuid-devel
yum -y install make
安装zeromq
tar –xvf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7
./autogen.sh
./configure
make
make install
安装jzmq
unzip jzmq-master.zip
cd jzmq-master
./autogen.sh
./configure
make
make install
如果没有scp命令请先安装(注:发送和接收主机都需要安装)
yum -y install openssh-clients
cd /home
scp -r zookeeper-3.4.5 192.168.226.102:/home
scp -r storm-0.9.0.1 192.168.226.102:/home
scp -r data 192.168.226.102:/home
scp jdk-6u45-linux-x64-rpm.bin 192.168.226.102:/home
scp zeromq-2.1.7.tar.gz 192.168.226.102:/home
scp jzmq-master.zip 192.168.226.102:/home
端口可以不用配置,默认是:3772
vim /home/storm-0.9.0.1/conf/storm.yaml
Nimbus节点的配置:
storm.zookeeper.servers:
- "192.168.226.102"
- "192.168.226.103"
- "192.168.226.104"
- "192.168.226.105"
drpc.servers:
- "192.168.226.101"
Supervisor节点的配置:
storm.zookeeper.servers:
- "192.168.226.102"
- "192.168.226.103"
- "192.168.226.104"
- "192.168.226.105"
nimbus.host:"192.168.226.102"
drpc.servers:
- "192.168.226.101"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
Drpc服务器节点配置:
storm.zookeeper.servers:
- "192.168.226.102"
- "192.168.226.103"
- "192.168.226.104"
- "192.168.226.105"
启动drpc服务:./stormdrpc
运行Topplogy
storm jar wordcount.jar com.test.storm.TopologyMain
客户端调用
DRPCClient client = newDRPCClient("10.100.211.232", 3772);
String result =client.execute("exclamation","test");
克隆linux时网卡无法启动报错:Device eth0 doesnot seem to be present,delaying initialization.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0的配置文件里保存了以前的MAC地址,就把这一行删除掉在重启网卡
rm -rf/etc/udev/rules.d/70-persistent-net.rules 删除后重启机器
reboot
注意事项1
在用虚拟机测试环境内存比较小建议将workers和task数据设置为1测试
conf.setNumWorkers(1);
addBolt(xx,1);//addBolt(IBasicBolt bolt, Numberparallelism)
注意事项2
storm.yaml配置文件每一行前最好就一个空格