Storm本地环境搭建详解(附实例)

  • 目的

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

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

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

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

  • 内容

   1> Java、Python、Maven、Zookeeper、Kafka、Storm 环境配置;

   2> Zookeeper、Kafka、Storm 启动;

   3> WordCountTopology 和 KafkaSpoutTopology 实例运行。

  • 准备 

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

  • 步骤

   1> 安装 Java、Python;可以直接工具安装,也可以下载解压缩配置环境变量,链接中有 MacOS 和 Linux 版本的 Java8,配置环境变量不做详细阐述;

>> sudo apt-get install java python

   2> 将 apache-maven-3.6.2-bin.tar、zookeeper-3.4.14.tar、kafka_2.12-2.3.0.tar、apache-storm-2.1.0.zip 分别解压到(/Documents/Storm/) 文件夹中;

>> tar -zxvf apache-maven-3.6.2-bin.tar
>> tar -zxvf zookeeper-3.4.14.tar
>> tar -zxvf kafka_2.12-2.3.0.tar
>> tar -zxvf apache-storm-2.1.0.zip

   3> 配置 ZOOKEEPER_HOME、STORM_HOME、MAVEN_HOME、KAFKA_HOME 环境变量,执行. /etc/profile 生效;

>> sudo vim /etc/profile
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home"
CLASS_PATH="$JAVA_HOME/lib"
export ZOOKEEPER_HOME="$HOME/Documents/Storm/zookeeper-3.4.14"
export STORM_HOME="$HOME/Documents/Storm/apache-storm-2.1.0"
export MAVEN_HOME="$HOME/Documents/Storm/apache-maven-3.6.2"
export KAFKA_HOME="$HOME/Documents/Storm/kafka_2.12-2.3.0"
PATH=".$PATH:$JAVA_HOME/bin:$STORM_HOME/bin:$ZOOKEEPER_HOME/bin:$MAVEN_HOME/bin:$KAFKA_HOME/bin"
>> . /etc/profile

   4> 在 $ZOOKEEPER_HOME 目录下创建 dataDir、dataLogDir 文件夹;

>> mkdir -p dataDir & mkdir dataLogDir

   5> 配置 Zookeeper 的 zoo.cfg 文件(将 conf 中 zoo_sample.cfg 配置好放在该目录下改名为 zoo.cfg);

syncLimit=5

dataDir=$ZOOKEEPER_HOME/dataDir
dataLogDir=$ZOOKEEPER_HOME/dataLogDir

clientPort=2181

   此处,启动时可能会在 $ZOOKEEPER_HOME 目录下新建一个名称为 $ZOOKEEPER_HOME 的文件夹,并在该目录下又新建 dataDir 和 dataLogDir 文件夹。
   解决方法:将"$ZOOKEEPER_HOME"替换为"/home/leeway/Documents/Storm/zookeeper-3.4.14"。

   6> 开启 Zookeeper 服务,并查看 Zookeeper 状态;

>> cd $ZOOKEEPER_HOME/bin
>> zkServer.sh start
>> zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /Users/Documents/Storm/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone

   7>  添加 Kafaka 主题 kafka-spout-test(根据 KafkaSpoutTopology 代码);

>> ./kafka-topics.sh --zookeeper localhost:2181 --create --topic kafka-spout-test --replication-factor 1 --partitions 1

   8> 开启 Kafka 服务,并重新打开一个终端; 

>> cd $KAFKA_HOME
>> bin/kafka-server-start.sh config/server.properties & 

   9> 配置 storm.yaml 文件(注意冒号:后面空格);

>> cd $STORM_HOME/conf
>> vi storm.yaml
#集群主机地址、nimbus 节点地址、本地状态存储路径、slot端口等
storm.zookeeper.servers:
     - "127.0.0.1"

nimbus.seeds: ["127.0.0.1"]

storm.local.dir: "$STORM_HOME/status"

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

supervisor.childopts: -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=9998

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

   10> 创建 Storm 服务组件相关输出文件,将 Stdio 重定向至输出文件;

>> cd $STORM_HOME
>> mkdir storm_logs
>> cd storm_logs
>> touch drpc.log
>> touch ui.log
>> touch nimbus.log
>> touch supervisor.log
>> touch logviewer.log

   11> 运行 Storm;

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 &

   12> 查看当前 Jps 状态; 

>> jps|grep -v Jps
27984 DRPCServer
27632 Kafka
22769 QuorumPeerMain
27985 UIServer
27986 Nimbus
27987 Supervisor
27988 LogviewerServer
27974 ZooKeeperMain

   13> 浏览器访问 127.0.0.1:8080 (Storm UI);

   14> 使用 maven 打包 storm-starter和storm-kafka-client-examples 内例子(./target/ 中);

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

   15> 运行 WordCountTopology 和 KafkaSpoutTopology 例子;

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

   16> 在 Storm UI 中查看 WordCountTopology 和 KafkaSpoutTopology 的 Topology情况;

   17> 停止 Storm,查找 Jps(或端口号)PID,杀掉进程,Storm 运行结束;

27984 DRPCServer
27632 Kafka
22769 QuorumPeerMain
27985 UIServer
27986 Nimbus
27987 Supervisor
27988 LogviewerServer
27974 ZooKeeperMain
>> kill -9 PID(上一步查到,可写多个)

   18> Could not find leader nimbus from seed hosts ["127.0.0.1"] 解决办法:打开一个终端启动 Zookeeper。打开另外一个终端,进入 Zookeeper 客户端,删除 Zookeeper 下的 Storm 节点数据,重启即可。 

>> cd $ZOOKEEPER_HOME/bin
>> ./zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[storm, zookeeper]
[zk: localhost:2181(CONNECTED) 1] rmr /storm
[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 3] 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值