zookeeper+jstorm的集群搭建

zookeeper的配置:

zookeeper有三种配置方式:单机式/伪分布式/集群式

其中伪分布式是在一台电脑上通过不同的端口来模拟分布式情形,需要N份配置文件和启动程序,而集群式是多个zookeeper程序。

首先通过sftp等方式获取tar包,解压到指定的目录:/usr/local/java 下,生成目录zookeeper-3.3.6;

配置环境变量(注意路径后面千万不要有空格,路径之前,与等号之间也不要有空格。):

vi /etc/profile
#zk
ZOOKEEPER_HOME=/usr/local/java/zookeeper-3.3.6
export PATH="$PATH:$ZOOKEEPER_HOME/bin"
export ZOOKEEPER_HOME
cd /zookeeper-3.3.6/conf
touch zoo.cfg 或 mv zoo-sample.cfg zoo.cfg
vi zoo.cfg
插入如下的内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/java/zookeeper-3.3.6/data
dataLogDir=/usr/local/java/zookeeper-3.3.6/logs
clientPort=4180
server.3=192.168.204.3:2888:3888
server.4=192.168.204.4:2888:3888
server.5=192.168.204.5:2888:3888
--其中节点数量大于虚拟机数量,文件路径一定要存在,不存在后面要创建,路径后面不能有空格
完成配置:Esc -> :wq
cd .. 到根目录
mkdir logs
mkdir data
需要在data下面建立一个myid问价,内容为server的编号,一定是本机的server编号
touch myid
vi myid
插入
主机对应的server号

基本配置就是这样,之后我们在另外两台虚拟机上执行同样的配置,zoo.cfg基本不变,但是myid要根据本机的ip映射的server编号来。同样路径不能有空格

依次启动三台虚拟机的zookeeper,zkServer.sh start 记住启动第一个的时候,会报错找不到后面的两个,这个不要紧,都启动就好了。

通过bin下面的命令:zkServer.sh status 查看状态,启动成功后会有节点是leader还是follower的标识,表示启动成功了。

中间遇到了一些问题,主要是无法启动,启动之后不能通信,找不到文件等。原因有:myid丢失,bin没有配置到path里,配置的logs文件夹没有建立,zoo.cfg中路径有空格,防火墙阻止等。

本来已经运行成功了,但是第二天过来的时候,又出问题了。表现是:

zhServer.sh start 启动之后,显示STARTED,并且后台的进程也在运行中,依次启动zk。jps命令也能看到 QuorumPeerMain 进程。明明已经启动成功了

但是zkServer.sh status 命令查看,却又报错:Error contacting service. It is probably not running 。

查看了许多资料啊,什么改hosts,检查myid,检查文件夹是否建立,但是没有针对性地改来改去,始终没有结果。而iptables命令,也显示invalid(我以为已经关闭了)

总结一下:报错的开始,并没有认真看报错日志,主要是网上有博客说启动的时候报错是正常的,因为其他节点没有启动。所以就没有继续深入了,然后各种漫无目的的瞎碰......

报错如下
java.net.NoRouteToHostException: No route to host(没有到主机的路由)
之后检查网络,端口,hosts,iptables都没有用。
随后发现centos7的防火墙不再是iptables了,变成firewall。我之前不停地
service iptables stop 命令并没有用。
最后通过:
--------------------------------------------------------------
centos7.0(默认是使用firewall作为防火墙,如若未改为iptables防火墙,使用以下命令查看和关闭防火墙)
查看防火墙状态:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
------------------------------------------------------------------
Ubuntu(ubuntu-12.04-desktop-amd64)
查看防火墙状态:ufw status
关闭防火墙:ufw disable
---------------------------------------------------------------
CentOS6.0
查看防火墙状态:service iptables status
关闭防火墙:chkconfig iptables off    #开机不启动防火墙服务

关闭了防火墙,于是不报错了。很简单的设置,但是却无效率地磨蹭了很长时间。(百度居然还有说status命令有问题)

另外,为了防止下次再捣乱,选择禁止开机启动: systemctl disable firewalld.service

命令敲完后:

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

这一步应该是从开机的加载项里去掉,实现禁止开机启动。如果以后有需要,再复制进去应该可以。

参考:【http://www.cnblogs.com/silent2012/archive/2015/07/28/4682770.html  】

所以,依次启动zkServer.sh start 显示启动成功,然后zkServer.sh status 显示:

[[email protected] bin]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/java/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: follower
[[email protected] bin]# jps
2473 QuorumPeerMain
2661 Jps

即为成功。记住报错一定要围着zookeeper.out.

其他问题:

1.终端始终连不上其中一台虚拟机,我以为哪里配置地不对,删除又重新克隆,重新配置,但还是不行,后来换了一个终端程序就好了,真是日了狗的心情。

无论是带UI还是不带UI的虚拟机命令行,都很难用。只有通过xShell工具来连接,可以很方便的编辑。

jstorm配置

jstorm 环境变量:

vi /etc/profile
插入
#jstorm
export JSTORM_HOME=/usr/local/java/jstorm-0.9.6
export PATH=$PATH:$JSTORM_HOME/bin

jstorm配置文件:

可 参考服务器上已配置好的文件,结合自己的集群,做一些修改即可。

########### These MUST be filled in for a storm configuration
 storm.zookeeper.servers:
     - "192.168.204.3"
     - "192.168.204.4"
     - "192.168.204.5"
 storm.zookeeper.root: "/jstorm"
 nimbus.host: "192.168.204.3"
