搭建Storm集群

今天完成了storm集群的搭建,写一篇博客记录一下,方便以后工作。

总体分为5步。

1. 机器准备


我准备了3台机器 , 其充当的角色分别是

nimbus :  10.101.214.71

zookeeper:  10.101.214.71, 10.101.214.73 , 10.101.214.74

supervisor :  10.101.214.73 , 10.101.214.74

它们之间的关系如图所示:

搭建Storm集群_第1张图片

2.安装java8 

可以是其他版本的java ,此处我选择了 java8,3台机器均需要安装

sudo tar zxvf jdk.tar.gz -C /usr/java 
//解压出的目录名修改成java8
cd /usr/java
sudo mv jdk1.8.0 java8 
//修改配置文件
vim ~/.bashrc
vim /etc/bashrc
//添加以下内容
export JAVA_HOME=/usr/java/java8
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  
//配置生效
source ~/.bashrc

3.安装Zookeeper

3台机器均需要安装Zookeeper, 安装过程相同,唯一不同的地方在与myid

//安装zookeeper
sudo yum install zookeeper -b current  
//配置zookeeper
vim /home/admin/zookeeper-3.4.3/conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/admin/zookeeper-3.4.3/data
dataLogDir=/home/admin/zookeeper-3.4.3/data/log
clientPort=2181
server.1=10.101.214.71:2888:3888
server.2=10.101.214.73:2888:3888
server.3=10.101.214.74:2888:3888

// 创建log文件夹
mkdir /home/admin/zookeeper-3.4.3/data/log

//在 10.101.214.71
	//在/home/admin/zookeeper-3.4.3/data 下创建 myid ,写上 1
	echo 1 >/home/admin/zookeeper-3.4.3/data/myid
//在 10.101.214.73
	//在/home/admin/zookeeper-3.4.3/data 下创建 myid ,写上 2
	echo 2 >/home/admin/zookeeper-3.4.3/data/myid
//在 10.101.214.74
	//在/home/admin/zookeeper-3.4.3/data 下创建 myid ,写上 3
	echo 3 >/home/admin/zookeeper-3.4.3/data/myid

//启动zookeeper
bin/zkServer.sh start
//查看zookeeper启动状态
ps -aux | grep “zookeeper" 
echo srvr | nc 127.0.0.1 2181

4.安装storm

3台机器均需要安装Storm ,配置完全相同
//下载storm
sudo wget [url]  
//解压
sudo unzip -o apache-storm-0.9.2-incubating.zip -d /usr/share/
//生成一个版本无关的软链接,这种方式便于将来升级版本或回滚版本
sudo ln -s /usr/share/apache-storm-0.9.2-incubating/ /usr/share/storm
//修改文件夹权限
sudo chown -R admin:admin /usr/share/apache-storm-0.9.2-incubating/
sudo chown -R admin:admin /usr/share/storm
//将storm的可执行程序软连接到/usr/bin/storm目录下
sudo ln -s /usr/share/storm/bin/storm /usr/bin/storm 
//将storm的默认配置文件移到/etc/storm下,建立软链接以便storm可以找到它
sudo mkdir /etc/storm
sudo chown admin:admin  /etc/storm
//对/usr/share/storm/conf/storm.yaml进行配置
vim /usr/share/storm/conf/storm.yaml
storm.zookeeper.servers: 
    - "10.101.214.71"
    - "10.101.214.73"
    - "10.101.214.74"
nimbus.host: "10.101.214.71"
supervisor.slots.ports:  #机器上运行的进程及每个进程使用的端口
   - 6700
   - 6701
   - 6702
   - 6703
storm.local.dir: "/home/storm"  #Nimbus和Supervisor在本地磁盘上的状态缓存信息(jar包, 配置文件等)

5.安装supervisor启动Apache storm

使用supervisor(注意不是 storm supervisor)启动apache storm的原因是: 在apahce storm后台进程因异常原因停止工作时,supervisor会重新启动它们。如果不想使用supervisor ,可以手动启动,具体方法看第6步
// 安装和启动supervisord服务
sudo yum install supervisor -b current
//在/etc/supervisord.conf中配置storm守护进程(遇到一场终止时自动重启)
vim /etc/supervisord.conf
//注意 supervisor启动时是非常干净的环境,因此需要配置上环境变量
environment=PATH="/usr/java/java8/bin:/usr/java/java8/bin:/usr/ali/bin:/usr/java/java8/bin:/usr/ali/bin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/canghong.ch/bin:/home/admin/dayu/bin/:/apsara/deploy/rpc_wrapper:/apsara/deploy:/home/tops/bin/"
enviroment=JAVA_HOME="/usr/java/java8"
enviroment=JRE_HOME=“/usr/java/java8/jre"
//10.101.214.71
	[program:storm-nimbus]
	command=storm nimbus
	directory=/home/storm
	autorestart=true
	user=admin
	[program:storm-ui]
	command=storm ui
	directory=/home/storm
	autorestart=true
	user=admin
//10.101.214.73
	[program:storm-supervisor]
	command=storm supervisor
	directory=/home/storm
	autorestart=true
	user=admin
//10.101.214.74
	[program:storm-supervisor]
	command=storm supervisor
	directory=/home/storm
	autorestart=true
	user=admin

//创建/home/storm
sudo mkdir /home/storm
sudo chown admin:admin /home/storm
sudo /etc/init.d/supervisor stop  //终止supervisord服务
sudo /etc/init.d/supervisor start  //重启supervisord服务
ps aux | grep “xxxx”  // 来查看服务是否启动 
jps //也可以通过这个命令查看


6.其他

启动成功后,通过 http://服务器IP:8080/   访问storm UI。

如果不想使用supervisor启动storm ,可以使用手动启动  

 nohup storm nimbus &。可能会遇到 permission denied异常,需要更改storm文件夹的权限或者使用sudo 命令

 nohub storm supervisor &

nohub storm ui &











你可能感兴趣的:(大数据,storm)