HBase11xsql Writer#

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

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

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

配置样例#

{
  "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
      }
    }
  }
}

参数说明#

配置项 是否必须 默认值 描述
hbaseConfig hbase集群地址,zk为必填项,格式:ip1,ip2,ip3[:port]znode 是可选的,默认值是 /hbase
table 要导入的表名,大小写敏感,通常phoenix表都是 大写 表名
column 列名,大小写敏感,通常phoenix的列名都是 大写 ,数据类型无需填写,会自动获取列
batchSize 256 一次写入的最大记录数
nullMode skip 读取到的列值为null时,如何处理。支持 skip, empty,前者表示跳过该列,后者表示插入空值,数值类型为0,字符类型为null
haveKerberos false 是否启用Kerberos认证, true 表示启用, false 表示不启用
kerberosPrincipal null kerberos 凭证信息,仅当 havekerberos 启用后有效
kerberosKeytabFilePath null kerberos 凭证文件的绝对路径,仅当 havekerberos 启用后有效

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

另外一个解决办法是修改 addax.py 中的 CLASS_PATH 变量,增加 hbase-site.xml 的路径