# %JSTORM_HOME% is the jstorm home directory
 storm.local.dir: "%JSTORM_HOME%/data"

 java.library.path: "/usr/local/java/jstorm-0.9.6/lib:/usr/local/lib:/opt/local/lib:/usr/lib"
 supervisor.slots.ports:
    - 6800
    - 6801
    - 6802
    - 6803
# Default disable user-define classloader
# If there are jar conflict between jstorm and application,
# please enable it
 topology.enable.classloader: false
# enable supervisor use cgroup to make resource isolation
# Before enable it, you should make sure:
# 	1. Linux version (>= 2.6.18)
# 	2. Have installed cgroup (check the file‘s existence:/proc/cgroups)
#	3. You should start your supervisor on root
# You can get more about cgroup:
#   http://t.cn/8s7nexU
 supervisor.enable.cgroup: false
### Netty will send multiple messages in one batch
### Setting true will improve throughput, but more latency
 storm.messaging.netty.transfer.async.batch: true

### default worker memory size, unit is byte
 worker.memory.size: 2147483648
# Metrics Monitor
# topology.performance.metrics: it is the switch flag for performance
# purpose. When it is disabled, the data of timer and histogram metrics
# will not be collected.
# topology.alimonitor.metrics.post: If it is disable, metrics data
# will only be printed to log. If it is enabled, the metrics data will be
# posted to alimonitor besides printing to log.
 topology.performance.metrics: true
 topology.alimonitor.metrics.post: false
ui.clusters:
     - {
         name: "jstorm",
         zkRoot: "/jstorm",
         zkServers:
             [ "192.168.204.3","192.168.204.4","192.168.204.5"],
         zkPort: 2181,
       }

这里需要下载一下官方例子运行在UI 上,做测试,但是git却无法支持只clone其中example目录,这个正常的需求。简直失望

查看端口信息

netstat -ntulp |grep 80

ui.clusters:- {name: "jstorm",zkRoot: "/jstorm",zkServers:[ "192.168.204.3","192.168.204.4","192.168.204.5"],zkPort: 4180,      }topology.backpressure.enable: true 
supervisor.slots.ports.base: 6800supervisor.slots.port.cpu.weight: 1.2# supervisor.slots.port.cpu.weight: 0.5supervisor.slots.port.mem.weight: 0.7# supervisor.slots.port.mem.weight: 0.5supervisor.slots.ports: null

http://blog.csdn.net/morning99/article/details/40426133

http://my.oschina.net/bigsloth/blog/387297

http://blog.csdn.net/zzu09huixu/article/details/26452947

http://coolxing.iteye.com/blog/1871009

来自为知笔记(Wiz)

附件列表

时间: 2024-12-21 00:28:05

zookeeper+jstorm的集群搭建的相关文章

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭

Zookeeper简介与集群搭建

Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少量信息.Hadoop.Storm.消息中间件.RPC服务框架.分布式数据库同步系统,这些都是Zookeeper的应用场景. Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务. 客户端发起事务请求,事务请

2. zookeeper介绍及集群搭建

ZooKeeper 概述 Zookeeper 是一个分布式协调服务的开源框架. 主要用来解决分布式集群中 应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题. ZooKeeper 本质上是一个分布式的小文件存储系统. 提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理.从而用来维 护和监控你存储的数据的状态变化.通过监控这些数据状态的变化,从而可以达 到基于数据的集群管理. 诸如: 统一命名服务(dubbo).分布式配置管理(solr的配置集中管理).

阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里云ECS服务器:master, slave1, slave2 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz ZooKeeper: zookeeper-3.4.14.tar.gz 1.2 各节点角色

十分钟教你学会zookeeper安装和集群搭建(伪集群 )

1. zookeeper介绍 ZooKeeper是一个为分布式应用所设计的分布的.开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务.ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性. ZooKeeper是作为分布式协调服务,是不

solr +zookeeper+tomcat 集群搭建

最近需要搭建一个cloudSolr集群,写下记录.基础环境是在centos6.5 64bit 3个下载地址: 1. 下载Solr-4.x http://lucene.apache.org/solr/downloads.html 2.下载Tomcat http://tomcat.apache.org/download-70.cgi 3.下载Zookeeper http://zookeeper.apache.org/releases.html 1.zookeeper zookeeper的安装比较简单

zookeeper和hbase集群搭建

zookeeper与hbase分布式搭建 zookeeper集群 1.zookeeper,故名思意,就是动物园管理员的意思,Hadoop生态里面的东西基本上都是一些小动物的昵称,所以,就这么来了 这里接前篇的Hadoop分布式搭建,所有平台都搭建在/root/app目录下 (千万别学我用根用户弄,我是为了懒得敲sudo) 我们将下载的zookeeper安装包上传至虚拟机中,然后解压 tar -zxvf zookeeper-3.4.10.tar.gz 解压好了之后,我们建立两个文件夹,一个是zkd

zookeeper伪分布式集群搭建

1.去官网下载zookeeper,我这里用的是3.4.6版本的 2.下载完成解压缩到一个目录 3.因为是伪分布式,所以我创建了3个服务器文件夹,比如server1,server2,server3.每个服务器文件夹下都创建了data,dataLog,logs目录.然后把解压完成的zookeeper拷贝到每个服务器文件夹下面. 4.在每个data目录中创建myid文件,里面写上一个数字,比如1,2, 3,server1就对应1.server2就对应2.server3对应3.这个数字不能重复.表示是服

dubbo+Springmvc+zookeeper高可用集群搭建

核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 1.     项目核心代码结构截图    项目模块依赖 特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化 核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,