Gpload安装手册(Linux版本)

一、python 2.7版本

Linux系统默认是安装python2.7的,如果没有需要手动安装(python版本要求2.4.4以上);

通过命令:python

查看Python版本信息,如下图:

二、PyYAML包安装

2.1安装命令

安装命令:pip install pyyaml

2.2 检查安装

输入:python

输入:import yaml

没有报错,则表示安装成功,如下图:

报错则需要重新安装;

如果pip命令安装不上,则可以离线安装;

3.3 离线安装

安装包下载地址:https://pypi.org/project/PyYAML/#files

下载Linux对应版本的PyYAML包;

将文件拷贝到Linux上,并解压:tar -zxvf PyYAML-5.1.tar.gz

安装命令:进入解压后的文件夹,执行:python setup.py install

三、greenplum-loaders安装

3.1 greenplum-loaders下载

(1)下载地址:https://network.pivotal.io/products/pivotal-gpdb/#/releases/280281

注意:版本选择与Grennplum版本一致;

(2)查看Linux系统版本: cat /proc/version

(3)根据需安装服务器的系统版本,选择对应的版本:

3.2 greenplum-loaders安装

(1)解压

Unzip greenplum-loaders-5.16.0-rhel7-x86_64.zip

解压缩出来bin格式文件greenplum-loaders-5.16.0-rhel7-x86_64.bin

(2)运行

./greenplum-loaders-5.16.0-rhel7-x86_64.bin

中途提示是否接受协议,选择yes

一路yes,安装完成后自动跳到命令行;

注意:程序默认安装/usr/local/路径下,可根据自己想要安装的路径进行指定;

(3)vi ~/.bashrc

插入 source /usr/local/greenplum-loaders-5.16.0/greenplum_loaders_path.sh

生效命令 source ~/.bashrc

(4)如果安装不是默认路径,则需要更改/usr/local/greenplum-loaders-5.16.0/greenplum_loaders_path.sh中GPHOME_LOADERS改为你安装的路径;

(5)vi ~/.bash_profile

添加环境GP变量:

export PGDATABASE=addseg(数据库)
export PGHOST=192.25.108.86(Master主机IP)
export PGPORT=5432(端口)
export PGUSER=gpadmin(用户名)
export PGPASSWORD=123456(密码)

生效命令 source ~/.bash_profile

(6)配置Greenplum master主机上的pg_hba.conf文件

为了让Greenplum能够接受此主机的远程连接,需要配置Greenplum master主机上的pg_hba.conf文件,需要在其中添加一行表示此主机配置信息,格式为:

host   database   role   CIDR-address   authentication-method

host表示连接采用TCP/IP协议,database为此连接匹配的数据库名(可以为all),role代表为此连接匹配的数据库用户(可以为all),CIDR-address代表当客户端主机的IP地址和此值相匹配时建立连接,authentication-method代表授权方式,包括Trust和md5等方式,Trust代表只要连接即授权,md5代表需要密码进行授权;

命令:gpstop -u来让其生效

例如:Vi /home/data/master/gpseg-1/pg_hba.conf

gpstop -u

四、greenplum-loaders 测试

4.1 建表

greenplum集群的master节点上,在addseg数据库中建立表t02:

进去数据库:

psql -d addseg

创建表:

create table t02 (
id integer,
name varchar(128)
);

4.2 创建txt数据文件

在gpload服务器上建立临时测试数据文件t21.txt:

vi t21.txt

内容:

1|aaa
2|zhangsan
3|wanger
4|mazi

4.3 创建yaml文件

vi t02.yaml

内容:

VERSION: 1.0.0.1
DATABASE: addseg
USER: gpadmin
HOST: 192.25.108.86
PORT: 5432
GPLOAD:
INPUT:
- SOURCE:
LOCAL_HOSTNAME:
- 192.25.105.188
PORT: 55555
FILE:
- /home/gpload/data/t21.txt
- COLUMNS:
- id: int
- name: text
- FORMAT: text
- DELIMITER: '|'
- ERROR_LIMIT: 25
OUTPUT:
- TABLE: t02
- MODE: INSERT

