
# 通过ThriftServer实例向HBase表中写入数据
#### 功能简介
传入ThriftServer实例所在host和提供服务的port，根据认证凭据及配置文件新建Thrift客户端，访问ThriftServer，分别使用put和putMultiple进行写数据操作。
#### 代码样例
- 方法调用
  ```
  // Write data with put.
  putData(client, TABLE_NAME);
  // Write data with putlist.
   putDataList(client, TABLE_NAME);
  ```
  
- 使用put进行写数据 以下代码片段在"hbase-thrift-example\\src\\main\\java\\com\\huawei\\hadoop\\hbase\\examples"包的"ThriftSample"类的putData方法中。
  ```
  private void putData(THBaseService.Iface client, String tableName) throws TException {
       LOGGER.info("Test putData.");
       TPut put = new TPut();
       put.setRow("row1".getBytes());
       TColumnValue columnValue = new TColumnValue();
       columnValue.setFamily(COLUMN_FAMILY.getBytes());
       columnValue.setQualifier("q1".getBytes());
       columnValue.setValue("test value".getBytes());
       List<TColumnValue> columnValues = new ArrayList<>(1);
       columnValues.add(columnValue);
       put.setColumnValues(columnValues);
       ByteBuffer table = ByteBuffer.wrap(tableName.getBytes());
       client.put(table, put);
       LOGGER.info("Test putData done.");
   }
  ```
  
- 使用putMultiple进行写数据 以下代码片段在"hbase-thrift-example\\src\\main\\java\\com\\huawei\\hadoop\\hbase\\examples"包的"ThriftSample"类的putDataList方法中。
  ```
  private void putDataList(THBaseService.Iface client, String tableName) throws TException {
       LOGGER.info("Test putDataList.");
       TPut put1 = new TPut();
       put1.setRow("row2".getBytes());
       List<TPut> putList = new ArrayList<>();
       TColumnValue q1Value = new TColumnValue(ByteBuffer.wrap(COLUMN_FAMILY.getBytes()),
           ByteBuffer.wrap("q1".getBytes()), ByteBuffer.wrap("test value".getBytes()));
       TColumnValue q2Value = new TColumnValue(ByteBuffer.wrap(COLUMN_FAMILY.getBytes()),
           ByteBuffer.wrap("q2".getBytes()), ByteBuffer.wrap("test q2 value".getBytes()));
       List<TColumnValue> columnValues = new ArrayList<>(2);
       columnValues.add(q1Value);
       columnValues.add(q2Value);
       put1.setColumnValues(columnValues);
       putList.add(put1);
       TPut put2 = new TPut();
       put2.setRow("row3".getBytes());
       TColumnValue columnValue = new TColumnValue();
       columnValue.setFamily(COLUMN_FAMILY.getBytes());
       columnValue.setQualifier("q1".getBytes());
       columnValue.setValue("test q1 value".getBytes());
       put2.setColumnValues(Collections.singletonList(columnValue));
       putList.add(put2);
       ByteBuffer table = ByteBuffer.wrap(tableName.getBytes());
       client.putMultiple(table, putList);
       LOGGER.info("Test putDataList done.");
   }
  ```
  
 
