zookeeper集群

kafka 入门

让人想犯罪 __ 提交于 2019-12-02 14:56:59
Apache kafka kafka 是一个分布式的基于发布订阅的消息队列,主要应用于大数据实时处理领域。 什么是消息系统 消息系统负责将数据从一个应用程序传输到另一个应用程序,分布式消息传递基于可靠消息队列的概念。有两种类型的消息模式可用,一种是点对点, 另一种是 发布-订阅(pub-sub)消息系统,大多数是遵循 pub-sub 点对点系统, 消息被保存在队列中,一个或者多个消费者可以消耗队列中的消息,但是特定消息只能由某个消费者消费。一旦消费者读取队列中的消息,它 就从队列中消失。 发布-订阅消息系统, 在发布-订阅系统中,消息被保留在主题中,消费者可以订阅一个或者多个主题并使用主题中的消息。在 pub-sub 系统中,消息生产者成为发布者,消息使用者称为订阅者。 什么是 Kafka Apache Kafka 是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使消息从一个端点传递到另一个端点。Kafka 消息保留在磁盘上,并在集群内复制以防止数据丢失。 Kafka 的特带: 可靠性 kafka 是分布式的,分区,复制,容错 可扩展性 耐用性 性能 Kafka 工作流程 订阅具有相同 group id 的主题的消费者被认为是单个组,并且消息在他们之间共享。 pub -sub 工作流程 生产者定期向主题发送消息 kafka

【Zookeeper】利用zookeeper搭建Hdoop HA高可用

China☆狼群 提交于 2019-12-02 14:48:42
利用zookeeper搭建Hdoop HA高可用 HA概述 所谓HA(high available),即高可用(7*24小时不中断服务)。 实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。 Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。 NameNode主要在以下两个方面影响HDFS集群 ​ NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 ​ NameNode机器需要升级,包括软件、硬件升级,此时集群也将无法使用 HDFS HA功能通过配置Active/Standby两个nameNodes实现在集群中对NameNode的热备来解决上述问题。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过此种方式将NameNode很快的切换到另外一台机器。 HDFS-HA工作机制 ​ 通过双namenode消除单点故障 HDFS-HA工作要点 (1)元数据管理方式需要改变: ​ 内存中各自保存一份元数据; ​ Edits日志只有Active状态的namenode节点可以做写操作; ​ 两个namenode都可以读取edits; ​ 共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现); (2)需要一个状态管理功能模块 ​

Zookeeper客户端java代码操作

谁说胖子不能爱 提交于 2019-12-02 13:02:18
Zookeeper客户端java代码操作 上篇博客记录了shell命令操作zookeeper集群的方式,这次尝试采用java代码来操作。通过查阅API,发现并不困难。 1. 首先获得客户端与服务器的连接 //zookeeper客户端 private ZooKeeper zkCli; //连接地址 private static final String CONNECT_STRING = "hadoop102:2181,hadoop103:2181,hadoop104:2181"; //session过期时间 private static final int SESSION_TIMEOUT = 2000; /** * 创建客户端实例对象 * * @throws IOException */ @Before public void before() throws IOException { zkCli = new ZooKeeper(CONNECT_STRING, SESSION_TIMEOUT, (event) -> { System.out.println("默认的回调函数"); }); } 2. 列出根节点下的子节点(非递归) @Test public void ls() throws KeeperException, InterruptedException { List

HA高可用集群搭建

