补实验
import org.apache.hadoop.hbase.mapreduce.TableMapper; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; public class RowCountMapper extends TableMapper<Text, LongWritable> { private static final LongWritable ONE = new LongWritable(1); private Text rowKey = new Text(); @Override protected void map(ImmutableBytesWritable key, Result value, Context context) throws IOException, InterruptedException { rowKey.set(key.get()); context.write(new Text("rowCount"), ONE); } }
import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; public class CountRows { public static void main(String[] args) throws Exception { org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Table table = connection.getTable(TableName.valueOf("shujuku")); Scan scan = new Scan(); ResultScanner scanner = table.getScanner(scan); int rowCount = 0; for (Result result : scanner) { rowCount++; } scanner.close(); connection.close(); System.out.println("Row count: " + rowCount); } }
import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import java.util.ArrayList; import java.util.List; public class ClearTableData { public static void main(String[] args) throws Exception { org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Table table = connection.getTable(TableName.valueOf("shujuku")); Scan scan = new Scan(); List<Delete> deletes = new ArrayList<>(); table.getScanner(scan).forEach(result -> { Delete delete = new Delete(result.getRow()); deletes.add(delete); }); table.delete(deletes); System.out.println("All records deleted successfully."); connection.close(); } }