Apache Seatunnel-Sink plugin : Hbase [Spark]

作者: Apache Seatunnel

采用hbase-connectors将数据输出到Hbase, Hbase(>=2.1.0)以及Spark(>=2.0.0)的版本兼容均依赖于hbase-connectors
Apache Hbase官方文档中hbase-connectors也是Apache Hbase Repos的其中之一。

Options

name type required default value
[hbase.zookeeper.quorum] hbase.zookeeper.quorum
[catalog] catalog
[staging_dir] staging_dir
[save_mode] save_mode
[hbase.] hbase.
hbase.zookeeper.quorum [string]

zookeeper集群的地址,格式是:centos01:2181,centos02:2181,centos03:2181

catalog [string]

通过catalog来定义hbase表的结构,hbase的表名以及它的namespace,具体哪几个columns做rowkey, column family和columns的对应关系均可以通过catalog来进行定义。
hbase table catalog

stagging_dir [string]

Hdfs上的某个路径,该路径会生成需要加载到hbase的数据,加载完数据后数据文件会被删除,目录还在。

save_mode [string]

支持两种写模式,overwriteappendoverwrite代表当hbase表中若存在数据,那么将会进行truncate清空,然后再加载数据。
append代表不会清空hbase表原有的数据,而直接进行加载操作。

hbase.* [string]

用户还可以指定多个非必须参数,详细的参数列表见Hbase支持的参数.

如果不指定这些非必须参数,它们将使用官方文档给出的默认值。

common options [string]

Sink 插件通用参数,详情参照 [Sink Plugin]

Examples

 hbase {
    source_table_name = "hive_dataset"
    hbase.zookeeper.quorum = "centos01:2181,centos02:2181,centos03:2181"
    catalog = "{\"table\":{\"namespace\":\"default\", \"name\":\"customer\"},\"rowkey\":\"c_custkey\",\"columns\":{\"c_custkey\":{\"cf\":\"rowkey\", \"col\":\"c_custkey\", \"type\":\"bigint\"},\"c_name\":{\"cf\":\"info\", \"col\":\"c_name\", \"type\":\"string\"},\"c_address\":{\"cf\":\"info\", \"col\":\"c_address\", \"type\":\"string\"},\"c_city\":{\"cf\":\"info\", \"col\":\"c_city\", \"type\":\"string\"},\"c_nation\":{\"cf\":\"info\", \"col\":\"c_nation\", \"type\":\"string\"},\"c_region\":{\"cf\":\"info\", \"col\":\"c_region\", \"type\":\"string\"},\"c_phone\":{\"cf\":\"info\", \"col\":\"c_phone\", \"type\":\"string\"},\"c_mktsegment\":{\"cf\":\"info\", \"col\":\"c_mktsegment\", \"type\":\"string\"}}}"
    staging_dir = "/tmp/hbase-staging/2020.11.9/"
    save_mode = "overwrite"
}

Hbase的这个插件没有给用户提供创建表的功能,因为hbase表的预分区方式会和业务逻辑有关,所以运行该插件的时候需要用户自己提前创建好hbase的表以及它的预分区;对于rowkey的设计,catalog本身就支持了多列联合 rowkey=”col1:col2:col3“,但若有其他对rowkey的设计需求,例如:加盐,等等操作,完全可以通过解耦的方式基于transform pluginrowkey进行修改。

文章列表

更多推荐

更多
这里什么都没有

近期文章

更多
文章目录

    推荐作者

    更多