流过昼夜 提交于 2019-12-02 12:59:21
HA高可用集群搭建 1.总体集群规划 在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。 hadoop102 hadoop103 hadoop104 NameNode NameNode JournalNode JournalNode JournalNode DataNode DataNode DataNode ZK ZK ZK ResourceManager NodeManager NodeManager NodeManager 2.配置zookeeper集群 2.1 zookeeper集群规划 在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。 2.2 解压安装 (1)解压Zookeeper安装包到 /opt/module/ 目录下 [simon@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/ (2)在 /opt/module/zookeeper-3.4.10/ 这个目录下创建zkData mkdir -p zkData (3)重命名 /opt/module/zookeeper-3.4.10/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg mv zoo_sample.cfg

【面试题】为什么zookeeper集群往往是奇数个节点?

匆匆过客 提交于 2019-12-02 12:53:47
zookeeper的选举机制是半数机制: 集群中半数以上机器存活,集群可用,否则集群处于瘫痪状态不可用。所以zookeeper适合装在奇数台机器上; 3 -》 半数以上至少2 5 -》 半数以上至少3 2 个机器的效果跟1个机器效果一样(机器挂掉的容忍度是一样的,要想工作,一个都不能挂) 3个机器最多容忍1个机器挂掉,4个机器最多容忍1个机器挂掉 5个机器最多容忍2个机器挂掉,6个机器最多容忍2个机器挂掉 容忍度一样,为什么我不少装点,少占用点机器 所以使用奇数个即可,效果和偶数个一样,避免资源浪费 来源: https://blog.csdn.net/NewBeeMu/article/details/102761276

Kafka入门实践

↘锁芯ラ 提交于 2019-12-02 12:16:15
1.Apache Kafka官网介绍 http://kafka.apache.org 发布 & 订阅: 类似于一个消息系统,读写流式的数据. 处理: 编写可扩展的流处理应用程序,用于实时事件响应的场景。 存储: 安全的将流式的数据存储在一个分布式,有副本备份,容错的集群。 Kafka@用于构建实时的数据管道和流式的app.它可以水平扩展,高可用,速度快,并且已经运用在数千家公司的生产环境。 2.CDH Kafka官网介绍 https://docs.cloudera.com/documentation/kafka/latest/topics/kafka.html 3.生产如何选择版本 生产上绝大部分是CDH来构建企业级大数据平台,那么Kafka属于需要自定义部署《CDK部署课程》。 故企业里现在使用CDH5.15.1版本,那么默认zookeeper的版本即为zookeeper-3.4.5-cdh5.15.1, 这是固定的,无法改变。 那么Kafka版本如何选择呢?一般我们选择,当前的CDH官网的Kafka安装包最新版本即可。 当然我司经典版本是选择[0.10.2.0+kafka2.2.0+110],主要是历史时间原因+Spark Streaming对接Kafka的起始版本0.10。 CDH Kafka: wget http://archive.cloudera.com/kafka

Linux下zookeeper的安装 启动

我们两清 提交于 2019-12-02 08:56:58
本文转自:http://blog.csdn.net/lifupingcn/article/details/78327609 1.下载Linux版的zookeeper,注意这个版本一定要和 项目中的版本 一致 2.上传到服务器中解压:tar -zxvf zookeeper-3.4.8.tar.gz 如下图: 3.进入 zookeeper-3.4.8 下的conf目录中修改核心配置文件: 默认进去zoo_sample.cfg是这个,需要复制一份重命名为zoo.cfg, 因为 Zookeeper 在启动时会找这个文件作为默认配置文件。 命令:cp zoo_sample.cfg zoo.cfg 在修改 zoo.cfg配置文件的内容: tickTime :这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳 dataDir :顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 clientPort :这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。 当这些配置项配置好后,你现在就可以启动 Zookeeper 了( sh zkServer.sh ),启动后要检查

zookeeper-3.4.12集群搭建

半城伤御伤魂 提交于 2019-12-02 08:55:01
解压zookeeper文件到指定目录,执行命令 tar -zvxf zookeeper-3.4.12.tar.gz 配置环境变量, vim /etc/profile source /etc/profile #zookeeper export ZOOKEEPER_HOME=/var/local/zookeeper-3.4.12 export PATH=$ZOOKEEPER_HOME/bin:$PATH 建立两个文件夹 mkdir /var/local/zookeeper-3.4.12/data; mkdir /var/local/zookeeper-3.4.12/logs cd /var/local/zookeeper-3.4.12/conf/ 拷贝配置文件zoo_sample.cfg 改名为zoo.cfg cp zoo_sample.cfg zoo.cfg 修改配置文件 # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and

Zookeeper集群模式安装

我与影子孤独终老i 提交于 2019-12-02 08:54:31
1. 安装zookeeper前需要先安装jdk(详见 http://blog.csdn.net/u012343297/article/details/78748446 )完成后,再下载zookeeper-3.4.11.tar.gz,下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.11/ 。 2. 解压zookeeper-3.4.11.tar.gz,使用tar -zxvf zookeeper-3.4.11.tar.gz解压到/opt下。 3. 进入到zookeeper解压后的目录:cd /opt/zookeeper-3.4.11/conf。 4. 将conf目录下的zoo_sample.cfg复制一份,重命名为zoo.cfg。 cp ./zoo_sample.cfg zoo.cfg。 5. 修改zoo.cfg配置文件。 # The number of milliseconds of each tick tickTime= 2000 # The number of ticks that the initial # synchronization phase can take initLimit= 10 # The number of ticks that can pass between

大数据之ZOOKEEPER的集群安装过程

最后都变了- 提交于 2019-12-02 08:54:04
安装前说明: 1、 zookeeper对内存的消耗比较大,在安装zookeeper的时候要安装在内存比较大的机器中。 2、 zookeeper安装需要是基数台机器,因为zookeeper默认半数以上(不包含半数)的机器正常运行时正常使用,低于半数(不包含半数)就不能正常使用 开始安装: 1.安装包上传到bigdata目录下,此处ZOOKEEPER版本为3.49 2.在linux系统下进行解压 3.将ZOOKEEPER的压缩包删除,避免占用空间 4.4.对ZOOKEEPER配置环境变量 Vi /tec/profile export ZOOKEEPER_HOME=/bigdata/zookeeper-3.4.9 export PATH= P A T H : P A T H : //--> ZOOKEEPER_HOME/bin 5.进入ZOOKEEPER配置文件修改 在conf目录下,找zoo.cfg配置文件 没有zoo.cfg配置文件,将zoo.sample.cfg改为我们需要的zoo.cfg 如果是单机的zookeeper,只需修改dataDir的地址即可完成 将地址修改: 2181是zookeeper的默认端口 注意!!!!!!!!!!!!!! 此处的server.x与服务器中的zookeeper_data/的myid编号必须一直 也就是主机名对应的编号与myid 要一致 此处