Yaml配置参数说明:

VERSION: 1.0.0.1           #指定控制文件schema的版本
DATABASE: db_name #指定连接数据库的名字,如果没有指定,由环境变量$PGDATABASE,或者通过gpload参数-d指定
USER: db_username #指定连接目标数据库的用户名,如果不使用超级管理员,服务参数gp_external_grant_privileges必须设置成on
HOST: master_hostname #指定master主机名,也可以通过gpload的-h选项,或者环境变量$PGHOST指定
PORT: master_port #指定master的连接端口号,默认是5432,或者通过gpload命令的-p选项或者环境变量$PGPORT指定。
GPLOAD: #必须指定,表示装载设置部分在它下面必须定义INPUT:和OUTPUT:两个部分。
INPUT: #必须指定,这部分指定装载数据的格式和位置
- SOURCE: #必须指定,定义source文件的位置,每个输入部分可以定义多个source部分
LOCAL_HOSTNAME: #指定gpload运行的主机名称和ip地址,如果有多块网卡,可以同时使用它们,提高装载速度。默认只使用首选主机名和IP
- hostname_or_ip
PORT: http_port #指定gpfdist使用的端口,也可以选择端口范围,由系统选择,如果同时指定,port设置优先级| PORT_RANGE: [start_port_range, end_port_range]
FILE: #指定装载数据文件的位置,目录或者命名管道。如果文件使用gpzip或者bzip2进行了压缩,它可以自动解压。可以使用通配符*和C语言风格的关系匹配模式指定多个文件
- /path/to/input_file
- COLUMNS: #指定数据源的数据格式,如果没有指定这部分,source表的列顺序,数量,以及数据类型必须与目标表一致
- field_name: data_type
- FORMAT: text | csv #指定文件格式是text还是csv
- DELIMITER: 'delimiter_character' #指定文本数据域(列)之间的分割符,默认是|
- ESCAPE: 'escape_character' | 'OFF' #text定义转义字符,text格式默认是\,在text格式中可以选择off关掉转义字符
- NULL_AS: 'null_string' #指定描述空值的字符串,text格式默认是\N,csv格式不使用转义符号的空值
- FORCE_NOT_NULL: true | false #csv格式,强制所有字符默认都用”“括起,因此不能有空值,如果两个分割符之间没有值,被当做0长度字符串,认为值已经丢失
- QUOTE: 'csv_quote_character' #csv指定转义字符,默认是"
- HEADER: true | false #是否跳过数据文件第一行,当做表头
- ENCODING: database_encoding #定数据源的字符集
- ERROR_LIMIT: integer #指定由于不符合格式数据记录的上限,如果超过该上限,gpload停止装载,否则正确记录可以被装载,错误记录抛出写入错误表。但它仅支持数据格式错误,不支持违背约束的问题
- ERROR_TABLE: schema.table_name #指定不符合格式要求记录的错误表。如果指定的表不存在系统自动创建
OUTPUT:
- TABLE: schema.table_name #指定装载的目标表
- MODE: insert | update | merge #指定操作模式,默认是insert。merge操作不支持使用随机分布策略的表
- MATCH_COLUMNS: #为update操作和merge操作指定匹配条件。
- target_column_name
- UPDATE_COLUMNS: #为update操作和merge操作指定更新的列
- target_column_name
- UPDATE_CONDITION: 'boolean_condition' #指定where条件,目标表中只有满足条件的记录才能更改,(merge情况下,只有满足条件的记录才能insert)
- MAPPING: #指定source列和目标列的映射关系。
target_column_name: source_column_name | 'expression'
PRELOAD: #指定load之前的操作
- TRUNCATE: true | false #如果设置成true,装载之前先删除目标表中所有记录,再装载
- REUSE_TABLES: true | false #设置成true,不会删除外部表对象或者中间表对象。从而提升性能。
SQL:
- BEFORE: "sql_command" #装载操作开始前执行的SQL,比如写日志表
- AFTER: "sql_command" #装载操作之后执行的SQL

4.4 执行yaml文件

(1)gpload服务器上,执行ymal:

