Skip to content

HBase11x SQL Writer

HBase11x SQL Writer 插件利用 Phoniex, 用于向 HBase 1.x 版本的数据库写入数据。

如果你希望通过调用原生接口写入数据,则需要使用HBase11xWriter 插件

如果 HBase 是 2.X 版本,则需要使用 HBase20xsqlwriter 插件

配置样例

json
{
  "job": {
    "content": {
      "reader": {
        "name": "txtfilereader",
        "parameter": {
          "path": "/tmp/normal.txt",
          "charset": "UTF-8",
          "column": [
            {
              "index": 0,
              "type": "String"
            },
            {
              "index": 1,
              "type": "string"
            },
            {
              "index": 2,
              "type": "string"
            },
            {
              "index": 3,
              "type": "string"
            }
          ],
          "fieldDelimiter": ","
        }
      },
      "writer": {
        "name": "hbase11xsqlwriter",
        "parameter": {
          "batchSize": "256",
          "column": [
            "UID",
            "TS",
            "EVENTID",
            "CONTENT"
          ],
          "haveKerberos": "true",
          "kerberosPrincipal": "hive@EXAMPLE.COM",
          "kerberosKeytabFilePath": "/tmp/hive.headless.keytab",
          "hbaseConfig": {
            "hbase.zookeeper.quorum": "node1,node2,node3:2181",
            "zookeeper.znode.parent": "/hbase-secure"
          },
          "nullMode": "skip",
          "table": "TEST_TBL"
        }
      }
    },
    "setting": {
      "speed": {
        "channel": 5,
        "bytes": -1
      }
    }
  }
}

参数说明

配置项是否必须数据类型默认值描述
hbaseConfigmaphbase 集群地址,详见示例配置
tablestring要导入的表名,大小写敏感,通常 phoenix 表都是 大写 表名
columnlist列名,大小写敏感,通常 phoenix 的列名都是 大写
batchSizeint256一次写入的最大记录数
nullModestringskip读取到的列值为 null 时,如何处理。
haveKerberosboleanfalse是否启用 Kerberos 认证, true 表示启用, false 表示不启用
kerberosPrincipalstringkerberos 凭证信息,仅当 havekerberos 启用后有效
kerberosKeytabFilePathstringkerberos 凭证文件的绝对路径,仅当 havekerberos 启用后有效

nullMode

支持 skip, empty,前者表示跳过该列,后者表示插入空值,数值类型为 0,字符类型为 null

注意:启用 kerberos 认证后,程序需要知道hbase-site.xml 所在的路径,一种办法是运行执行在环境变量 CLASSPATH 中增加该文件的所在路径。

另外一个解决办法是将 hbase-site.xml 文件拷贝到插件的 libs 目录里。