ZooKeeper

必备干货 | Hbase简介以及数据结构和表详解

喜欢而已 提交于 2021-01-30 01:03:08
注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷先生的新书 《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 前言 Hbase原理和功能介绍 1. Hbase特性 2. Hbase的架构核心组件 Hbase数据结构和表详解 总结 前言 Hbase 经常用来存储实时数据,比如Storm/Flink/Spark-Streaming消费用户行为日志数据进行处理后存储到Hbase,通过Hbase的API也能够毫秒级别的实时查询。如果是对Hbase做非实时的离线数据统计,我们可以通过Hive建一个到Hbase的映射表,然后写Hive SQL来对Hbase的数据进行统计分析。并且这种方式可以方便的和其它的Hive表做关联查询,做更复杂的统计。所以从交互形势上Hbase满足了实时和离线的应用场景,在互联网公司应用的也非常普遍。 Hbase原理和功能介绍 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目

Zookeeper安装与调优部署参考文档(Linux)

大城市里の小女人 提交于 2021-01-29 09:11:06
1. 安装环境准备 1.1 主机环境准备 1.1.1. 关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 1.1.2. 软件下载 apache-zookeeper-3.6.1-bin.tar.gz: 下载地址 1.1.3. 部署规划 软件安装路径 /usr/local/zookeeper 端口规划 2192 1.1.4. 系统主机时间、时区、系统语言  本节视实际情况需要操作  修改时区 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  修改系统语言环境 echo 'LANG="en_US.UTF-8"' >> /etc/profile && source /etc/profile  配置主机NTP时间同步 yum -y install ntp systemctl enable ntpd && systemctl start ntpd echo 'server ntp1.aliyun.com' >> /etc/ntp.conf echo 'server ntp2.aliyun.com' >> /etc/ntp.conf 2. Zookeeper安装部署 2.1

一致性协议与Raft算法

北城以北 提交于 2021-01-29 05:36:00
CAP理论 CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中: 一致性( C onsistency) 可用性( A vailability) 分区容错性( P artition tolerance) 对于一个分布式系统来说,上述三个特性不能同时兼得,分为CP和AP的系统。例如银行必须是CP。 一致性协议 分为两种: 弱一致性(最终一致性) 强一致性 弱一致性,也称为最终一致性,也就是说各个节点不会立即保证系统同步,属于AP范畴,典型的应用如DNS域名解析服务。 强一致性,表示各个节点的数据必须保持一致,属于CP,典型的应用有Zookeeper。 通常所说的一致性协议算法,指的其实就是 强一致性算法 ,这些算法都是由Lamport提出的 Paxos算法 演变出来。Paxos算法有三个变种,base paxos,multi paxos和fast paxos。其他一致性算法又是由 multi paxos的简化版 演变而来,主要 Raft 和 ZAB 。 强一致性协议的内容 强一致性协议主要包括的内容可以概括为: 选主机制 数据一致性 1)写数据 2)提交数据 saft容错策略 Paxos Paxos本身只是一个理论,并没有落地实现,paxos协议中,存在较多的角色,包括议案发起人,议员和记录员等。 base paxos,是通过 议案编号大小 来进行的

基于Storm构建实时热力分布项目实战

给你一囗甜甜゛ 提交于 2021-01-29 04:20:42
基于Storm构建实时热力分布项目实战 下载地址: 百度云盘 Storm是实时流处理领域的一柄利器,本课程采用最新的Storm版本1.1.0,从0开始由浅入深系统讲解,深入Storm内部机制,掌握Storm整合周边大数据框架的使用,从容应对大数据实时流处理! 适合人群及技术储备要求 这是一门非常具有可操作性的课程,适合Java工程师正处于瓶颈期想提升自己技术、想转型做大数据的开发者,更适合对于大数据感兴趣、想从事大数据 研发工作的同学。本课程将手把手带你从零循序渐进地讲解Storm各方面的技术点,让你轻松胜任实际大数 据实时流处理的工作,稳拿高薪! 技术储备要求 熟练掌握Java SE、Linux即可 课程目录:第1章 课程导学引见课程相关背景,学习建议等等1-1 -导学试看1-2 -OOTB环境运用演示1-3 -授课习气与学习建议第2章 初识实时流处置StormStorm作爲近几年Hadoop生态圈很火爆的大数据实时流处置框架,是成爲大数据研发工程师必备的技艺之一。 本章将从如下几个方面让大家关于Storm有微观上的看法:什麼是Storm、Storm的展开史、Storm比照Hadoop的区别、Storm比照Spark Streaming的区别、Storm的劣势、Storm运用现状及展开趋向、Storm运用案例分享...2-1 -课程目录2-2 -Storm是什麼2-3

