zookeeper+storm配置

zookeeper介绍

它是一个分布式服务框架,是Apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理、发布订阅、命名服务、分布式锁、分布式协调等;

Zookeeper 是分为服务端和客户端的, 客户端有 Java 的客户端, 有 Shell 命令行的客户端等, 客户端通过一个类似于文件系统的 API 来访问 Zookeeper 集群。

客户端最终是直接访问 Zookeeper 集群, 集群中有两大类角色, 一类是 Leader, 一类是 Follower, 其实就是主从, Leader 负责读和写, Follower 只能读, 遇到会产生修改的请求会转发给 Leader 处理, 这是因为 Zookeeper 本质上就是为了在分布式环境中对消息的一致性的支持, 而 Zookeeper 所基于的 ZAB 协议是 Paxos 协议的一个变种, ZAB 协议中是有一个全局的事务生成者, 就是 Leader, 修改设计到在分布式环境下对事务达成一致, 必须由 Leader 发起

比如说一个常见的分布式主从系统, 如果有 ZK 在的话, 主节点不需要和每个从节点保持连接, 只需要监听从节点创建的 Znode, 便可以知道谁在线

storm介绍

Storm用来实时处理数据,特点:低延迟,高可用,分布式,可扩展,数据不丢失,提供简单容易的接口,便于开发。它的主(nimbus),从(supervisor)。

storm和zookeeper的关系:
所有的supervisor会将自己的节点信息写至Zookeeper,之后nimbus会从Zookeeper上获取到supervisor的信息,再将topology里的workers按照负载均衡的思想(分摊到多个操作单元上进行执行)分配至supervisor中,不过这个过程也是写入zookeeper中,而不是直接发送给supervisor,supervisor再从zookeeper上获取任务信息。

storm和hadoop的区别:

1)storm用于实时计算,hadoop用于离线计算

2)storm处理的数据保存在内存中,源源不断,hadoop处理的数据保存在文件系统中,一批一批

3)storm的数据通过网络传输进来,hadoop的数据保存在磁盘中

一、zookeeper配置

1.zookeeper下载安装

http://archive.apache.org/dist/zookeeper/

解压到/usr中:

cd /usr/
tar -zxvf zookeeper-3.4.9.tar.gz

2.配置zookeeper集群

cd /usr/zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
mkdir -p /usr/zookeeper-3.4.9/zkdatas/

配置zoo.cfg:

vim zoo.cfg

添加:

dataDir=/export/servers/zookeeper-3.4.9/zkdatas
#保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
#本机地址为0.0.0.0;其他最好用ip
server.1=0.0.0.0:2888:3888
server.2=192.168.233.76:2888:3888
server.3=192.168.233.27:2888:3888
server.4=192.168.233.80:2888:3888
server.5=192.168.233.248:2888:3888

3.添加myid配置

主机上:
echo 1 > /usr/zookeeper-3.4.9/zkdatas/myid

发送前改权限:chown -R hadoop:hadoop /usr/zookeeper-3.4.9

发送到其他机子上:
scp -r /usr/zookeeper-3.4.9/ 192.168.233.76:/usr/

其他机子也必须改相应的myid,比如第二台就是2。

4.启动zookeeper及查看启动状态

第一次启动最好都用root

/usr/zookeeper-3.4.9/bin/zkServer.sh start

全部机子启动后,再一各个查leader/usr/zookeeper-3.4.9/bin/zkServer.sh status
(因为leader和follower需要选举,所以得全部启动完才能用这个指令)

5.启动异常

一个个开启zookeeper节点,查看zookeeper.out日志可能会出现
Cannot open channel to 4 at election address,
这个错误一般是正常的,因为zookeeper没有全部启动完监测连接不通。

二、storm安装配置

1.storm下载安装

cd /home/share/apps
tar -zxvf apache-storm-2.1.0.tar

2.storm配置

cd /home/share/apps/apache-storm-1.0.0/
 vim conf/storm.yaml

添加:

 storm.zookeeper.servers:
     - "192.168.233.68"
     - "192.168.233.76"
     - "192.168.233.27"
     - "192.168.233.80"
     - "192.168.233.248"

 storm.local.dir: "/home/share/apps/apache-storm-2.1.0/status"


 nimbus.seeds: ["192.168.233.68"]



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

注:(这些配置前都要空一格,:后也要空一格)(status文件夹是自己创建的,用来保存zookeeper保存的各个服务器的状态)

3.设置环境变量

vim /etc/profile

添加:

#set storm path
export STORM_HOME=/home/share/apps/apache-storm-2.1.0/
export PATH=$PATH:$STORM_HOME/bin

4.启动nimbus和storm ui

在master上,启动nimbus:nohup storm nimbus &

,启动storm ui:nohup storm ui &

在slaves上,启动supervisor:nohup storm supervisor &

注:出错可以查看nohup.out日志

5.将storm发给其他用户

和zookeeper差不多,也可以共享在一个文件里面,其他集群打开,要注意/etc/profile中的路径修改

6.jps查看并访问ui页面

在master上开启http://192.168.233.68:8080/:

links http://192.168.233.68:8080/

,links这个linux自带的浏览器渲染有问题,读取不了数据,所以大家还是在window上用vpn
连上linux账号,用window上的火狐、谷歌浏览器登录stormui管理。可以试试在linux下个火狐,不知道行不行。

7.遇到nimbus无启动,查看logs里面的nimbus.log

如果nimbus.log是找不到libstdc++.so.6
解决方案如下:

yum whatprovides libstdc++.so.6

查看支持版本:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: mirrors.163.com
 * updates: mirrors.163.com
libstdc++-4.8.5-39.el7.i686 : GNU Standard C++ Library
Repo        : base
Matched from:
Provides    : libstdc++.so.6

安装相应版本
yum install libstdc++-4.8.5-39.el7.i686

8.验证storm的例子

验证例子:https://www.cnblogs.com/freeweb/p/5242099.html
没验证成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值