Phoenix批量加载数据到HBase

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43215250/article/details/90638627
  1. 通过PSQL加载

    用法:

    bin/psql.py [-t table-name] [-h comma-separated-column-names | in-line]
                [-d field-delimiter-char quote-char escape-char]<zookeeper>
                <path-to-sql-or-csv-file>...
    
    参数 描述
    -a,–array-separator 数组元素分隔符,默认 ‘:’
    -b,–binaryEncoding 指定二进制编码
    -d,–delimiter 提供自定义分隔符解析 CSV 文件
    -e,–escape-character 提供自定义转义字符,默认为反斜杠
    -h,–header 覆盖CSV数据映射到的列名称,区分大小写。内联的特殊值,表示CSV文件的第一行确定数据映射到的列
    -l,–local-index-upgrade 用于通过将索引数据从单独的表移动到同一表中单独的列族来升级本地索引数据。
    -m,–map-namespace 用于将表映射到与schema匹配的名称空间,要求phoenix.schema。isNamespaceMappingEnabled被启用
    -q,–quote-character 自定义短语分隔符,默认为双引号
    -s,–strict 以严格模式运行,在CSV解析错误时抛出异常
    -t,–table 加载数据的表的名称。默认情况下,表的名称取自CSV文件的名称,此参数区分大小写。

    示例:

    [root@cdh01 ~]# cd /opt/cloudera/parcels/APACHE_PHOENIX/bin
    [root@cdh01 bin]# ./phoenix-psql.py -t MY_SCHEMA.PERSONAS -d '\t' localhost /root/part-m-00017.csv 
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/APACHE_PHOENIX-4.14.0-cdh5.12.2.p0.3/lib/phoenix/phoenix-4.14.0-cdh5.12.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    19/05/28 14:00:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    csv columns from database.
    CSV Upsert complete. 1 rows upserted
    Time: 0.351 sec(s)
    
  2. 通过MapReduce加载

    用法:

    HADOOP_CLASSPATH=$(hbase mapredcp):/path/to/hbase/conf \
    hadoop jar phoenix-<version>-client.jar \
    org.apache.phoenix.mapreduce.CsvBulkLoadTool \
    --table EXAMPLE \
    --input /data/example.csv
    

    参数列表:

    参数 描述
    -a,–array-delimiter 数组元素分隔符 (可选)
    -b,–binaryEncoding 二进制编码格式
    -c,–import-columns 要导入的列列表,以逗号分隔
    -d,–delimiter 输入分隔符,默认为逗号
    -e,–escape 提供自定义转义字符,默认为反斜杠
    -g,–ignore-errors 忽略输入错误
    -h,–help 打印帮助说明
    -i,–input 输入CSV路径,为hdfs路径 (必填)
    -it,–index-table 需要加载的索引表
    -o,–output 临时HFiles的输出路径 (可选)
    -q,–quote 自定义短语分隔符,默认为双引号
    -s,–schema schema 名称 (可选)
    -t,–table Phoenix表名 (必填)
    -z,–zookeeper Zookeeper连接地址 (可选)

    示例:

    HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol.jar:/opt/cloudera/parcels/CDH/lib/hbase/conf \
    hadoop jar /opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/phoenix-4.14.0-cdh5.12.2-client.jar \
    org.apache.phoenix.mapreduce.CsvBulkLoadTool \
    --table MY_SCHEMA.PERSONAS \
    --delimiter '\t' \
    --input /tmp/hbase/test/part-m-00017
    

    注意:
    phoenix-4.14.0-cdh5.12.2-client.jar需添加集群的hbase-site.xml配置文件。
    在这里插入图片描述
    在这里插入图片描述
    参考 :https://phoenix.apache.org/bulk_dataload.html

猜你喜欢

转载自blog.csdn.net/weixin_43215250/article/details/90638627