hbase2.1.x java delete根据rowkey删除一行数据、删除某列族数据、删除某列数据(废弃)

上接:hbase2.1.x java 创建工程

废弃,详见

hbase2.1.x java delete根据rowkey删除一个单元格数据

hbase2.1.x java delete根据rowkey删除一行数据

步骤

  1. 获取table对象
  2. 根据rowkey构建 Delete 对象
  3. 执行 Delete 方法
  4. 关闭table

删除一行数据

根据 rowkey 删除 所有列族数据,也会 删除 所有历史数据

添加测试数据

put 'student','3000','info:name','lilei'
put 'student','3000','info:age','020'
put 'student','3000','info:age','021'
put 'student','3000','info:age','022'
put 'student','3000','info2:sfzh','123456'

关键代码

/**
 * 根据rowKey,删除某行的数据
 * @param tableName
 * @param rowKey
 * @throws IOException
 */
public void delete(String tableName,String rowKey) throws IOException {
    TableName tn = TableName.valueOf(tableName);
    Table table = conn.getTable(tn);
    Delete delete=new Delete(Bytes.toBytes(rowKey));
    table.delete(delete);
    table.close();

}

完整代码

package top.malaoshi;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.log4j.Logger;

import java.io.IOException;
import java.util.List;

public class DataOP {
    private static final Logger LOG=Logger.getLogger(DataOP.class);

    private Connection conn;

    /**
     * 创建hbase连接
     * @throws IOException
     */
    public void conn() throws IOException {
        //创建hbase配置对象
        Configuration conf= HBaseConfiguration.create();
        //通过配置对象创建连接
        conn = ConnectionFactory.createConnection(conf);
    }

    public void delete() throws IOException {
        //获取table对象
        Table table = conn.getTable(TableName.valueOf("orders"));
        Delete delete = new Delete(Bytes.toBytes("1000"));
        table.delete(delete);

        table.close();
    }

    /**
     * 关闭连接
     * @throws IOException
     */
    public void close() throws IOException {
        conn.close();
    }

    public static void main(String[] args) {
        DataOP op = new DataOP();
        try {
            op.conn();
            op.delete();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                op.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

删除 某列族 数据

根据 rowkey 删除 指定列族的数据,也会删除该列族的 历史数据

添加测试数据

put 'student','3000','info:name','lilei'
put 'student','3000','info:age','020'
put 'student','3000','info:age','021'
put 'student','3000','info:age','022'
put 'student','3000','info2:sfzh','123456'

代码

/**
 * 根据rowKey,删除某列族的数据
 * @param tableName
 * @param rowKey
 * @param family
 * @throws IOException
 */
public void deleteFamily(String tableName,String rowKey,String family) throws IOException {
    TableName tn = TableName.valueOf(tableName);
    Table table = conn.getTable(tn);
    Delete delete=new Delete(Bytes.toBytes(rowKey));
    delete.addFamily(Bytes.toBytes(family));
    table.delete(delete);
    table.close();

}

删除 某列 数据

会删除 指定列的数据,不会删除 该列的 历史数据,即:会显示上一个历史数据

添加测试数据

put 'student','3000','info:name','lilei'
put 'student','3000','info:age','020'
put 'student','3000','info:age','021'
put 'student','3000','info:age','022'
put 'student','3000','info2:sfzh','123456'

代码

/**
 * 根据rowKey,删除某列的数据
 * @param tableName
 * @param rowKey
 * @param family
 * @throws IOException
 */
public void deleteColumn(String tableName,String rowKey,String family,String column) throws IOException {
    TableName tn = TableName.valueOf(tableName);
    Table table = conn.getTable(tn);
    Delete delete=new Delete(Bytes.toBytes(rowKey));
    delete.addColumn(Bytes.toBytes(family),Bytes.toBytes(column));
    table.delete(delete);
    table.close();

}

原文出处:/show_1IX1wiXsPQe6.html