Flume分布式日志系统(二):flume使用ZooKeeper
默认情况下Flume在内存中保存各个节点的配置,重启后丢失,可以使用ZooKeeper保存各个节点配置信息。cloudera的rpm仓库安装在前面的文章中,ZooKeeper使用三台服务器对应信息如下192.168.255.132 test01.linuxjcq.com
192.168.255.133 test02.linuxjcq.com
192.168.255.134 test03.linuxjcq.com
三台都执行相同的操作
1. 安装ZooKeeper
yum install hadoop-zookeeper hadoop-zookeeper-server
2. 安装配置文件
a. 复制配置文件
cp -r /etc/zookeeper.dist /etc/zookeeper.my_cluster
b. 查看原来的配置
alternatives --display hadoop-zookeeper-conf
hadoop-zookeeper-conf - status is auto.
link currently points to /etc/zookeeper.dist
/etc/zookeeper.dist - priority 30
c. 安装新的zookeeper.my_cluster,并查看结果
alternatives --install /etc/zookeeper /etc/zookeeper.my_cluster 50
alternatives --display hadoop-zookeeper-conf
2. 修改配置文件
需要设置数据目录和各个机器间的相关信息
[*]vi /etc/zookeeper/zoo.cfg
[*]dataDir=/data/zookeeper
[*]
[*]server.0=test01.linuxjcq.com:2887:3887
[*]server.1=test02.linuxjcq.com:2888:3888
[*]server.2=test03.linuxjcq.com:2889:3889
server.id=host:port:port标识不同的ZooKeeper服务器
dataDir指定了数据存放的目录为/data/zookeeper,创建相应的目录,并修改拥有者为zookeeper(这个用户为yum安装zookeeper软件时创建的账户)
mkidr /data/zookeeper
chown -R zookeeper:zookeeper /data/zookeeper
需要在每个服务器的数据目录中(这边为/data/zookeeper)创建myid文件,文件的内容为server.id=host:port:port对应的server.id中的id,标识各个zookeeper服务器
[*]vi /data/zookeeper/myid
[*]# 值为各个服务器对应的server.id中的id
[*]id
3. 启动zookeeper
service hadoop-zookeeper-server start
执行jps可以看到启动的服务
jps
1684 QuorumPeerMain
4. 配置flume分布式日志系统中所有的master节点
[*]vi /etc/flume/conf/flume-site.xml
[*]
[*] flume.master.store
[*] zookeeper
[*] How the Flume Master stores node configurations. Must
[*] be either 'zookeeper' or 'memory'.
[*]
[*]
[*]
[*] flume.master.zk.use.external
[*] true
[*]
[*]
[*]
[*] flume.master.zk.servers
[*] test01.linuxjcq.com:2181,test02.linuxjcq.com:2181,test03.linuxjcq.com:2181
[*]
flume.master.store:
master配置存储方式(zookeeper/memory) zookeeper保证master的配置在多master节点之间同步,memory则保存在内存中,其配置随着master重启或宕机而丢失;
flume.master.zk.servers:
使用的zookeeper服务器列表。
重启flume-master和flume-node
service flume-master restart
service flume-node restart
页:
[1]