摘要: 1 悲观锁,乐观锁 悲观锁:顾名思义,很悲观,就是每次拿数据的时候都认为别的线程会修改数据,所以在每次拿的时候都会给数据上锁。上锁之后,当别的线程想要拿数据时,就会阻塞,直到给数据上锁的线程将事务提交或者回滚。传统的关系型数据库里就用到了很多这种锁机制,比如行锁,表锁,共享锁,排他锁等,都是在做操作 阅读全文
posted @ 2017-11-23 10:05 强迫疒 阅读(1013) 评论(0) 推荐(0) 编辑
摘要: 1 本地模式 0.7版本后Hive开始支持任务执行选择本地模式(local mode)。 大多数的Hadoop job是需要hadoop提供的完整的可扩展性来处理大数据的。不过,有时hive的输入数据量是非常小的。在这种情况下,为查询出发执行任务的时间消耗可能会比实际job的执行时间要多的多。对于大 阅读全文
posted @ 2017-11-22 23:15 强迫疒 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 1 什么是分桶 上一篇说到了分区,分区中的数据可以被进一步拆分成桶,bucket。不同于分区对列直接进行拆分,桶往往使用列的哈希值进行数据采样。在分区数量过于庞大以至于可能导致文件系统崩溃时,建议使用桶。 hive使用对分桶所用的值进行hash,并用hash结果除以桶的个数做取余运算的方式来分桶,保 阅读全文
posted @ 2017-11-22 22:34 强迫疒 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 1 基本概念 1.1 什么是分区 Hive查询中一般会扫描整个表内容,会消耗很多时间。有时候只需要查询表中的一部分数据,因此建表时引入了partition(分区)概念。 表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中,因此,使用分区,很容 阅读全文
posted @ 2017-11-16 18:37 强迫疒 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 1 Hive中的数据定义 1.1 存储与创建 Hive会为每个数据库创建一个目录。数据库中的表以子目录的形式存储。 有一个例外是default中的表,因为这个库本身没有目录。 数据库的顶级目录是hive.metastore.warehuse.dir所指定的目录。 假设用户使用的是默认配置/user/ 阅读全文
posted @ 2017-11-15 23:20 强迫疒 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 1 简介 Zookeeper 所有的读操作——getData(), getChildren(), 和 exists() 都 可以设置监视(watch),并且这些watch都由写操作来触发:create、delete和setData。监视事件可以理解为一次性的触发器 2 特性 官方定义如下: a wa 阅读全文
posted @ 2017-11-09 00:40 强迫疒 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 1 简述 ZooKeeper可以看成一种高可用性的文件系统,但是,它没有文件和目录,而是使用节点,称为znode。 znode可以作为保存数据的容器(如同文件),也可以作为保存其他节点的容器(如同目录)。如下图 2 节点中存储的数据 2.1 版本号 对于每个znode来说,存在三个版本号: data 阅读全文
posted @ 2017-11-09 00:14 强迫疒 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1 基本概念 1.1 什么是ZooKeeper zookeeper是为分布式应用所设计的高可用、高性能且一致的开源协调服务 1.2 Zookeeper的特点 顺序一致性 顺序一致性 顺序一致性 原子性 单一视图 可靠性 实时性 实时性 实时性 2 角色 2.1 角色划分 ZooKeeper集群当中, 阅读全文
posted @ 2017-11-05 20:50 强迫疒 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1 背景 1.1 什么是leader选举 在zookeeper集群中,每个节点都会投票,如果某个节点获得超过半数以上的节点的投票,则该节点就是leader节点了 1.2 zookeeper集群选举leader节点的目的又是什么 zookeeper集群,有好几个节点。每个节点都可以接收请求,处理请求。 阅读全文
posted @ 2017-11-01 22:05 强迫疒 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 1 实现方式 分布式锁的实现,目前比较常用的有以下几种方案: 2 基于Zookeeper实现实现分布式锁 实现原理是: 每个客户端对某个方法加锁时,在zookeeper上的与该方法对应的指定节点的目录下,生成一个唯一的瞬时有序节点。 判断是否获取锁的方式很简单,只需要判断有序节点中序号最小的一个。 阅读全文
posted @ 2017-11-01 18:59 强迫疒 阅读(830) 评论(0) 推荐(0) 编辑