Storm集群环境搭建详解(附实例)

  • 目的

   1> 熟悉分布式大数据流式处理的概念和常用技术;

   2> 了解开源分布式流式处理平台 Storm 的相关知识;

   3> 掌握 Linux 下的 Storm 安装步骤、配置方法和运行管理;

   4> 测试 Storm 相关实例参数以及各种指标。

  • 内容

   1> 请先阅读本地搭建详解 https://blog.csdn.net/u013234360/article/details/101647802,在此基础之上完成集群环境搭建;

   2> 完成 WordCountTopology 实例运行。

  • 准备 

   1> 相关包下载链接:https://cloud.tsinghua.edu.cn/d/9ca8781ab69f45c6882d

   2> ubuntu20 操作系统下载链接:http://releases.ubuntu.com/focal/ubuntu-20.04.1-desktop-amd64.iso

  • 步骤

   1> 准备三台虚拟机(ubuntu20版本64bit)ip 分别192.168.209.143、192.168.209.144、192.168.209.145对应 master、slave1、slave2(具体以个人为准),执行命令 vim /etc/hosts 配置所有主机名称和对应 ip 到文件中(每台机器都要配置);

# 主机ip请根据查询到的为主
192.168.209.143 master
192.168.209.145 slave1
192.168.209.144 slave2

   2> 执行命令 : ping slave1 或其他主机检查是否配置成功(最好每台机器都检查下);

>> ping master
>> ping slave1
>> ping slave2

   3> 在 master 上执行命令 : ssh-keygen -t rsa 出现提示按回车即可,进行免密配置,并在 master 上执行命令 : ssh-copy-id master 拷贝秘钥到集群主机中,包括主机节点;

>> ssh-keygen -t rsa
>> ssh-copy-id master
>> ssh-copy-id slave1
>> ssh-copy-id slave2

   免密配置后打开22端口,可通过ssh检查是否可以访问(此步非必须):

>> sudo apt-get install openssh-server
>> sudo ufw enable
>> sudo ufw allow 22

   

   

   4> 在本地 Zookeeper 搭建完成基础上,添加如下配置到文件 zoo.cfg 中并保存(每台机器都要配置);

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

   master、slave1、slave2可分别写成如下(此步非必须):

server.1=0.0.0.0:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
server.1=master:2888:3888
server.2=0.0.0.0:2888:3888
server.3=slave2:2888:3888
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=0.0.0.0:2888:3888

   5> 本地 Zookeeper 搭建时已经创建了dataDir、dataLogDir 文件夹,此时,需要在 dataDir 文件夹中创建 myid (文件里值,写上一步server.后面那个数字);

   要注意权限是用户权限,非root权限,所需要修改如下:

>> sudo chown leeway myid
>> sudo chgrp leeway myid

   6> 执行命令 : zkServer.sh start 启动 Zookeeper(每台机器都要启动);

>> zkServer.sh start

   7> 查看执行 Jps 启动是否成功,若不成功可以去bin目录下查看报错日志(若报 Connect 问题,需等其他机器启动成功,Reconnect 后可访问2888和3888端口);

>> jps|grep -v JPS

   

   可以通过 netstat -anp | grep 2888 或 3888 查看是否端口启动,若成功启动如下:

   

   若不成功,可放开2888和3888端口, 或直接关闭防火墙,关闭后状态为 inactive(关闭后无法ssh,不建议):

>> sudo iptables -I INPUT -p tcp --dport 2888 -j ACCEPT
>> sudo iptables -I INPUT -p tcp --dport 3888 -j ACCEPT
>> sudo iptables-save
>> sudo ufw disable
>> sudo ufw status
Status: inactive

   8> 在本地 Storm 搭建完成基础上,添加如下配置到 storm.yaml 文件中(每台机器都要配置)。

>> cd storm/conf
>> vim storm.yaml 
storm.zookeeper.servers:
      - "master"
      - "slave1"
      - "slave2"
storm.local.dir: "$STORM_HOME/status"
nimbus.seeds: ["master","slave1","slave2"]
supervisor.slots.ports:
      - 6700
      - 6701
      - 6702
      - 6703

   此处,启动时可能会在 $STORM_HOME 目录下新建一个名称为 $STORM_HOME 的文件夹,并在该目录下又新建 status 文件夹。
   解决方法:将"$STORM_HOME/status"替换为"/home/leeway/Documents/Storm/apache-storm-2.1.0/status"(具体以个人为准)。

   9> 在 $STORM_HOME 目录下,执行命令 : mkdir status 创建 storm 状态存储目录(每台机器都要创建);

>> mkdir status

   10> 运行 Storm(每台机器都要启动),启动后运行 jps|grep -v JPS 查看,并在浏览器访问 master:8080(启动成功后,访问页面如下);

nohup storm drpc > $STORM_HOME/storm_logs/drpc.log 2>&1 & nohup storm ui >$STORM_HOME/storm_logs/ui.log 2>&1 & nohup storm nimbus > $STORM_HOME/storm_logs/nimbus.log 2>&1 & nohup storm supervisor > $STORM_HOME/storm_logs/supervisor.log 2>&1 & nohup storm logviewer > $STORM_HOME/storm_logs/logviewer.log 2>&1 &

   

      

   11> 使用 maven 打包 storm-starter 内例子(打包成功后会在 ./target/ 文件夹中生成 storm-starter-2.1.0.jar 文件);

>> cd $STORM_HOME/examples/storm-starter
>> mvn package

   

   12> 运行 WordCountTopology 例子(运行成功提示如下);

>> cd $STORM_HOME/examples/storm-starter/target
>> storm jar storm-starter-2.1.0.jar org.apache.storm.starter.WordCountTopology word-count-test

      

   13> 在 Storm UI 内看到 WordCountTopology 例子正在运行;

   

   14> 在 Storm UI 中查看 WordCountTopology 详细情况;

   

   

   

   15> 停止 Storm,执行 jps|grep -v JPS 查找 PID;

27984 DRPCServer
27632 Kafka
22769 QuorumPeerMain
27985 UIServer
27986 Nimbus
27987 Supervisor
27988 LogviewerServer
27974 ZooKeeperMain

   16> 杀掉进程,Storm 运行结束。

>> kill -9 PID(上一步查到,可写多个)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值