大数据实时处理——搭建storm集群

原料:

VMware虚拟机(VMware Workstation Pro),CentOS镜像(CentOS-6.5-x86_64-bin-DVD1.ios),

Notepad++(npp.7.6.6.Installer.exe),intellij idea(ideaIU-2018.2.8.exe),jdk1.8.0_162.tar.gz,hadoop-2.9.2-src.tar.gz,

Python-2.7.15.tgz(官网下载:https://www.python.org/ftp/python/2.7.15/  ),apache-storm-0.9.2-incubating.tar.gz,

SecureCRT8.1

 

Notepad++的安装:傻瓜式安装

 

节点名称

Ip

节点角色

备注

storm01

192.168.189.240

nimbus/zookeeper

主节点/ZK 节点

storm02

192.168.189.241

supervisor/zookeeper

工作节点/ZK 节点

storm03

192.168.189.242

supervisor/zookeeper

工作节点/ZK 节点

准备工作:

①打开VMware虚拟机

②点击菜单栏 文件-->新建虚拟机

选择CentOS的镜像

设置名称,密码

 

 

 

等待……

选择other        Username: root          password:storm

打开后的界面:

③设置网关

点击菜单栏:编辑-->虚拟网络编辑器

选中VMnet8,并选择NAT模式

点击NAT设置,查看并记住网关IP

点击DHCP,查看其实IP地址和结束IP地址

点击桌面右上角的 两台电脑的小图标,VPN connections-->configure VPN

选中第一条选项,Edit

点击IPv4 Settings ,选择Manual, Add,填写信息,Apply

右击桌面,打开终端,输入命令重启网关,试一下是否能上网,出现以下界面则OK

用相同方法新建另外两台虚拟机storm02、storm03:

密码都为:storm

配置网关:

storm02:    192.168.189.241      255.255.255.0     192.168.189.2(不太确定,可以自行查看,方法见前面) 

                    8.8.8.8         4.4.4.4 

storm03:    192.168.189.242      255.255.255.0      192.168.189.2(不太确定,可以自行查看,方法见前面) 

                   8.8.8.8         4.4.4.4

设置时间(保证三台虚拟机的时间一致)  

打开CRT8.1(SecureCRT8.1的安装方法见https://blog.csdn.net/zytmaster/article/details/100588387),连接上三台虚拟机storm01,storm02,storm03对三台虚拟机都执行如下命令:

 1、设置ssh免密(方便后面操作时不用输入密码):

       输入命令:ssh-keygen -t rsa之后三次回车

       输入命令:ssh-copy-id 192.168.189.240       (这是在storm01中输入)

                        ssh-copy-id 192.168.189.241       (这是在storm02中输入)

                        ssh-copy-id 192.168.189.242       (这是在storm03中输入)

2、关闭防火墙:chkconfig iptables off

                           vim /etc/sysconfig/selinux(#进入文档后修改SELINUX=disabled)

3、设置主机名:vim /etc/sysconfig/network(#进入文档后三台虚拟机分别对应修改HOSTNAME=storm01,HOSTNAME=storm02,HOSTNAME=storm03)

4、设置主机与IP的对应关系:vim /etc/hosts

(#进入文档后三台虚拟机都在末尾添加三行相同的信息(建议不要复制,自己输入时空开的地方只需要点击一次tab键):

    192.168.189.240    storm01

    192.168.189.241    storm02

    192.168.189.242    storm03

5、reboot       (#重启虚拟机)
 

三台虚拟机都重启完成后,用CRT8.1重新连接,在三台虚拟机中都执行以下命令来测试节点的连通性:

ping storm01

ping storm02

ping storm03

如果都能成功ping同,则OK!

 

接下来配置java环境:

#先创建一些文件夹,方便管理:

[root@storm01 ~]# cd /home/

[root@storm01 home]# ls

storm

[root@storm01 home]# rm -rf storm

[root@storm01 home]# mkdir data

[root@storm01 home]# mkdir softwares

[root@storm01 home]# mkdir tools  

[root@storm01 home]# cd softwares/

[root@storm01 softwares]# mkdir java8

[root@storm01 softwares]# cd ../tools/

#安装上传工具

[root@storm01 tools]# yum -y install  lrzsz

#安装完后上传jdk1.8.0_162.tar.gz文件

[root@storm01 tools]# rz

#上传后将其解压到 /home/softwres/java8/ 中

[root@storm01 tools]# tar -zxf jdk1.8.0_162.tar.gz -C ../softwares/java8/

#获取以下路径,用于配置java环境
 

[root@storm01 tools]# cd ../softwares/java8

[root@storm01 java8]# pwd

/home/softwares/java8

#打开环境配置文档

[root@storm01 java8]# vim /etc/profile

#在文档末尾添加内容如下:

export JAVA_HOME=/home/softwares/java8

export PATH=$PATH:$JAVA_HOME/bin

#刷新环境配置文档

[root@storm01 java8]# source /etc/profile

#检查java版本,出现以下情况则配置成功!!!
 

[root@storm01 java8]# java -version

java version "1.8.0_162"

……(后面内容省略)

[root@storm01 java8]# javac -version

javac 1.8.0_162

 

对另外两台虚拟机storm02、storm03进行以上相同操作,配置好java环境

 

 

安装storm集群的前提是安装并升级Python2.7或以上!!!如果系统自带的是2.7版本以下的,以下是升级方法!

#上传Python-2.7.15.tgz文件到 /home/tools/ 中

[root@storm01 home]# cd tools/

[root@storm01 tools]# rz

#上传完后将其解压到 /home/softwares/ 中
 

[root@storm01 tools]#  tar -zxf Python-2.7.15.tgz -C ../softwares/

[root@storm01 tools]# cd /home/softwares/Python-2.7.15/

#接着进行配置阶段

[root@storm01 Python-2.7.15]# ./configure

#执行成功之后,进行编译和安装阶段

[root@storm01 Python-2.7.15]# make && make install

#等待一会的时间即可,如果编译时可能会出现没有gccgcc-c++编译器,需要安装以下

[root@storm01 Python-2.7.15]# yum install gcc

[root@storm01 Python-2.7.15]# yum install gcc-c++

#安装好python2.7.15后,然后将原来默认版本python2.6备份起来,并且将yum配置进行修改,否则执行yum命令时候会出现问题,操作如下:

[root@storm01 Python-2.7.15]# mv /usr/bin/python /usr/bin/python2.6.6

[root@storm01 Python-2.7.15]# ln -s /usr/local/bin/python2.7 /usr/bin/python

[root@storm01 Python-2.7.15]# vim  /usr/bin/yum

#进入文档后,将第一行#!/usr/bin/python2.6改为#!/usr/bin/python2.6.6

以上步骤操作完后,就可以查看当前python的版本了:

输入命令python -V或者python --version

!!!若出现错误,再进行以下步骤(若正常跳过此步骤)

vim /etc/ld.so.conf,添加新的一行内容/usr/local/lib 然后保存退出

/sbin/ldconfig

/sbin/ldconfig -V

最后可以执行python,是否正常进入交互

这样就升级成功!!!

准备工作结束!!!

 

 

 

部署Storm集群主要步骤:

下面是搭建一个 Storm 集群需要依次完成的安装步骤:

  1. 搭建 Zookeeper 集群
  2. 在主控节点和工作节点服务器上安装 Storm 依赖软件
  3. 在主控节点和工作节点服务器上安装 Storm
  4. 修改 storm.yaml 配置文件

启动 Storm 各后台进程

搭建zookeeper集群,对于三台虚拟机storm01、storm02、storm03都进行如下操作(除了特殊说明外,内容都一样)

#上传zookeeper-3.4.13.tar.gz文件到 /home/tools/ 中

[root@storm01 home]# cd tools/

[root@storm01 tools]# rz

#上传完后将其解压到 /home/softwares/ 中

[root@storm01 tools]#  tar -zxf zookeeper-3.4.13.tar.gz -C ../softwares/

[root@storm01 tools]# cd /home/softwares/zookeeper-3.4.13/

#创建几个文件夹,后面配置环境时需要

[root@storm01 zookeeper-3.4.13]# mkdir zkdata

[root@storm01 zookeeper-3.4.13]# mkdir logs

#获取以下文件夹的路径,用于后面的配置文件的修改

[root@storm01 zookeeper-3.4.13]# cd conf

#将其中的文件zoo_sample.cfg复制为文件zoo.cfg

[root@storm01 conf]# cp zoo_sample.cfg zoo.cfg

#修改配置文件zoo.cfg

[root@storm01 conf]# vim zoo.cfg

#打开文档后,修改并添加以下红框中的内容:

【说明】:dataDir 指定 Zookeeper 的数据文件目录 server.id=host:port:port,id 是为每个 Zookeeper 节点的编号,保存在 dataDir 目录下的 myid 文件中,storm01、storm02、storm03表示各个 Zookeeper 节点的 hostname,第一个 port 是用于连接 leader 的端口,第二个 port 是用于 leader 选举的端口。

 

 

#根据zoo.cfg三台虚拟机分别创建创建myid

storm01(1号节点):

storm02(2号节点):

storm03(3号节点):

【说明】:conf/zoo.cfg 文件中的 dataDir 参数指定目录下创建 myid 文件,里面内容为一个数字,用来 标识当前主机,conf/zoo.cfg 文件中配置的 server.X 中 X 是什么数字,则 myid 文件中就输入 这个数字

 

 

#配置zookeeper环境变量

#获取以下文件夹的路径,用于环境变量的配置

[root@storm01 zookeeper-3.4.13]# pwd

/home/softwares/zookeeper-3.4.13

[root@storm01 zookeeper-3.4.13]# vim /etc/profile

#打开文档后,在末尾添加如下内容:

export ZOOKEEPER_HOME=/home/softwares/zookeeper-3.4.13

export PATH=$PATH:$ZOOKEEPER_HOME/bin

#刷新文档

[root@storm01 zookeeper-3.4.13]# source /etc/profile

#启动zookeeper服务,命令为:zkServer.sh start

#查看启动后的状态属性,命令为:zkServer.sh status

!!!注意:可以输入命令jps查看进程

                      停止服务的命令为:zkServer.sh stop

 

 

 

搭建storm集群,对于三台虚拟机storm01、storm02、storm03都进行如下操作(除了特殊说明外,内容都一样)

#上传apache-storm-0.9.2-incubating.tar.gz文件到 /home/tools/ 中

[root@storm01 home]# cd tools/

[root@storm01 tools]# rz

#上传完后将其解压到 /home/softwares/ 中

[root@storm01 tools]#  tar -zxf apache-storm-0.9.2-incubating.tar.gz -C ../softwares/

[root@storm01 tools]# cd /home/softwares/apache-storm-0.9.2-incubating/

#获取以下文件夹的路径,用于环境变量的配置

[root@storm01 apache-storm-0.9.2-incubating]# pwd

/home/softwares/apache-storm-0.9.2-incubating/

#打开环境变量配置文件

[root@storm01 apache-storm-0.9.2-incubating]# vim /etc/profile

#在文档末尾添加如下内容:

export STORM_HOME=/home/softwares/apache-storm-0.9.2-incubating

export PATH=$PATN:$STORM_HOME/bin

#刷新文档

[root@storm01 apache-storm-0.9.2-incubating]# source /etc/profile

#新建存储状态文件夹,用于后面的配置

[root@storm01 apache-storm-0.9.2-incubating]# mkdir status

#获取其路径

[root@storm01 status]# pwd

/home/softwares/apache-storm-0.9.2-incubating/status

#修改storm的配置文件storm.yaml,

打开文件方法有两种:

①直接命令打开

vim /home/softwares/apache-storm-0.9.2-incubating/conf/storm.yaml

②用Notepad++连接需要操作的虚拟机,在右边的文件目录中找到storm.yaml文件,打开(这种方法,编辑时更加方便,不容易误删信息)

打开后,需要修改添加的内容如下:!!!注意:开头空一格,没有顶格写

 storm.zookeeper.servers:
     - "storm01"
     - "storm02"
     - "storm03"
 nimbus.host: "storm01"
 storm.local.dir: "/home/softwares/apache-storm-0.9.2-incubating/status"
 supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703

【说明】:

storm.zookeeper.servers: Storm 集群使用的 Zookeeper 集群地址。 storm.local.dir: Nimbus 和 Supervisor 进程用于存储少量状态,如 jars、confs 等的本地磁盘目 录,需要提前创建该目录并给以足够的访问权限。然后在 storm.yaml 中配置该目录。 nimbus.host: Storm 集群 Nimbus 机器地址,各个 Supervisor 工作节点需要知道哪个机器是 Nimbus,以便下载 Topologies 的 jars、confs 等文件。 supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker 数量。每个 worker 占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是 可被 worker 使用的。默认情况下,每个节点上可运行 4 个 workers,分别在 6700、6701、 6702 和 6703 端口。

 

 

启动storm,执行如下命令,storm03命令同storm02

 

#三台虚拟机都完成了以上操作后,启动storm集群并检查相应进程:jps

 

#通过浏览器登录监控UI页面,查看监控属性(http://{nimbus host}:8080),观察集群的 worker 资源使用情况、 Topologies 的运行状态等信息。

至此,storm集群搭建完成!

storm集群的常用操作命令:

列出 Storm Topology:storm list

停止 Storm Topology:storm kill {topologyname}

提交 Storm Topology:storm jar mycode.jar storm.MyTopology arg1 arg2 ...        mycode.jar:包含 Topology 实现代码的 jar 包

storm.MyTopology:main 方法的入口,即 main 方法所在类名

arg1、arg2 等为 main 方法参数

 

 

Storm集群上的一个运行实例见https://blog.csdn.net/zytmaster/article/details/101316648

 

 

 

 

 

 

 

 

 

 

 


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值