zoukankan      html  css  js  c++  java
  • Gpload安装手册(Linux版本)

    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.shGPHOME_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代表授权方式,包括Trustmd5等方式,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文件

    1gpload服务器上,执行ymal

    输入:gpload -f t02.yml

     

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

     

    安装成功;

  • 相关阅读:
    挑战程序设计竞赛 第2章习题 poj 1017 Packets 贪心模拟
    挑战程序设计竞赛 2章习题 poj 2376 Cleaning Shifts
    Leetcode 27. 移除元素 双指针
    Leetcode 26. 删除有序数组中的重复项 双指针
    Leetcode 31. 下一个排列
    webserver 发布问题
    [转]机器学习中的各种距离
    VUE3 + TYPESCRIPT 开发实践总结
    我和ABP vNext 的故事
    ABP Framework 为什么好上手,不好深入?探讨最佳学习姿势!
  • 原文地址:https://www.cnblogs.com/lizm166/p/10558194.html
Copyright © 2011-2022 走看看