输入:gpload -f t02.yml

(2)greenplum集群的master节点,查看表数据:

安装成功;

Gpload安装手册(Linux版本)的更多相关文章

  1. Linux版本显示和区别32位还是64位系统

    查看已经安装的Linux版本信息 1.cat /etc/issue 查看版本 [root@master master]# cat /etc/issue \S Kernel \r on an \m 2. ...

  2. Linux虚拟机安装配置手册(版本:7.3)

    一.准备 ①.安装VMWare 安装步骤省略.我这里使用的版本如下: ②.Linux系统镜像文件: 建议使用最新版本的Linux系统.有些组件对系统内核版本要求比较高,有可能会产生错误. 我这里使用的 ...

  3. linux下subversion server安装手册

    linux下subversion server安装手册 安装基于的Linux版本为:Red Hat Enterprise Linux Server release 6.3. 一 准备需要的安装包. ( ...

  4. Linux系统启动流程及安装命令行版本

    Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...

  5. Linux下的PostgreSQL简单安装手册

    1. 安装环境     linux版本: CentOS release 6.2 (Final)     pg版本    : postgresql-9.5.0   2. pg数据库下载地址 --http ...

  6. Linux下yum安装MySQL yum安装MySQL指定版本

    yum安装MySQL 1. 查看有没有安装过     yum list installed MySQL* (有存在要卸载yum remove MySQL*)     rpm -qa | grep my ...

  7. Linux 安装多个版本JDK并设置默认版本

    1 官网下载JDK版本 jdk-8u181-linux-x64.tar.gz 2 利用ssh工具上传安装包到Linux系统 传至:/usr/local 3 Linux用户安装的程序一般放在 /usr/ ...

  8. redis安装,windows,linux版本并部署服务

    一.使用场景         项目中采用数据库访问量过大或访问过于频繁,将会对数据库带来很大的压力.redis数据库是以非关系数据库的出现,后来redis的迭代版本支持了缓存数据.登录session状 ...

  9. VM for Linux 版本的Bundle格式文件的安装

    VM for Linux 版本的安装步骤: 下面链接下载VM程序包 : https://www.vmware.com/products/workstation-pro/workstation-pro- ...

随机推荐

  1. 用SUMIF对超15位的代码进行条件求和,出错了,原因是....

    用SUMIF对超15位的代码进行条件求和,出错了,原因是.... 2017-10-29 23:01 一.问题 有读者朋友问: 用SUMIF进行条件求和时,如果统计的条件是超15位的代码,就会出错,比如 ...

  2. java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test]解决办法

    在进行简单的Junit单元测试时,测试一直报错: 先来看一下我的单元测试类: import org.junit.Test; import org.junit.runner.RunWith; impor ...

  3. 在VS中为C/C++源代码文件生成对应的汇编代码文件(.asm)

    以VS2017为例 然后重新生成工程,在工程目录中就会有对应的汇编代码文件.

  4. ubuntu中python3安装package

    1.实验环境 Ubuntu16.04x86 + python3.5 ubuntu中同时存在python2.7 和 python3.5 2.pip使用说明 sudo pip install packag ...

  5. python argparse sys.argv

    python argparse sys.argv class WeiLearningArgumentParser(argparse.ArgumentParser): def __init__(self ...

  6. 关于IOC和DI

    IoC (Inverse of Control)即控制反转.是指将原来程序中自己创建实现类对象的控制权反转到IOC容器中.只需要通过IOC获了对象的实例,将IOC当成一个黑盒子.工厂.容器. spri ...

  7. python re(正则表达式模块)学习

    一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...

  8. POJ 3984 - 迷宫问题 - [BFS水题]

    题目链接:http://poj.org/problem?id=3984 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, ...

  9. [Database.System.Concepts(6th.Edition.2010)].Abraham.Silberschatz. Ch8学习笔记

    Database Ch8.relational design 8.1 features of good design 8.1.1 larger alternatives why design is g ...

  10. ssh无输入密码登录问题

    每天一个Linux命令:ps命令 ssh原理和运用(一):远程登录 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html SSH是每 ...