Pulsar2.7.0最新版本安装

独自空忆成欢 提交于 2021-01-28 02:27:18
集群说明 搭建 Pulsar 集群至少需要 3 个组件: ZooKeeper 集群(3 个 ZooKeeper 节点组成) bookie 集群(也称为 BookKeeper 集群,3 个 BookKeeper 节点组成) broker 集群(3 个 Pulsar 节点组成,broker 是 Pulsar 的自身实例) Pulsar 的安装包已包含了搭建集群所需的各个组件库。无需单独下载 ZooKeeper 安装包和 BookKeeper 安装包。 3 台 Linux 服务器 IP 分别为 10.9.4.22,10.9.5.17,10.9.5.15,生产建议将各个组件分开部署 在 3 台 Linux 裸机服务器上安装 JDK(要求版本不低于 JDK 8) 下载pulsar 下载最新版本pulsar, https://pulsar.apache.org/download/ tar -zxvf apache-pulsar-2.7.0-bin.tar.gz /workspace/ 安装zookeeper cd /workspace/apache-pulsar-2.7.0/conf/ vim zookeeper.conf 更改zk存储路径 dataDir=/data/zookeeper/zookeeper dataLogDir=/data/zookeeper/logs 添加集群ip信息

搭建高可用的flink JobManager HA

你。 提交于 2021-01-26 08:49:08
  JobManager协调每个flink应用的部署,它负责执行定时任务和资源管理。   每一个Flink集群都有一个jobManager, 如果jobManager出现问题之后,将不能提交新的任务和运行新任务失败,这样会造成单点失败,所以需要构建高可用的JobMangager。   类似zookeeper一样,构建好了高可用的jobManager之后,如果其中一个出现问题之后,其他可用的jobManager将会接管任务,变为leader。不会造成flink的任务执行失败。可以在单机版和集群版构建jobManager。   下面开始构建一个单机版flink的JobManger高可用HA版。   首先需要设置SSH免密登录,因为启动的时候程序会通过远程登录访问并且启动程序。   执行命令,就可以免密登录自己的机器了。如果不进行免密登录的话,那么启动的hadoop的时候会报 "start port 22 connection refused"。 ssh-keygen - t rsa ssh -copy- id -i ~/. ssh /id_rsa.pub huangqingshi@localhost   接下来在官网上下载hadoop的binary文件,然后开始解压,我下载的版本为hadoop-3.1.3版本

分布式锁与Redis 分布式锁实现

与世无争的帅哥 提交于 2021-01-26 08:31:56
分布式锁 概念 任何一个系统都无法同时满足一致性(Consistency),可用性(Availability),分区容错性(Partition tolerance), 只能同时满足2个; 分布式锁就是为了解决数据一致性问题. 悲观锁和乐观锁 悲观锁: 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次拿数据都会上锁,这样别人想拿这个数据就会阻塞,知道锁被释放 悲观锁多用于多写场景,关系型数据库中很多使用了这种悲观锁机制 实现: redis 实现锁机制 乐观锁 总是假设最好的情况,即每次去拿数据的时候都认为别的线程不会去修改,所以不会上锁,但是在更新数据的时候会判断在此期间有没有其它线程更新了这个数据,可以用版本号机制和CAS算法来实现; 乐观锁多用户多读场景,提高吞吐量,比如数据库提供的write_condition机制 实现: 数据库添加版本号字段: 一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加1。当线程A要更新数据值时,在读取数据的同时也会读取version值,在提交更新时,若刚才读取到的version值为当前数据库中的version值相等时才更新,否则重试更新操作,直到更新成功。 CAS 算法 应用场景 涉及到多个实例进程操作同一份数据时就需要用到锁机制,比如: 下单,修改库存,更新缓存等

