public void init()

in hbase2/src/main/java/site/ycsb/db/hbase2/HBaseClient2.java [125:203]


  public void init() throws DBException {
    if ("true"
        .equals(getProperties().getProperty("clientbuffering", "false"))) {
      this.clientSideBuffering = true;
    }
    if (getProperties().containsKey("writebuffersize")) {
      writeBufferSize =
          Long.parseLong(getProperties().getProperty("writebuffersize"));
    }

    if (getProperties().getProperty("durability") != null) {
      this.durability =
          Durability.valueOf(getProperties().getProperty("durability"));
    }

    if ("kerberos".equalsIgnoreCase(config.get("hbase.security.authentication"))) {
      config.set("hadoop.security.authentication", "Kerberos");
      UserGroupInformation.setConfiguration(config);
    }

    if ((getProperties().getProperty("principal") != null)
        && (getProperties().getProperty("keytab") != null)) {
      try {
        UserGroupInformation.loginUserFromKeytab(getProperties().getProperty("principal"),
              getProperties().getProperty("keytab"));
      } catch (IOException e) {
        System.err.println("Keytab file is not readable or not found");
        throw new DBException(e);
      }
    }

    String table = getProperties().getProperty(TABLENAME_PROPERTY, TABLENAME_PROPERTY_DEFAULT);
    try {
      THREAD_COUNT.getAndIncrement();
      synchronized (THREAD_COUNT) {
        if (connection == null) {
          // Initialize if not set up already.
          connection = ConnectionFactory.createConnection(config);
          
          // Terminate right now if table does not exist, since the client
          // will not propagate this error upstream once the workload
          // starts.
          final TableName tName = TableName.valueOf(table);
          try (Admin admin = connection.getAdmin()) {
            if (!admin.tableExists(tName)) {
              throw new DBException("Table " + tName + " does not exists");
            }
          }
        }
      }
    } catch (java.io.IOException e) {
      throw new DBException(e);
    }

    if ((getProperties().getProperty("debug") != null)
        && (getProperties().getProperty("debug").compareTo("true") == 0)) {
      debug = true;
    }

    usePageFilter = isBooleanParamSet("hbase.usepagefilter", usePageFilter);


    if (isBooleanParamSet("hbase.usescanvaluefiltering", false)) {
      useScanValueFiltering=true;
      String operator = getProperties().getProperty("hbase.scanfilteroperator");
      operator = operator == null || operator.trim().isEmpty() ? DEFAULT_SCAN_FILTER_OPERATOR : operator;
      scanFilterOperator = CompareOperator.valueOf(operator.toUpperCase());
      String filterValue = getProperties().getProperty("hbase.scanfiltervalue");
      filterValue = filterValue == null || filterValue.trim().isEmpty() ? DEFAULT_SCAN_FILTER_VALUE : filterValue;
      scanFilterValue = new BinaryComparator(Bytes.fromHex(filterValue));
    }

    columnFamily = getProperties().getProperty("columnfamily");
    if (columnFamily == null) {
      System.err.println("Error, must specify a columnfamily for HBase table");
      throw new DBException("No columnfamily specified");
    }
    columnFamilyBytes = Bytes.toBytes(columnFamily);
  }