zoukankan      html  css  js  c++  java
  • 【笔记】虚拟机安装jstorm并运行demo

    本地虚拟机搭建zk环境,安装jstorm,并运行一个简单的jstorm demo。

    步骤:

    1.安装jdk,python,配置zookeeper。

    2.配置jstorm,安装jstorm UI。

    3.启动jstorm。

    详细步骤:

    1.安装jdk,配置zookeeper。

    (1)安装jdk

    启动zk需要java1.8,启动jstorm需要java1.7

    先配置jdk1.8 (解压命令tar zxvf / tar -xvf)

    vi /etc/profile

     

     让配置生效

    source /etc/profile

     

    (2)zk安装配置

    由于机器不足,所以在一台机器部署3个server,建立3个目录

     把zk安装包放进这三个server目录并解压

    每个zkserver目录都创建data,dataLog,logs

    进入每个data目录,创建myid文件,里面写入server对应的数字,例如这个是server1,就写1,另外两个分别写2,3

    分别进入3个zkserver的apache-zookeeper-3.7.0-bin/conf目录,把zoo_sample.cfg改为zoo.cfg,并修改zoo.cfg

     

     

    由于是部署在1台机器上所以
    clientPort端口三个server不能一样
    server1是2181,
    server2是2182,
    server3是2183,
    dataDir和dataLogDir也需要区分下。 最后几行唯一需要注意的地方就是 server.X 这个数字就是对应 data/myid中的数字。
    之前在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3。
    因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中
    第一个端口用来集群成员的信息交换,
    第二个端口是在leader挂掉时专门用来进行选举leader所用

    修改log4j.properties文件,使zookeeper能输出日志文件,注意每个server的路径不同

    log4j.rootLogger=INFO, CONSOLE,ROLLINGFILE
    log4j.appender.ROLLINGFILE.File=/opt/storm/zkserver1/logs/zookeeper.log

    进入apache-zookeeper-3.7.0-bin/bin目录, ./zkServer.sh start启动一个server

    (启动之前先把相关端口开放,如2181、2182、2183、22、2888、2889、2890、3888、3889、3890、6700、6701、6702、6703、8080等,开放端口方法见文末)

    然后我们把剩下两个zk也启动

    2.配置jstorm,安装jstorm UI。

    Storm解压后,需要先创建workdir目录 , mkdir  /opt/storm/storm/workdir
    storm.yaml配置文件如下,需要注意的是每个配置项需要以空格开头,否则程序读不出来

     

     

     

    storm.zookeeper.servers:Storm集群使用的Zookeeper集群地址

    storm.zookeeper.port:zookeeper端口不使用默认端口是配置该项

    storm.local.dir:Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限

    nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件

    supervisor.slots.ports:对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口

    3.启动jstorm。

     由于使用虚拟机无法多开窗口,所以可以通过windows的cmd命令窗口远程连接虚拟机(多开几个cmd窗口)

    最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。

    以下是启动Storm各个后台进程的方式:(本文 没设置好在UI 前台查看相关信息,故UI没起)

    启动之前先切换jdk1.8环境变量

    vi /etc/profile

    使变量生效

    source /etc/profile

    在启动supervisor时可能会启不来,所以需要检查配置文件

    cd /etc/hosts      加入如下配置:
    192.168.238.132 storm
    其中storm为主机名(hostname)

    注意:如果主机名是localhost,会影响nimbus的启动,需要修改主机名

    Nimbus: 在Storm主控节点上运行"./jstorm nimbus >/dev/null 2>&1 &"启动Nimbus后台程序,并放到后台执行;

    Supervisor: 在Storm各个工作节点上运行"./jstorm supervisor >/dev/null 2>&1 &"启动Supervisor后台程序,并放到后台执行;

    UI: 在Storm主控节点上运行"./storm ui >/dev/null 2>&1 &"启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。

    启动tomact:

    最后启动jstorm的demo

    进入日志目录查看日志结果

    前台看结果:(Tomcat配置的9000端口,所以地址栏后面端口是9000)

     

    总结:

    1. 配置Java、Tomcat环境,zk启动需要Java1.8,jstorm启动需要Java1.7.

    2. 相关端口需要开放,可以直接关闭防火墙。

    3. 报错的话直接看日志,看不懂就拿报错信息百度。

     本文使用的相关代码及配置文件:https://gitee.com/jiangfenli/jstorm-demo.git

    部分内容参考博客:Centos7安装JStorm2.1.1_程序员小董的专栏-CSDN博客

    开启相关端口参考博客:centos7虚拟机开启端口_清晨0001的博客-CSDN博客

  • 相关阅读:
    iOS 针对txt文档进行解码
    iOS导入其他APP下载的文件(用其他应用打开)
    地图定位
    NSURLSession
    利用box-shadow属性实现页面层叠效果
    利用vue-router和compoment重构代码--踩坑(一)
    markdown 一分钟入门
    webpack,配置,上手,例子
    在搜索框里添加放大镜的图标,且显示提示信息
    css3实现checkbox变开关按钮
  • 原文地址:https://www.cnblogs.com/jiangfenli/p/15092109.html
Copyright © 2011-2022 走看看