[zookeeper]1.zookeeper是什么?

痴心易碎 提交于 2021-01-25 16:57:53
zookeeper是一个文件系统+监听通知机制。可以实现下面功能: 1.Zookeeper是一个数据库。为分布式应用程序提供协调服务。 2.Zookeeper是一个拥有文件系统的特点的数据库。(znode都有完整的路径,且同节点下面的子节点不能同名) 3.Zookeeper是一个解决了数据一致性问题的分布式数据库。 4.Zookeeper是一个具有发布和订阅功能的分布式数据库(watch机制)。 zookeeper架构: /根节点下每一个节点叫做根节点znode。 每一个znode中都可以存储数据。 同一节点下的节点名称不允许重复。 znode节点类型 PERSISTENT 永久节点 EPHEMERAL 临时节点 PERSISTENT_SEQUENTIAL 永久节点,序列化 EPHEMERAL_SEQUENTIAL 临时节点,序列化 临时节点Ephemeral特征: 连接客户端断开连接、与服务端会话结束,将自动删除节点。 临时节点不允许拥有子节点。 永久节点Persistent特征: 客户端和服务端端开连接后,在服务端上创建的节点不会删除。该节点的生命周期不依赖于会话,只有在客户端执行删除的时候才会删除。 来源: oschina 链接: https://my.oschina.net/u/4364022/blog/4923135

20张图带你到HBase的世界遨游

[亡魂溺海] 提交于 2021-01-25 15:37:51
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨SoWhat1412 来源丨sowhat1412 1 HBase 浅析 1.1 HBase 是啥 HBase 是一款面向列存储,用于存储处理海量数据的 NoSQL 数据库。它的理论原型是 Google 的 BigTable 论文。你可以认为 HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。 HBase 的存储是基于 HDFS 的, HDFS 有着高容错性的特点,被设计用来部署在低廉的硬件上,基于 Hadoop 意味着 HBase 与生俱来的超强的 扩展性 和 吞吐量 。 HBase 采用的时 key/value 的存储方式,这意味着,即使随着数据量的增大,也几乎不会导致查询性能的下降。 HBase 又是一个 面向列 存储的数据库,当表的字段很多时,可以把其中几个字段独立出来放在一部分机器上,而另外几个字段放到另一部分机器上,充分分散了负载的压力。如此 复杂的存储结构和分布式的存储方式 ,带来的代价就是即便是 存储很少的数据,也不会很快 。 HBase 并不是足够快,只是数据量很大的时候慢的不明显。HBase主要用在以下两种情况: 单表数据量超过千万,而且并发量很大。 数据分析需求较弱,或者不需要那么实时灵活

【大数据哔哔集20210123】别问,问就是Kafka最可靠

社会主义新天地 提交于 2021-01-25 03:48:32
高可靠性分析 Kafka的高可靠性的保障来源于其健壮的副本(replication)策略。通过调节其副本相关参数,可以使得Kafka在性能和可靠性之间运转的游刃有余。Kafka从0.8.x版本开始提供Partition级别的复制,replication数量可以配置文件(default.replication.refactor)中或者创建Topic的时候指定。 这里先从Kafka文件存储机制入手,从最底层了解Kafka的存储细节,进而对存储有个微观的认知。之后通过Kafka复制原理和同步方式来阐述宏观层面的概念。最后从ISR,HW,leader选举以及数据可靠性和持久性保证等等各个维度来丰富对Kafka相关知识点的认知。 Kafka文件存储机制 Kafka中消息是以Topic进行分类的,生产者通过Topic向Kafka Broker发送消息,消费者通过Topic读取数据。然而Topic在物理层面又能以Partition为分组,一个Topic可以分成若干个Partition,那么Topic以及Partition又是怎么存储的呢?Partition还可以细分为Segment,一个partition物理上由多个Segment组成,那么这些Segment又是什么呢?下面我们来一一揭晓。 为了便于说明问题,假设这里只有一个Kafka集群,且这个集群只有一个Kafka Broker