- 博客(365)
- 资源 (9)
- 收藏
- 关注
转载 HAWQ技术解析(二) —— 安装部署
一、安装规划1. 选择安装介质HAWQ的安装介质有两种选择,一是下载源码手工编译,二是使用Pivotal公司提供的HDB安装包。源码的下载地址为 http://apache.org/dyn/closer.cgi/incubator/hawq/2.0.0.0-incubating/apache-hawq-src-2.0.0.0-incubating.tar.gz,目前最新版本是2.0.0。源码编译和安装Apache官方文档地址为 https://cwiki.apache.org/confluence/di
2021-01-19 23:11:41
35
转载 HAWQ技术解析(一) —— HAWQ简介
一、SQL on Hadoop过去五年里,许多企业已慢慢开始接受Hadoop生态系统,将它用作其大数据分析堆栈的核心组件。尽管Hadoop生态系统的MapReduce组件是一个强大的典范,但随着时间的推移,MapReduce自身并不是连接存储在Hadoop生态系统中的数据的最简单途径,企业需要一种更简单的方式来连接要查询、分析、甚至要执行深度数据分析的数据,以便发掘存储在Hadoop中的所有数据的真正价值。SQL在帮助各类用户发掘数据的商业价值领域具有很长历史。Hadoop上的SQL支持一开始是Apac
2021-01-19 22:33:33
32
转载 PMDK(Persistent Memory Development Kit)及其应用场景
PMDK及其应用场景PMDK 的全称是 Persistent Memory Development Kit,它包含了 Intel 开发的一系列旨在 方便非易失性内存的应用开发的函数库和工具。PMDK 是一个还在快速发展变化的新鲜事物,不过版本的迭代更新等很多信息都可以公开看到[1]。需要注意的是,PMDK 的网站入口[2] 和 Git 仓库的入口[3]不是严格的一一对应关系。实际上,PMDK 的 Git 仓库 [3] 中包含了 libpmem、libvmem、libpmemblk、libpmemlog、
2021-01-17 20:03:10
84
原创 Greenplum数据库集簇初始化——BKI概述
数据初始化内部流程:bootstrap模式实现了一个特殊的语言用于解析BKI数据,语言的法语解析器会逐个token处理,遇到一个语法子句就调用相应的函数:遇到proname,创建字段属性;遇到name,创建字段类型;遇到Insert,插入一个tuple,tuple里面又是该tuple的每个字段的值,所以遇到值时InsertOneValue,整个tuple字段值都处理完后,执行InsertOneTuple插入一个tuple。BKI文件BKI文件本身由genbki.pl在编译和安装时创建,该Perl脚本解析
2021-01-17 19:28:49
87
原创 Greenplum数据库开发调试入门
安装依赖包安装Greenplem管理脚本依赖的Python包wget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.pysudo pip install psutil lockfile paramiko setuptools epydoc pygresql 安装依赖包sudo yum groupinstall 'Development Tools' # GCC, libtools etcsudo yum install cur
2021-01-17 19:02:52
124
原创 Greenplum Python专用库gppylib学习——base.py
Controller-Worker架构模式辅助说明:Controller-Worker是一种组合架构模式,Controller基于Client的参数动态生成Woker数量,并控制Woker的生命周期,如创建和终止。Controller属性Controller事先知道自身拥有的Woker类型。Controller依赖一个工作任务池,通过工作任务池Controller监控整体任务执行情况。Worker属性Worker并行消费工作任务池中任务,并把执行结果返回到任务池中。Worker彼此间没有任
2021-01-17 18:22:52
964
5
转载 Golang入门之——cobra包
Cobra 是一个 Golang 包,它提供了简单的接口来创建命令行程序。同时,Cobra 也是一个应用程序,用来生成应用框架,从而开发以 Cobra 为基础的应用。本文的演示环境为 ubuntu 18.04(下图来自互联网)。cobra 的主要功能如下,可以说每一项都很实用:简易的子命令行模式,如 app server, app fetch 等等完全兼容 posix 命令行模式嵌套子命令 subcommand支持全局,局部,串联 flags使用 cobra 很容易的生成应用程序和命令,使用
2021-01-13 21:59:43
200
原创 Greenplum数据库集簇初始化——Initdb概述
Greenplum如何从无到有?Greenplum使用PostgreSQL的初始化机制来初始化集群,PostgreSQL使用initdb创建一个PostgreSQL实例。initdb从无到有创建单个空的可用的PostgreSQL数据库,也就是在一个空的目录中创建PostgreSQL运行所需要的所有文件,包括全局数据字典、控制文件和三个数据库:template0、template1、postgres。由于PostgreSQL自身历史的原因,先创建template1数据库,然后拷贝整个目录成为另外两个数据库。为
2021-01-13 13:11:14
982
2
原创 Greenplum概念学习——在线扩容工具Gpexpand
Gpexpand是Greenplum数据库的扩容工具,可以为集群增加新节点从而可以存储更多的数据,提供更高的计算能力。Greenplum 5及之前,集群扩容需要停机增加新节点,然后对表数据做重分布。因为集群大小已经改变,所以重分布之前要先将所有哈希分布表改成随机分布,然后再按照新的集群大小重新计算哈希值并重新分布。所以,旧的扩容技术存在如下几个问题:需要停机,集群无法在扩容期间提供服务。数据重分布过程集群性能差。随机分布表因为不能确定数据分布规律,无法对查询做优化。虽然表的重分布可以并行进行,但是扩
2021-01-12 23:30:46
214
原创 Greenplum概念学习——节点分布模式:grouped、spread
greenplum的两种节点分布模式(6台主机,每台4个segment,两两primary、mirror)①grouped mirror模式:(grouped模式,主机的mirror节点全部放在下一个主机上)②spread mirror模式: (spread模式,主机的第一个mirror在下个主机,第二个mirror在次下个主机,第三mirror在次次下个主机…)初始化的mirror模式:1)初始化为grouped模式在部署配置gp的过程中,执行初始化命令:gpinitsystem ,默认的
2021-01-12 23:16:05
207
原创 Greenplum Python专用库gppylib学习——GpArray
self.master GpDB实例self.standbyMaster GpDB实例self.segments = [] Segment实例列表Segment类class Segment: primaryDB=None #primary (GpDB实例) mirrorDBs =None def __init__(self): self.mirrorDBs = [] #mirror (GpDB实例) pass def addPri
2021-01-12 22:49:31
235
2
原创 root用户忘记密码的重置方法
启动时在选择启动内核,按下e,修改如下项,进入救援模式在linux 16这行将ro改为rw删除rhgb quiet,增加init=/sysroot/bin/sh(指定shell环境或/bin/bash)按下ctrl +x进入系统紧急模式访问根系统 chroot /sysroot修改root密码 password root更新系统信息 touch /.autorelabel退出exit重启 reboot...
2021-01-10 12:29:39
1524
4
转载 OpenSSH概念和基本用法——SSH 客户端
由于在分布式数据库运维过程中进行脚本自动化必然会涉及SSH登录工具,故摘抄此篇文章以供学习之用。SSH 是 Linux 系统的登录工具,现在广泛用于服务器登录和各种加密通信。本教程介绍 SSH(主要是它的实现 OpenSSH)的概念和基本用法,也可以当作手册查询。SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。它主要用于保证远程登录和远程通信的安全,任何网络服务都可以用这个协议来加密。SSH 是什么历史上,网络主机之间的通信是不加密的,
2021-01-04 23:59:47
423
原创 Python入门之——pexpect模块
pexpect可以理解为Linux下的expect的Python封装、通过pexpect可以实现对ssh、ftp、passwd、telnet等命令行进行自动交互,而无需人工干涉来达到自动化的目的。比如我们可以模拟一个FTP登录时所有交互,包括输入主机地址、用户名、密码、上传文件等,待出现异常还可以进行尝试自动处理。pexpect的核心组件下面介绍pexpect的几个核心组件包括spawn类、run函数及派生类pxssh等的定义及使用方法。spawn类spawn是pexpect的主要类接口,功能是启动
2021-01-04 13:08:43
426
原创 Python入门之——getpass模块
getpass模块提供了平台无关的在命令行下输入密码的方法; 该模块主要提供:两个函数: getuser, getpass一个报警: GetPassWarning(当输入的密码可能会显示的时候抛出,该报警为UserWarning的一个子类)备注: 上面为密码显示时抛出的报警getpass.getuser()该函数返回登陆的用户名,不需要参数该函数会检查环境变量LOGNAME,USER,LNAME 和USERNAME, 以返回一个非空字符串。如果这些变量的设置为空的话,会从支持密码的数据库中
2021-01-01 21:11:49
486
原创 Python3入门之——optparse模块
Python 有两个内建的模块用于处理命令行参数:一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数;另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。示例下面是一个使用 optparse 的简单示例:from optparse import OptionParser [...] parser = OptionParser() parser.add_option("-f", "
2021-01-01 20:49:22
483
原创 linux expect的使用详解
一、概述我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。 Expect是一个免费的 编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] sof
2020-12-30 12:54:47
559
原创 Profiling Query Compilation Time with GPORCA
GPORCA是Pivotal针对greenplum数据库和apache HAWQ(孵化)的查询优化器。在这篇文章中,我们将描述用户如何使用GPORCA分析查询编译。这将有助于用户了解GPORCA的哪些步骤是资源密集型的,以及正在触发哪些转换。基于这些信息,用户可以提供查询提示,以减少或增加搜索空间,查看时间和内存的使用情况,并了解如何影响其决策。Pivotal的查询优化器(PQO)旨在寻找在分布式环境(如Pivotal的Greenplum数据库)中执行SQL查询的最快方式。PQO的开源版本名为GPORCA
2020-12-28 23:19:40
584
2
原创 PG主程序模块(Main)——数据库PostgreSQL入口
PostgreSQL系统的主要功能都集中于Postgres程序,其入口是Main模块(src/backend/main/main.c)中的main函数,在初始化数据集簇、启动数据库服务器时,都将从这里开始执行。Main模块主要的工作是确定当前的操作系统平台,并据此做一些平台相关的环境变量设置和初始化,然后通过对命令行参数的判断,将控制转到相应的模块中去。PG使用一种专用服务器进程体系结构,其中,最主要的两个进程就是守护进程Postmaster和服务进程Postgres。从本质上来说,Postmaster和P
2020-12-28 22:33:23
584
转载 error: unpacking of archive failed on file错误的解决
今天在用yum安装软件包的时候出现如下错误信息(这只是部分):Installing : pango-1.28.1-11.el6.x86_64 1/9Error unpacking rpm package pango-1.28.1-11.el6.x86_64error: unpacking of archive failed on file /usr/bin/pango-querymodules-64;5
2020-12-27 14:29:47
860
原创 PG虚拟文件描述符(VFD)机制——FD LRU池二:postgresql-8.4.1/src/backend/storage/file/fd.c
看了上一篇PG虚拟文件描述符(VFD)机制——FD LRU池一:postgresql-8.4.1/src/backend/storage/file/fd.c,了解了FD LRU池的原理和API。但是我们还没有了解清楚VFD是怎么复用的FD。在操作系统中,当一个进程创建或是打开一个文件时,操作系统会为该文件分配一个唯一文件描述符(或叫文件句柄),并通过该文件描述符来唯一标识和操作该文件。参考Linux/UNIX系统编程手册中关于文件I/O的描述: 所有执行I/O操作的系统调用都以文件描述符,一个非负整数
2020-12-22 22:26:24
707
原创 PG虚拟文件描述符(VFD)机制——封装的文件接口:postgresql-8.4.1/src/backend/storage/file/fd.c
本篇博客讲解fd.c文件中对C函数库文件操作API的相关封装。(相关C函数库文件操作API参见博主linux分类下的文章)InitFileAccess函数用于在postgresql启动时初始化VFD LRU池,并向系统注册proc-exit勾子以确保退出时清理临时文件。InitFileAccess函数在后端启动初始化阶段调用(normal or standalone backend),在数据库运行过程中只能调用一次。主要用于VFD LRU池中的头元素的空间,并设置LRU池的大小为1。最后注册proc-ex
2020-12-22 22:21:36
749
原创 linux 文件保护-使用chattr +i保护
Linux文件保护禁止修改、删除、移动文件等,使用chattr +i保护chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files…最关键的是在[mode]部分,[mode]部分是由±=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。:在原有参数设定基础上,追加参数。:在原有参数设定基础上,移除参数。= :更新为指定参数设定。A:文件或目录的 atime (access time)不可被修改(modifie
2020-12-21 22:40:25
777
原创 Scrapy学习笔记-Scrapyd Deploy
部署您的项目需要对其进行优化,并通过addversion.json endpoint 上传。您可以手动执行此操作,但最简单的方法是使用scrapyd客户机提供的scrapyd部署工具,它将为您完成所有操作。APIdaemonstatus.json检查服务的加载状态load status,支持的Request方法GET,比如curl http://localhost:6800/daemonstatus.json,输出{ "status": "ok", "running": "0", "pending":
2020-12-20 21:09:18
770
原创 Scrapy学习笔记-Scrapyd Installation
RequirementsPython 2.6 or aboveTwisted 8.0 or aboveScrapy 0.17 or aboveInstalling Scrapyd(generic way)从PyPI安装:pip install scrapyd如果计划在Ubuntu中部署Scrapyd,Scrapyd附带了官方的Ubuntu软件包(见下文),用于将其作为系统服务安装,简化了管理工作。其他发行版和操作系统(Windows、Mac OS X)还没有特定的软件包,除了配置路径并使其能够作
2020-12-20 18:39:24
774
原创 Scrapy学习笔记-Scrapyd Overview
OverviewProjects and versionsScrapyd可以管理多个项目,每个项目都可以上载多个版本,但只有最新的版本将用于启动新的spider。用于版本名的一个常见(也是有用的)约定是用于跟踪您的Scrapy项目代码的版本控制工具的修订号。例如:r23。版本没有按字母顺序进行比较,而是使用了一种更聪明的算法(distutils也使用相同的算法),例如,r10与r9相比更大。How Scrapyd worksScrapyd是一个应用程序(通常作为守护进程运行),它监听spider运行
2020-12-20 13:34:32
771
原创 Python入门之——系统性能信息模块psutil
psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系
2020-12-20 13:00:12
812
原创 linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bach [1986]第3章详细讨论了缓冲区高速缓存)。延迟写减少了磁盘读写次数,但是却降低了文件内容的更新速度,使得欲
2020-12-15 21:23:26
891
转载 PostgreSQL Replication之第一章 理解复制概念一
在本章中,将会介绍不同的复制概念,您会了解哪些类型的复制对哪一种实用场景是最合适的。 在本章的最后,您将能够判断某个概念在各种情况下是否是可行的。我们在本章将介绍以下主题:• CAP理论•复制的物理限制•为什么延迟有影响•同步和异步复制•拆分和复制在我们使用PostgreSQL实际工作之前,我们将引导您完成一些非常基本的与复制相关想法和事实。1.1 CAP理论和物理限制您可能会问,为什么一个理论可以在一本书这样一个突出的地方被发现,这被认为是非常实用的。那么,有一个很简单的理由:一些商业数
2020-12-15 21:16:40
886
原创 Python学习笔记目录
Python 基础语法Python3入门之一Python3入门之——数值类型Python3入门之——字符串Python3入门之——序列类型Python3入门之——映射类型Python3入门之——集合类型Python 模块学习Python入门之——logging日志模块 Basic Logging TutorialPython入门之——getopt模块Python入门之——Pexpect模块Python使用MongoDB一问题列表Python模块问题:ImportError: can
2020-12-06 17:51:14
1130
原创 Xeon E5-2600 v2服务器微处理器Uncore核心性能监控——UBOX
UBOX PERFORMANCE MONITORINGUbox在图中的右上角,透过R2PCIe与Ring Bus总线相连。Ubox主要功能包括:请求者,例如处理器核,通过Ubox的Message Channel访问处理器Uncore的寄存器处理中断,所有系统中断将会首先发给Ubox,然后让Ubox分发给处理该中断的处理器核系统Lock控制器,当系统有Bus Lock的需求的时候,Ubox将会帮忙处理Bus Lock请求,让外部设备处于静默状态,具体行为方式,请参考公众号“锁”操作的文章:[x86]锁操作
2020-11-29 20:25:40
1298
原创 NVMeDirect论文
说明: 之所以要翻译这篇论文,是因为参考此论文可以很好地理解SPDK/NVMe的设计思想。NVMeDirect: A User-space I/O Framework for Application-specific Optimization on NVMe SSDsNVMeDirect: 面向基于NVMe固态硬盘存储应用优化的一种用户空间I/O框架Hyeong-Jun Kim, Sungkyunkwan University, hjkim@csl.skku.eduYoung-Sik Lee, K
2020-11-28 12:46:40
1343
转载 SPDK初步安装测试
一、SPDK简介及基本使用随着硬盘、闪存技术的高速发展,NVME-ssd已逐渐进入分布式存储的核心领域。伴随着NVME-ssd的出现,涌现出一批新型的存储名词,包括分层存储、分级存储、冷热存储、混合存储等。而这些名词的出现,也意味着ssd在当前大环境下由于其昂贵的价格还无法大量应用。根据预测,ssd价格将在19年末出现大幅下降,藉此,ssd将成为存储领域重要的存储介质。ssd存储介质正在取代传统数据中心的机械硬盘。ssd无论是从性能、功耗以及密度上都存在巨大的优势,而这些优势将使得ssd成为下一代存储的
2020-11-17 23:57:10
1618
原创 Intel微处理器Uncore架构简介
uncore一词,是英特尔用来描述微处理器中,功能上为非处理器核心(Core)所负担,但是对处理器性能的发挥和维持有必不可少的作用的组成部分。处理器核心(Core)包含的处理器组件都涉及处理器命令的运行,包括算术逻辑单元(ALU)、浮点运算单元(FPU)、一级缓存(L1 Cache)、二级缓存(L2 Cache)。Uncore的功能包括QPI控制器、三级缓存(L3 Cache)、内存一致性监测(snoop agent pipeline)、内存控制器,以及Thunderbolt控制器。至于其余的总线控制器,像
2020-11-15 21:05:54
1733
原创 Xeon E5-2600 v2服务器微处理器Uncore核心性能监控——UNCORE PERFORMANCE MONITORING
UNCORE PER-SOCKET PERFORMANCE MONITORING CONTROL为了管理分布在许多单元上的大量计数器寄存器并有效地收集事件数据,本节介绍了用于在监视会话期间开始/停止/重新启动事件计数的分层技术,该事件计数可能需要软件代理执行。Counter Overflow如果box的计数器溢出,它可以向全局PMON管理器(UBox)发送溢出消息。 为此,必须允许带有溢出计数器的box广播溢出消息(单个计数器的控制寄存器中的.ov_en必须设置为1)。 然后溢出将拾取,并将发送溢出的
2020-11-15 20:53:10
1604
原创 Xeon E5-2600 v2服务器微处理器Uncore核心性能监控——介绍
介绍Intel Xeon E5-2600 v2内部开发代码是Ivy Bridge-EP,或者Ivytown。它的前一代是Sandy Bridge-EP,两者的微架构差别不大,Ivy Bridge-EP主要是在制程上进行了升级。图1-1和图1-2显示了英特尔®至强®处理器E5-2600 v2和E5-1600 v2产品系列的非核心子系统(uncore sub-system)。 非核心子系统由多种组件组成,从CBox缓存代理(CBox caching agent)到电源控制器单元(PCU),集成内存控制器(iM
2020-11-15 20:18:30
1628
转载 DPDK内存基本概念
作者简介:Anatoly Burakov,英特尔软件工程师,目前在维护DPDK中的VFIO和内存子系统。引言内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以发挥其最佳性能。本系列文章将详细介绍DPDK提供的各种内存管理的功能。但在此之前,有必要先谈一谈为何DPDK中内存管理要以现有的方式运作,它背后又有怎样的原理,再进一步探讨DPDK具体能够提供哪些与内存相关的功能。本文将先介绍DPDK内存的基本原理,并解释它们是如何帮助DPDK实现高性能的。请注意.
2020-11-15 14:15:19
1604
原创 linux时间同步服务(chronyd服务)
配置chrony服务集群中节点之间需要时间同步,不依赖外部的时间服务NTP,在内部搭建时间服务器。首先保证所有节点都安装了chrony,命令如下:yum install chrony -y。在提供时间同步服务的服务端节点做如下操作:vim /etc/chrony.conf22 allow 192.168.211.131 ##允许哪些客户端来同步主机的时间29 local stratum 10 ##本机不同步任何主机时间,本机作为时间源systemctl restart chronyd.servi
2020-11-06 12:50:02
1918
原创 深入浅出DPDK学习笔记——认识DPDK
什么是DPDK? 对于用户来说, 它可能是一个性能出色的包数据处理加速软件库; 对于开发者来说, 它可能是一个实践包处理新想法的创新工场; 对于性能调优者来说, 它可能又是一个绝佳的成果分享平台。当下火热的网络功能虚拟化, 则将DPDK放在一个重要的基石位置。 虽然很难用短短几语就勾勒出DPDK的完整轮廓, 但随着认识的深入, 我们相信你一定能够认可它传播的那些最佳实践方法, 从而将这些理念带到更广泛的多核数据包处理的生产实践中去。DPDK最初的动机很简单, 就是证明IA多核处理器能够支撑高性能数据包处理。
2020-11-05 23:05:42
2079
2
原创 深入浅出DPDK学习笔记——前言
多核2005年的夏天, 刚加入Intel的我们畅想着CPU多核时代的到来给软件业带来的挑战与机会。 如果要充分利用多核处理器, 需要软件针对并行化做大量改进, 传统软件的并行化程度不高, 在多核以前, 软件依靠CPU频率提升自动获得更高性能。 并行化改进不是一件简单的工作, 许多软件需要重新设计, 基本很难在短期实现, 整个计算机行业都对此纠结了很久。 2005年以前, 整个CPU的发展历史, 是不断提升芯片运算频率核心的做法, 软件性能会随着处理器的频率升高, 即使软件不做改动, 性能也会跟着上一个台阶
2020-11-03 23:58:34
1984
1
qttest.rar
2020-02-21
信息可视化 交互设计
2019-01-21
实时碰撞检测算法技术
2019-01-21
GPU Pro 7 - Advanced Rendering Techniques
2019-01-18
嵌入式系统 硬件与软件架构
2019-01-18
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