1.软件版本:

本文中使用linux版本为64位CentOS6.5

jdk为64位linux版本jdk7u79

zookeeper为3.4.6

zeromq为4.1.3

storm为0.10.0


2.单机安装

2.1 安装vmware和CentOS

这一步网上教程很多,首先安装一台虚拟机。

2.2 安装vmware tools


VM——install vmwaretools 会弹出vmware tools文件夹

复制到合适的目录下,解压

进入路径,root执行./vmare-install.pl

重启,安装成功。

vmware可以提供很多很方便的功能,诸如把主机中的文件拖入虚拟机中,设置共享文件夹等。

2.3 网络配置

在vmware中,通过Edit——virtual network edit查看子网,选择NAT。此时本vmware中的虚拟机IP均为192.168.80.XX,子网掩码为255.255.255.0,


修改主机名:vim/etc/sysconfig/network 修改hostname主机名,本台主机名为master

                        可用hostname命令查看


配置静态IP:

1. vim/etc/sysconfig/network-scripts/ifcfg-eth0进行修改

需要的修改的部分为ONBOOT、IPADDR、NETMASK、GATEWAY、DNS1


2. service network restart重启网络

4.ping验证是否可以ping通网络


注意:此处的mac地址一定要和/etc/udev/rules.d/70-persist-net.rules中一致,在克隆虚拟机时会出现此问题,因为克隆的虚拟机和原虚拟机完全一样,这里的MAC地址自然也一样


设置主机名到ip的映射

vim /etc/hosts 


本台主机为master,ip为192.168.80.11

以后就可以用主机名代替ip了



注意:建议在所有软件解压完成之后再配置环境变量。因为每次source /etc/profile都会将新加入的软件path追加到原有的path中,如果每解压一个软件source一次,path会变成很长一串

2.4 jdk安装

下载jdk,注意操作系统,建议使用1.7版本

解压到合适路径下,本例中是解压到/opt路径下: tar –zxvf XXXX –C /opt

修改环境变量,在/etc/profile中追加环境变量,例如:

export JAVA_HOME=/opt/jdk1.7.0_79

export JRE_HOME=/opt/jdk1.7.0_79/jre

 

exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

 

source/etc/profile或者重启之后,运行java –version,现实如下信息则安装正确:


2.5 zookeeper安装

有可能需要安装较高版本的python,本机使用自带的python2.6.6可以运行

2.5.1 软件解压、添加环境变量

解压之后,在/etc/profile中添加环境变量,例如:

export ZOOKEEPER_HOME=/opt/zookeeper-3.3.5

export PATH =$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$JRE_HOME/bin:$PATH

2.5.2 zoo.cfg修改

zookeeper路径下的conf/zoo.cfg为zookeeper的配置文件,将conf/zoo_sample.cfg复制成zoo.cfg。

如果zookeeper只是单点,那么不需要修改即可。

如果想要配置zookeeper集群,按如下操作(在多台虚拟机网络、IP、IP到主机名的映射配置好之后再建zookeeper集群):


1.修改配置文件

在每台机器修改配置文件conf/zoo.cfg(或者在一台主机上修改,再用scp远程复制到其他主机)

dataDir=/home/hadoop/storage/zookeeper  

clientPort=2181  

initLimit=5  

syncLimit=2  

server.1=slave-01:2888:3888  

server.2=slave-02:2888:3888  

server.3=slave-03:2888:3888  

这里用了三台主机作为zookeeper集群,分别为slave-01、02、03,其中的2888为通信端口,3888为选举端口


2:修改myid

在dataDir(如第1步)指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,


3:启动ZooKeeper集群

关闭防火墙,否则可能出现”it probably not running”错误:

service iptables stop关闭防火墙

chkconfig iptables off保证开机后不再重启防火墙

reboot重启


重启之后运行

zkServer.sh start
因为配置好了环境变量,所以可以直接运行该脚本。如果没有配置好zookeeper的环境变量,则是运行zookeeper路径下的bin/zkServer.sh start

jps显示进程,其中的QuorumPeerMain就是zookeeper的进程:


查看状态:

zkServer.sh status

如果正确运行会显示该虚拟机的角色,leader或者follower:

2.5.3 zermq安装

此步骤中需要依赖包libtool、gcc-c++,通过yum install libtool和yum install gcc-c++就可以了

 

在configure时注意,可能会提示缺少libsodium,但安装了也没用,需要忽略

用如下命令configure./configure --without-libsodium

 

全部的命令是:

./autogen.sh
configure./configure --without-libsodium
make  
make install
 
 

2.5.4 jzmq安装

conggithub上下载,可能缺少git命令,yum install git即可

git clone https://github.com/nathanmarz/jzmq.git会下载到当前路径下
>cd jzmq
./autogen.sh
./configure
make
make install

2.5.5 storm安装

下载,解压

修改/conf/storm.yaml配置文件

如果zookeeper为单点模式,则文件最简配置如下:

storm.zookeeper.servers:

       - "master"

 nimbus.host: "master"


如果zookeeper为集群模式,则最简配置如下:

storm.zookeeper.servers:

       - "master"

       -"slave1"

       -"slave2"

 nimbus.host: "master"

把注释的#去掉即可,不同就在于集群模式需要制定zookeeper的多个服务器

3. 集群安装

将master机克隆另外两台(先要关机),使用createa full clone


对另外两台主机

1. 修改主机名
分别是slave1和slave2

2.修改IP和mac地址
因为是克隆来的,所以这两台主机的ip和mac地址都和master的一样,会造成无法上网的问题
用ifconfig命令查出实际的mac地址(此时的网卡是eth1),再按照上文所述修改/etc/sysconfig/network-scripts/ifcfg-eth0中的ip和mac地址

同时,需要在/etc/udev/rules.d/70-persist-net.rules中把eth0的mac地址修改成一致的,再把eth1的部分删去



3.添加主机名和ip地址的映射(和master一样)/etc/hosts


4.启动storm

在master上运行zookeeper:
zkServer.sh start
如果zookeeper配置为单点,只要在master 上开启就行了,如果是集群,则三台机器都要开启。

在master主机上,运行:

storm nimbus >/dev/null  2>&1  &
因为只是测试,就不记录信息了,/dev/null文件内容永远为空。此命令的意思是,运行nimbus进程,将命令运行的信息写入/dev/null文件,错误信息也写入这个文件,后台执行

在两台slave主机上,运行supervisor进程:

storm supervisor>/dev/null 2>&1 &

再在master主机上运行ui进程(图形界面):

storm ui >/dev/null2>&1 &

此时在master上jps,可以看到四个进程,分别是jps本身、zookeeper、ui和storm的nimbus。在supervisor上jps的,会有supervisor进程,和QuorumPeerMain(zookeeper为集群的情况)



打开浏览器,192.168.80.11:8080(master的IP和端口号,端口号可以自己配置,默认为8080),即可看到ui界面:

 
打jar包
由于github的项目直接用maven比较方便,因为建议使用maven打包,参考资料

git clone https://github.com/nathanmarz/storm-starter.git  
cd storm-starter/  
mvn package
如果打包成功,会在storm-starter下生成target路径,产生jar包

提交jar包
storm jar target/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology
前半部分参数是jar包的路径,后半部分是main方法的路径

在浏览器中即可看到运行的topology(jar包)
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