起源背景html
Ps:·Hadoop分布式存储和分布式计算两个难题所有解决了。可是缺点就是不能实时处理数据,Storm的做者就像写一个这样实时数据处理场景的框架出来java
主从架构:简单高效,单主节点存在单点问题
HDFS\YARN\Storm\Hbase\Spark\Flinknode
对称架构:复杂,效率较低,无单点问题,更加可靠
Zookeeper\Kafka [会进行主节点的选举]python
Storm的主从架构linux
Nimbus—zookeeper--supervisor程序员
Storm组件:Nimbusapache
接收客户端的topo代码,拆分红多个task,将task信息存入zk,并将task分配给Supervisor,将映射关系存入ZK,并进行故障检测vim
类比:部门经理将需求拆分为 多个任务(每一个任务有多个模块) 将这些任务写入项目文档中去,,并将每一个任务与每一程序员进行对应服务器
Storm组件:Supervisor架构
Storm 组件:Worker
Storm组件:Zookeeper
动手实践
简介:
Zookeeper是一个开源的分布式协调服务的框架,使各个机器进行之间进行通讯
文件系统:
相似于linux的文件系统目录结构,从根目录(/)开始
1.每个目录都是一个znode节点
2.每个znode节点可直接存储数据
3.类型:持久化,持久化顺序,临时,临时顺序
通知机制:
下载:直接去官网:zookeeper.apache.org或CDH5进行下载
/opt/soft [下载位置]
/opt/module 【解压位置】
下载 .tar.gz
解压 tar –zxvf tar.gz –C /apps
解压后的主要目录结构:
bin:包含
conf:包含
在解压后的目录新建一个data的目录用于存放zk的数据
将$ZK_HOME/data 替换conf/zoo.cfg 中的dataDir
启动bin/zkServer.sh start
Jps
Or
bin/zkServer.sh status
去链接zk服务器
bin/zkCli.sh
这样会链接本地的zk服务器‘
里面的操做相似于linux的操做
输入ls
查看根目录有什么 ls /
查看目录下面的数据 get /
建立目录 create /test 111
查看数据 get /test 获得111
修改数据 set /test 222
再次查看: get /test 获得222
删除数据rmr /test
再次查看 ls / 无test目录
启动三个机器
配置第一台
步骤一:在单机的基础(解压后修改dataDir的目录)上,添加配置项
server.
2888端口 服务器之间是须要进行数据的同步的
3888端口 集群在启动的时候进行选举Nimbus节点
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
步骤二:
在$ZK_HOME/data 目录下 新建文件myid 用于存储这个id
Vim $ZK_HOME/data/myid 写入1 :wq便可
步骤三:拷贝第一台服务器到其他两台服务器上面去
Scp –r zookeeper-3.4.5/ root@192.168.1.2:/opt/module
便可
在这以前能够配置ssh的免密码登陆
拓展:
1.HOSTNAME主机名:vim /etc/sysconfig/network
2.配置ip与主机名之间的映射关系
Vim /etc/hosts
192.168.1.1 hadoop001
192.168.1.2 hadoop002
192.168.1.3 hadoop003
启动zk集群
在每一台上面都要进行启动,bin/zkServer.sh start
Bin/zkServer.sh status 状态为:leader 主节点
Bin/zkServer.sh status 状态为:follower 从节点
ZKcli从1-2-3
192.168.1.1可使用bin/zkCli.sh -server 192.168.1.2:2181
进入以后,connect 192.168.1.3:2181
单机环境的安装配置
下载啊storm.apache.org 或CDH5 1.1.0 ,1.2.1等版本
解压 tar –zxvf storm.tar.gz –C /opt/module
Storm的启动是须要依赖于zookeeper服务的
在这以前,先使用单个zk服务(单节点)
Storm解压后的目录
bin 包含
Conf 包含
启动主节点
bin/storm nimbus &
启动从节点
bin/storm supervisor &
启动UI
bin/storm ui &
启动日志
bin/storm logviewer &
ps:nohup java –jar hh.jar &
nohup + & 客户端和虚拟机是不须要保持链接的,即当前输入的命令界面是能够进行关闭的
Storm性能调优
为了解决数据不一致的问题,咱们先把zookeeper的data目录下先删除,保持一致
每一个机器上执行
rm –rf $ZK_HOME/data
mkdir $ZK_HOME/data
vim $ZK_HOME/data/myid 写入相应的
每一个机器上启动zookeeper
bin/zkServer.sh start
开始配置storm的单机环境为集群环境配置
Vim #STORM_HOME/conf/storm.yaml
storm.zookeeper.servers:
就简单作这样的操做就 能够了
接着 拷贝storm文件到其他的机器上面去
就能够启动storm了
启动主节点【第一台机器上】
Nohup bin/storm nimbus &
启动从节点【第二台机器上】
Nohup bin/storm supervisor &
启动UI
能够在第一台 也能够在第二台上面
nohup bin/storm ui
WebUI查看:
192.168.1.2:8080/index.html
这里能够作节点故障转义的实验
更多文章 Storm构建实时流处理 https://blog.csdn.net/liuge36/article/category/8004011