摘要:
在分布式系统设计中,选主是一个常见的场景。选主是一个这样的过程,通过选主,主节点被选择出来控制其他节点或者是分配任务。 选主算法要满足的几个特征: 1)各个节点均衡的获得成为主节点的权利,一旦主节点被选出,其他的节点可以感知到谁是主节点,被服从分配。 2)主节点是唯一存在的 3)一旦主节点失效,宕机 阅读全文
摘要:
1、篇首语 curator是zookeeper的一个高级api开发包。封装了zookeeper众多的recipes,并且实现了一些新的recipes原语,最重要的是基于zookeeper提供的各种机制实现了更健壮的连接和异常处理。 本文将其中比较常用的一种recipe,就是cache。 2、各种Ca 阅读全文
摘要:
我们的项目中用apschedule作为核心定时调度模块。所以对apschedule进行了一些调查和源码级的分析。 1、为什么选择apschedule? 听信了一句话,apschedule之于python就像是quartz之于java。实际用起来还是不错的。 2、安装 3、apschedule有四个主 阅读全文
摘要:
本文记录的是,在数据处理过程中,遇到了一个sql执行很慢,对一些大型的hive表还会出现OOM,一步一步通过参数的设置和sql优化,将其调优的过程。 先上sql 可以看到这个sql由1个join,一个去重语句,组成,这两种操作都是很耗费资源的。 1、对链接操作,小表放在链接左边。 这是一个老生常谈的 阅读全文
摘要:
本文处理的场景如下,hive表中的数据,对其中的多列进行判重deduplicate。 1、先解决依赖,spark相关的所有包,pom.xml spark-hive是我们进行hive表spark处理的关键。 2、spark-client 3、判重流程 4、运行方式 提交任务脚本 运行: 结果 阅读全文
摘要:
上文介绍了hdfs集群信息的读取方式,本文说hive 1、先解决依赖 2、配置文件 这里我们给出一种简单的配置方法,就是直接将hive-site.xml通过添加文件的方式加载到配置 例如,hive-site.xml中的配置如下 3、hive client api 说明: 1、hiveConf.add 阅读全文
摘要:
本文介绍使用hdfs java api的配置方法。 1、先解决依赖,pom 2、配置文件,存放hdfs集群配置信息,基本都是来源于core-site.xml和hdfs-site.xml,可以根据hdfs集群client端配置文件里的信息进行填写 3、java client api 4、configu 阅读全文
摘要:
本文讲述如何使用fabric进行批量部署上线的功能 这个功能对于小应用,可以避免开发部署上线的平台,或者使用linux expect开发不优雅的代码。 前提条件: 1、运行fabric脚本的机器和其他机器tcp_port=22端口通 2、ssh可以登录,你有账号密码 一、先说批量部署上线 先上代码, 阅读全文
摘要:
最简单的实现服务高可用的方法就是集群化,也就是分布式部署,但是分布式部署会带来一些问题。比如: 1、各个实例之间的协同(锁) 2、负载均衡 3、热删除 这里通过一个简单的实例来说明如何解决注册发现和负载均衡。 1、先解决依赖,这里只给出zk相关的依赖,pom.xml如下 2、ZkClient 这里使 阅读全文
摘要:
这里只是mark一下导出的方法,并没有做什么REST处理和异常处理。 维护统一的style样式,可以使导出的数据更加美观。 阅读全文