bind

presto 转换静态catlog为动态catlog

微笑、不失礼 提交于 2020-08-18 03:03:20
  近年来,基于hadoop的sql框架层出不穷,presto也是其中的一员.从2012年发展至今,依然保持年轻的活力(版本迭代依然很快),presto的相关介绍,我们就不赘述了,相信看官多对presto有或多或少的了解,详细的一些说明可以看官网(https://prestodb.io)的说明.   presto自身功能和思想富有先进性,虽然由于是内存计算,稳定性方面还有很大提升空间,但整体依然在adhoc方面有很好的竞争力.其中在catalog加载的方式上来说比较的固化,官方并没有做出动态的方案出来,导致在添加catalog后必须重启整个集群才可以将新添加的catalog数据源添加到presto中,这无疑在实际的生产环境中很不友好.尤其是在一些中台项目中,需要动态规划的东西非常多.这种模式的catalog添加方式显然不能满足我们的开发需要.   因此,在环境的加持下,对presto的加载catlog的方式的源码进行了改造,使其具有热动态添加的功能.我们采用了外部数据库作为他的catlog资源库,对其进行热加载  (1)添加restful API请求接口.   为了使框架本身具有添加catalog的功能,需要使其本身具有Api访问接口的方式来来对catalog的资源进行调整的功能 1.新增CatalogResource类来实现api的请求接口  2

centos7.6 软件补丁版本

半世苍凉 提交于 2020-08-17 18:12:26
由于操作系统自带的软件的版本过低,可能出现版本漏洞,被***利用来远程操控系统,所以需要定期更新自己的操作系统的版本,下面是整理的一些centos7.6上面可以存在漏洞的版本,建议尽快升级 软件: elfutils-default-yama-scope 0.172-2.el7 命中: elfutils-default-yama-scope version less than 0:0.176-2.el7 路径: /usr/lib/sysctl.d/10-default-yama-scope.conf 软件: elfutils-libs 0.172-2.el7 命中: elfutils-libs version less than 0:0.176-2.el7 路径: /usr/lib64/elfutils 软件: elfutils-libelf 0.172-2.el7 命中: elfutils-libelf version less than 0:0.176-2.el7 路径: /usr/lib64/libelf-0.172.so 解决: yum update elfutils* -y 软件: bind-license 9.9.4-74.el7_6.1 命中: bind-license version less than 32:9.11.4-9.P2.el7 路径: /usr

PHP 闭包那点事儿

余生颓废 提交于 2020-08-17 17:07:31
匿名函数 匿名函数,也叫闭包函数,说白了就是“没有名字的函数”,和一般函数结构一样,只是少了函数名以及最后需要加上分号 ; 。 注:理论上讲闭包和匿名函数是不同的概念,不过PHP将其视作相同的概念。 $func = function() { echo 'Hello World' . PHP_EOL; }; $func(); 匿名函数和普通函数的区分有: 匿名函数也可以作为变量的值来使用。 匿名函数可以从父作用域继承变量,而这个父作用域是定义该闭包的函数(不一定是调用它的函数)。 $message = 'hello'; $example = function () use ($message) { return $message; }; $message = 'world'; echo $example(); 输出:hello 注意:必须使用 use 关键字将变量传递进去才行,具体见 官方文档 。 闭包类 定义一个闭包函数,其实就是实例化一个闭包类( Closure )对象: $func = function() { echo 'hello world' . PHP_EOL; }; var_dump($func); 输出: object(Closure)#1 (0) { } 类摘要: Closure { __construct ( void ) public static

JS干货分享—-this指向

删除回忆录丶 提交于 2020-08-17 16:53:37
平时用 this有些混乱,所以写个总结。 没有箭头函数之前,我们说 this就是函数运行时所在的环境对象,但是在箭头函数中this就是定义时所在的对象,先说大家熟知的:函数运行时所在的环境对象。 1、作为函数调用,this指向全局对象 2、作为对象的方法调用,该对象即为调用上下文,this指向该对象。 3、作为构造函数调用,构造函数试图初始化这个新创建的对象,并将这个对象作为其调用上下文,this 指向这个新创建的对象。 4、通过函数的call/apply方法间接调用, call/apply方法的第一个参数是调用上下文,在函数体内,通过this获得对它的引用。 箭头函数中 this对象就是定义时所在的作用域,也就是说箭头函数本身没有this,内部的this就是外层代码块作用域中的this。 5 、独立函数 该箭头函数在全局环境中定义,即 this指向window 6 、对象的方法 如上所示, foo在全局中定义,所以this指向window,那么如何使this指向obj? 根据上一篇介绍,当函数作为对象的方法调用时 this指向该对象,可以这样改写: func在foo调用时定义,此时的foo所在作用域为obj,因此this指向obj 7 、构造函数 ,因箭头函数没有this,固不能用作构造函数,否则会报错 8 、 bind/call 如上: func定义在全局,因此打印0

TCP协议粘包问题详解

你离开我真会死。 提交于 2020-08-17 15:25:18
TCP协议粘包问题详解 前言    在本章节中,我们将探讨TCP协议基于流式传输的最大一个问题,即粘包问题。本章主要介绍TCP粘包的原理与其三种解决粘包的方案。并且还会介绍为什么UDP协议不会产生粘包。 基于TCP协议的socket实现远程命令输入    我们准备做一个可以在Client端远程执行Server端 shell 命令并拿到其执行结果的程序,而涉及到网络通信就必然会出现 socket 模块,关于如何抉择传输层协议的选择? 我们选择使用TCP协议,因为它是可靠传输协议且数据量支持比UDP协议要大 。好了废话不多说直接上代码了。    Server端代码如下: # !/usr/bin/env python3 # -*- coding:utf-8 -*- # ==== 基于TCP协议的socket实现远程命令输入之Server ==== import subprocess from socket import * server = socket(AF_INET, SOCK_STREAM) server.bind(( " 0.0.0.0 " ,6666)) # 放在远程填入0.0.0.0,放在本地填入127.0.0.1 server.listen(5 ) while 1: # 链接循环 conn,client_addr = server.accept() while 1: #

elementUI vue this.$confirm 和el-dialog 弹出框 移动

两盒软妹~` 提交于 2020-08-17 13:48:16
公司的elementUI 的Dialog 需要能移动, 原生的不能移动, 自己就开发了一个, 大家复制代码到html 里面就可以直接运行了. 调试了好久, 还能凑合用 <!DOCTYPE html> < html lang ="zh" > < head > < meta charset ="UTF-8" > < title > Title </ title > <!-- import CSS --> < link rel ="stylesheet" href ="https://unpkg.com/element-ui/lib/theme-chalk/index.css" > < style media ="screen" type ="text/css" > #appLoading { width : 100% ; height : 100% ; } #appLoading span { position : absolute ; display : block ; font-size : 50px ; line-height : 50px ; top : 50% ; left : 50% ; width : 200px ; height : 100px ; -webkit-transform : translateY(-50%) translateX(-50%) ;

react入门之使用react-bootstrap当轮子造车(二)

你说的曾经没有我的故事 提交于 2020-08-17 08:51:00
react入门之使用react-bootstrap当轮子造车(二) 上一篇我们谈了谈如何配置react的webpack环境 react入门之搭配环境(一) 可能很多人已经打开过官方文档学习了react的基础知识 不管有没有,在介绍react之前,我想先介绍一下react-bootstrap 先懂得使用别人造的轮子,就能更快成为老司机。 好的,源代码奉上: git clone https://github.com/lingjiawen/ react_bootstrap_demo.git cd react_bootstrap_demo npm install npm run dev 打开浏览器输入:localhost:8080 react-bootstrap官方网址 现在就让我们来看看它能干什么吧! 一、Button 使用Button声明一个按钮, bsSize 有如下四个属性,可以分别有大、中、小、超小四种大小的按钮,再用ButtonToolbar包裹起来 <ButtonToolbar> <Button bsStyle="primary" bsSize="large">Large button</Button> <Button bsSize="large">Large button</Button> </ButtonToolbar> <ButtonToolbar> <Button

2.docker学习笔记之入门,redis主从配置1

允我心安 提交于 2020-08-17 06:55:38
主从复制的作用主要包括: 1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 2、故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。 3、负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点) 分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。 4、读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量; 5、高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。 从节点开启主从复制,有3种方式: (1)配置文件 在从服务器的配置文件中加入:slaveof <masterip> <masterport> (2)启动命令 redis-server启动命令后加入 --slaveof <masterip> <masterport> (3)客户端命令 Redis服务器启动后,直接通过客户端执行命令:slaveof <masterip> <masterport>,则该Redis实例成为从节点。 通过 info replication

python3通过ssh操作mysql

北慕城南 提交于 2020-08-17 05:06:02
# coding=utf-8 import pymysql import configparser from tkinter import * from tkinter import ttk, messagebox from sshtunnel import SSHTunnelForwarder config = configparser.ConfigParser() if not config.read('sys.ini'): config['ssh'] = { 'host': '', 'user': '', 'passwd': '' } config['db'] = { 'host': '', 'user': '', 'passwd': '' } with open('sys.ini', 'w') as configfile: config.write(configfile) ssh_host = config['ssh']['host'] ssh_user = config['ssh']['user'] ssh_pwd = config['ssh']['passwd'] db_host = config['db']['host'] db_user = config['db']['user'] db_pwd = config['db']['passwd'] server =

每天学点Vue,学习笔记---DAY4

点点圈 提交于 2020-08-17 04:37:02
小球动画过程分析与flag在动画过程中的作用 : 动画被分为两个阶段,一个是前半场动画,一个是后半场动画 使用flag是后半场动画不执行,每次执行前半场完,flag取非, 下次执行还是前半场动画. 组件的复习: 父组件向子组件传值和data与props的区别: data中的值是可读可写的 props中的值是只读的(写的时候会报警告,不推荐用,要写用data), 组件中的所有props中的数据,都是通过父组件传递给子组件的 如何定义: 用v-bind:parentmsg="父变量值",然后在子组件的props[parentmsg]定义这个变量接收. 用{{parentmsg}}使用 父组件向子组件传方法: 用v-on方法绑定:vm定义一个父方法show 使用v-on:name="show"绑定父方法到子组件上 使用this.$emit('show')来调用父方法 活用:可通过有参方法,将子组件的值传给父组件 this.$emit('show',子参数) show(){ 父参数=子参数 } vm的data:{ 父参数=null } 使用localStorage完成评论的功能: list.push:尾部添加 list.unshift:头部添加 使用@func="loadComments"让父组件的方法可以在子组件里用 $refs的用法: 普通使用如下: 组件中使用如下: 1