头歌hbase(相关的五个实验)(代码片段)

海浪~& 海浪~&     2022-12-03     555

关键词:

目录

HBase的安装与基本操作

HBase 伪分布式环境搭建 

HBase 开发:使用Java操作HBase

第1关:创建表

第2关:添加数据

第3关:获取数据

第4关:删除表

HBase 开发:批量操作

第1关:批量获取数据

第2关:批量删除数据

第3关:批量导入数据至HBase

HBase开发: Java API 管理表

第1关:JavaAPI获取表的列表

第2关:修改表

第3关:禁用表、启用表、删除表


HBase的安装与基本操作

第一关:HBase数据库的安装与配置

mkdir /app

cd /opt

tar -zxvf hbase-2.1.1-bin.tar.gz -C /app

vim /app/hbase-2.1.1/conf/hbase-env.sh

vi中的操作:按i编写下面这行代码在文件末尾(换英文键盘输入)

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111

vi中的操作:按键盘的esc键

shift + :     输入wq保存退出

下面两步一样

vi /app/hbase-2.1.1/conf/hbase-site.xml

 <configuration>

  <property>

       <name>hbase.rootdir</name>

       <value>file:///root/data/hbase/data</value>

  </property>

  <property>

       <name>hbase.zookeeper.property.dataDir</name>

       <value>/root/data/hbase/zookeeper</value>

  </property>

  <property>    

  <name>hbase.unsafe.stream.capability.enforce</name>

        <value>false</value>

  </property>

</configuration>

vim /etc/profile

# SET HBASE_enviroment

HBASE_HOME=/app/hbase-2.1.1

export PATH=$PATH:$HBASE_HOME/bin

source /etc/profile

start-hbase.sh

第二关:创建表

hbase shell
回车
create 'test','data'
回车
create 'dept','data'
回车
create 'emp','data'
回车
list
测评

第三关:添加数据,删除数据

# 启动 HBase  一行一次
start-hbase.sh  
# 进入 hbase shell  
hbase shell  
create 'mytable','data'  
put 'mytable','row1','data:1','zhangsan'  
put 'mytable','row2','data:2','zhangsanfeng'  
put 'mytable','row3','data:3','zhangwuji'
# 退出  
exit 


 

HBase 伪分布式环境搭建 

下面这位博主的亲测详细有用

Fdecad的博客_CSDN博客-数据结构,头歌实训,配置环境领域博主

HBase 开发:使用Java操作HBase

第1关:创建表

代码文件

package step1;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
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;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;


public class Task
	
	public void createTable()throws Exception
		/********* Begin *********/
		Configuration config = HBaseConfiguration.create();

Connection connection = ConnectionFactory.createConnection(config);

try 

// Create table

Admin admin = connection.getAdmin();

try 

TableName tableName = TableName.valueOf("dept");

// 新 API 构建表

// TableDescriptor 对象通过 TableDescriptorBuilder 构建;

TableDescriptorBuilder tableDescriptor =

TableDescriptorBuilder.newBuilder(tableName);

ColumnFamilyDescriptor family =

ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();// 构建列族对象

tableDescriptor.setColumnFamily(family); // 设置列族

admin.createTable(tableDescriptor.build()); // 创建表


 

TableName emp = TableName.valueOf("emp");

// 新 API 构建表

// TableDescriptor 对象通过 TableDescriptorBuilder 构建;

TableDescriptorBuilder empDescriptor =

TableDescriptorBuilder.newBuilder(emp);

ColumnFamilyDescriptor empfamily =

ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("emp")).build();// 构建列族对象

empDescriptor.setColumnFamily(empfamily); // 设置列族

admin.createTable(empDescriptor.build()); // 创建表

 finally 

admin.close();



 finally 

connection.close();






		/********* End *********/
	

命令行

start-dfs.sh

回车

start-hbase.sh

回车

第2关:添加数据

代码文件

package step2;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.HColumnDescriptor;

import org.apache.hadoop.hbase.HTableDescriptor;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.Admin;

import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;

import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;

import org.apache.hadoop.hbase.client.Connection;

import org.apache.hadoop.hbase.client.ConnectionFactory;

import org.apache.hadoop.hbase.client.Get;

import org.apache.hadoop.hbase.client.Put;

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;

import org.apache.hadoop.hbase.client.TableDescriptor;

import org.apache.hadoop.hbase.client.TableDescriptorBuilder;

import org.apache.hadoop.hbase.util.Bytes;

public class Task 

 public void insertInfo()throws Exception

 /********* Begin *********/

 Configuration config = HBaseConfiguration.create();

 Connection connection = ConnectionFactory.createConnection(config);

 Admin admin = connection.getAdmin();

 TableName tableName = TableName.valueOf("tb_step2");

 TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);

 ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();//  构建列族对象

 tableDescriptor.setColumnFamily(family); //  设置列族

 admin.createTable(tableDescriptor.build()); //  创建表

 // 添加数据

 byte[] row1 = Bytes.toBytes("row1");

 Put put1 = new Put(row1); 

 byte[] columnFamily1 = Bytes.toBytes("data"); // 列

 byte[] qualifier1 = Bytes.toBytes(String.valueOf(1)); // 列族修饰词

 byte[] value1 = Bytes.toBytes("张三丰"); // 值

 put1.addColumn(columnFamily1, qualifier1, value1);

 byte[] row2 = Bytes.toBytes("row2");

 Put put2 = new Put(row2); 

 byte[] columnFamily2 = Bytes.toBytes("data"); // 列

 byte[] qualifier2 = Bytes.toBytes(String.valueOf(2)); // 列族修饰词

 byte[] value2 = Bytes.toBytes("张无忌"); // 值

 put2.addColumn(columnFamily2, qualifier2, value2);

 Table table = connection.getTable(tableName);

 table.put(put1);

 table.put(put2);

 /********* End *********/

 

命令行

start-dfs.sh

回车

start-hbase.sh

回车

第3关:获取数据

代码文件

package step3;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.HColumnDescriptor;

import org.apache.hadoop.hbase.HTableDescriptor;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.Admin;

import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;

import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;

import org.apache.hadoop.hbase.client.Connection;

import org.apache.hadoop.hbase.client.ConnectionFactory;

import org.apache.hadoop.hbase.client.Get;

import org.apache.hadoop.hbase.client.Put;

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;

import org.apache.hadoop.hbase.client.TableDescriptor;

import org.apache.hadoop.hbase.client.TableDescriptorBuilder;

import org.apache.hadoop.hbase.util.Bytes;

public class Task 

 public void queryTableInfo()throws Exception

 /********* Begin *********/

 Configuration config = HBaseConfiguration.create();

 Connection connection = ConnectionFactory.createConnection(config);

 Admin admin = connection.getAdmin();

 TableName tableName = TableName.valueOf("t_step3");

 Table table = connection.getTable(tableName);

 // 获取数据

 Get get = new Get(Bytes.toBytes("row1")); // 定义 get 对象

 Result result = table.get(get); // 通过 table 对象获取数据

 //System.out.println("Result: " + result);

 // 很多时候我们只需要获取“值”   这里表示获取  data:1  列族的值

 byte[] valueBytes = result.getValue(Bytes.toBytes("data"), Bytes.toBytes("1")); // 获取到的是字节数组

 // 将字节转成字符串

 String valueStr = new String(valueBytes,"utf-8");

 System.out.println("value:" + valueStr);

 TableName tableStep3Name = TableName.valueOf("table_step3");

 Table step3Table = connection.getTable(tableStep3Name);

 // 批量查询

 Scan scan = new Scan();

 ResultScanner scanner = step3Table.getScanner(scan);

 try 

 int i = 0;

 for (Result scannerResult: scanner) 

 //byte[] value = scannerResult.getValue(Bytes.toBytes("data"), Bytes.toBytes(1));

 // System.out.println("Scan: " + scannerResult);

 byte[] row = scannerResult.getRow();

 System.out.println("rowName:" + new String(row,"utf-8"));

 

  finally 

 scanner.close();

 

 /********* End *********/

 

命令行

start-dfs.sh

回车

start-hbase.sh

回车

第4关:删除表

代码文件

package step4;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.HColumnDescriptor;

import org.apache.hadoop.hbase.HTableDescriptor;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.Admin;

import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;

import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;

import org.apache.hadoop.hbase.client.Connection;

import org.apache.hadoop.hbase.client.ConnectionFactory;

import org.apache.hadoop.hbase.client.Get;

import org.apache.hadoop.hbase.client.Put;

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;

import org.apache.hadoop.hbase.client.TableDescriptor;

import org.apache.hadoop.hbase.client.TableDescriptorBuilder;

import org.apache.hadoop.hbase.util.Bytes;

public class Task 

 public void deleteTable()throws Exception

 /********* Begin *********/

 Configuration config = HBaseConfiguration.create();

 Connection connection = ConnectionFactory.createConnection(config);

 Admin admin = connection.getAdmin();

 TableName tableName = TableName.valueOf("t_step4");

 admin.disableTable(tableName);

 admin.deleteTable(tableName);

 /********* End *********/

 

命令行

start-dfs.sh

回车

start-hbase.sh

回车

HBase 开发:批量操作

第1关:批量获取数据

代码文件

package step1;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellScanner;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
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;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.generated.rest.rest_jsp;
import org.apache.hadoop.hbase.util.Bytes;
public class Task 
 public void batchGet() throws Exception 
   /********* Begin *********/
 Configuration config = HBaseConfiguration.create();
   Connection Connection = ConnectionFactory.createConnection(config);
   List<String> rows = new ArrayList<>();
   rows.add("2018");
   //rows.add("2019");
   rows.add("2020");
   TableName tableName = TableName.valueOf(Bytes.toBytes("step1_student"));
   Table table = Connection.getTable(tableName);
   getData(table,rows);
   /********* End *********/
 
public List<String> getData(Table table, List<String> rows) throws Exception 
 List<Get> gets = new ArrayList<>();
 for (String str : rows) 
 Get get = new Get(Bytes.toBytes(str));
 gets.add(get);
 
 List<String> values = new ArrayList<>();
 Result[] results = table.get(gets);
 for (Result result : results) 
 System.out.println("Row:" + Bytes.toString(result.getRow()));
 for (Cell kv : result.rawCells()) 
 String family = Bytes.toString(CellUtil.cloneFamily(kv));
 String qualifire = Bytes.toString(CellUtil.cloneQualifier(kv));
 String value = Bytes.toString(CellUtil.cloneValue(kv));
 values.add(value);
 System.out.println(family + ":" + qualifire + "\\t" + value);
 
 
 return values;


命令行

start-dfs.sh

回车

start-hbase.sh

回车

第2关:批量删除数据

代码文件

package step2;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableDescriptors;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
public class Task 
 public void batchDelete()throws Exception
   /********* Begin *********/
 Configuration conf = HBaseConfiguration.create();
 
 Connection conn = ConnectionFactory.createConnection(conf);
 
 TableName tableName = TableName.valueOf("step2_table");
 Table table = conn.getTable(tableName);
 List<String> rows1 = new ArrayList();
 for(int i = 1; i<6;i++)
 String row = "row" + i;
 rows1.add(row);
 
 delete(table,rows1);
 List<String> rows2 = new ArrayList<>();
 for(int i = 7;i<11;i++)
 String row = "row" + i;
 rows2.add(row);
 
 
 delete(table,rows2);
   
   /********* End *********/
 
 public void delete(Table table,List<String> rows)throws IOException
 List<Delete> deletes = new ArrayList<>();
 for(String str : rows)
 byte[] row = Bytes.toBytes(str);
 Delete delete = new Delete(row);
 deletes.add(delete);
 
 table.delete(deletes);


命令行

start-dfs.sh

回车

start-hbase.sh

回车

第3关:批量导入数据至HBase

代码文件

package step3;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableDescriptors;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
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;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.util.Bytes;
public class Task 
 public void batchPut()throws Exception
   /********* Begin *********/
   Configuration config = new Configuration();
   Connection conn = ConnectionFactory.createConnection(config);
   Admin admin = conn.getAdmin();
   // 建表
   TableName tableName = TableName.valueOf(Bytes.toBytes("stu"));
   TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);
   ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("basic_info")).build();
   ColumnFamilyDescriptor family2 = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("school_info")).build();
   builder.setColumnFamily(family);
   builder.setColumnFamily(family2);
   admin.createTable(builder.build());
   List<Put> puts = new ArrayList<>();
   String[] rows = "20181122","20181123";
   String[][] basic_infos = "阿克蒙德","male","1987-05-23","tel:139********","HUNan-ChangSha","萨格拉斯","male","1986-05-23","tel:187********","HUNan-ChangSha";
   String[] basic_colums = "name","gender","birthday","connect","address";
   String[][] school_infos = "ChengXing","class 1 grade 2","Software","ChengXing","class 2 grade 2","Software";
   String[] school_colums = "college","class","object";
   for (int x = 0; x < rows.length; x++) 
     // 循环添加数据
     Put put = new Put(Bytes.toBytes(rows[x]));
     for (int i = 0; i < basic_infos.length; i++) 
       byte[] columFamily = Bytes.toBytes("basic_info");
       byte[] qualifier = Bytes.toBytes(basic_colums[i]);
       byte[] value = Bytes.toBytes(basic_infos[x][i]);
       put.addColumn(columFamily, qualifier, value);
     
     for (int i = 0; i < school_infos.length; i++) 
       byte[] columFamily = Bytes.toBytes("school_info");
       byte[] qualifier = Bytes.toBytes(school_colums[i]);
       byte[] value = Bytes.toBytes(school_infos[x][i]);
       put.addColumn(columFamily, qualifier, value);
     
     puts.add(put);
   
   Table table = conn.getTable(tableName);
   table.put(puts);
   /********* End *********/
 

命令行

start-dfs.sh

回车

start-hbase.sh

回车

HBase开发: Java API 管理表

第1关:JavaAPI获取表的列表

代码文件

package step1;
 
import java.util.ArrayList;
import java.util.List;
 
import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.*;
 
public class Task 
 
	public void showTableList() throws Exception 
		/********* Begin *********/
		Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
		Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
		Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
		List<TableDescriptor> tableDescriptors = admin.listTableDescriptors();
		for(TableDescriptor tableDescriptor: tableDescriptors)
			System.out.println("Table:" + tableDescriptor.getTableName());
			System.out.println("\\texists:" + admin.tableExists(tableDescriptor.getTableName()));
			System.out.println("\\tenabled:" + admin.isTableEnabled(tableDescriptor.getTableName()));
		
		
 
 
 
		/********* End *********/
	

第2关:修改表

代码文件

	package step2;
 
import java.io.IOException;
 
 
import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.io.compress.Compression;
import org.apache.hadoop.hbase.util.*;
 
public class Task 
	
	public void updateTables()throws Exception
		/********* Begin *********/
		Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
		Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
		Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
		TableName tableName1 = TableName.valueOf("t_emp2");
		TableName tableName2 = TableName.valueOf("t_dept2");
				ColumnFamilyDescriptorBuilder buildFamily = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data"));//创建builder对象
				buildFamily.setBlocksize(1024*1024);//设置缓存大小
				buildFamily.setBlockCacheEnabled(false);//设置关闭缓存,默认是true
				buildFamily.setCompressionType(Compression.Algorithm.GZ);//默认是NONE
				ColumnFamilyDescriptor family = buildFamily.build();//构建Family对象
				admin.modifyColumnFamily(tableName1, family);//调用修改方法,方法接收两个参数:TableName,ColumnFamilyDescriptor
				admin.deleteColumnFamily(tableName1, Bytes.toBytes("data1"));//删除表中名为data的列族    
			
			
				ColumnFamilyDescriptorBuilder buildFamily1 = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data1"));//创建builder对象
				buildFamily1.setMinVersions(2);
				buildFamily1.setMaxVersions(5);
				buildFamily1.setInMemory(true); //默认是false
				buildFamily1.setTimeToLive(60*60*24); //以秒为单位,超过这个时间设置的就会在下一次大合并中被删除
				ColumnFamilyDescriptor family1 = buildFamily1.build();//构建Family对象
				admin.modifyColumnFamily(tableName2, family1);//调用修改方法,方法接收两个参数:TableName,ColumnFamilyDescriptor
 
				admin.deleteColumnFamily(tableName2, Bytes.toBytes("data"));//删除表中名为data的列族  
		
			
 
 
 
 
 
 
 
		/********* End *********/
	
	

第3关:禁用表、启用表、删除表

代码文件

package step3;
 
import java.io.IOException;
 
import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.*;
 
 
public class Task 
 
	/**
	 * 刪除表
	 * @param tableName 表名
	 * @throws Exception
	 */
	public void deleteTable(String tableName)throws Exception
		/********* Begin *********/
		Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
		Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
		Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
		TableName testName = TableName.valueOf(Bytes.toBytes(tableName));
		admin.disableTable(testName);
		admin.deleteTable(testName);
	
 
 
		/********* End *********/
	
	
	/**
	 * 创建表
	 * @param tableName  表名
	 * @param columnNames 列族的动态数组
	 * @throws Exception
	 */
	public void createTable(String tableName,String... columnNames)throws Exception
		/********* Begin *********/
		Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
		Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
		Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
 
		// TableName tableName1 = TableName.valueOf(Bytes.toBytes(tableName));//定义表名
		// HTableDescriptor htd = new HTableDescriptor(tableName1);//定义表对象
		// for(String s: columnNames)
		// 	htd.addFamily(new HColumnDescriptor(Bytes.toBytes(s)));
		// 
 
        //构建一个Test_teacher_info表
        TableDescriptorBuilder test_teacher_info = TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName));
 
        for(String s: columnNames)
			ColumnFamilyDescriptor of = ColumnFamilyDescriptorBuilder.of(s);
 			test_teacher_info.setColumnFamily(of);
		
    
        //构建
        TableDescriptor build = test_teacher_info.build();
 
        admin.createTable(build);
 
 
 
		/********* End *********/
	
	
	/**
	 * 启用表
	 * @param tableName 
	 * @throws Exception 
	 */
	public void enableTable(String tableName) throws Exception
		/********* Begin *********/
		Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
		Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
		Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
		TableName demoName = TableName.valueOf(Bytes.toBytes(tableName));
		admin.enableTable(demoName);
 
 
		/********* End *********/
	
	
	/**
	 * 禁用表
	 * @param tableName
	 */
	public void disableTable(String tableName)throws Exception
		/********* Begin *********/
		Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象
		Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象
		Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象
		TableName testName = TableName.valueOf(Bytes.toBytes(tableName));
		admin.disableTable(testName);
 
 
		/********* End *********/
	
	

头歌实验三python顺序结构程序设计(代码片段)

文章目录>>>第1关:球体体积计算任务描述相关知识示例代码编程要求测试说明参考答案>>>第2关:表达式求解-垂直上抛小球位置计算任务描述相关知识竖直上抛运动Python算术运算符Python变量Python输出编程要... 查看详情

头歌实验一python初体验——helloworld(代码片段)

文章目录>>>第1关:HelloPython,我来了!任务描述相关知识Python交互式编程模式Python脚本式编程模式Print内置函数编程要求测试说明参考答案>>>第2关:我想看世界任务描述相关知识input()函数print()函数... 查看详情

头歌educoder云计算与大数据——实验五javaapi分布式存储(代码片段)

实验五JavaAPI分布式存储第1关:利用shell把电商数据上传到HDFS任务描述相关知识HDFSshell常见命令编程要求测试说明代码实现第2关:利用JavaAPI把电商数据上传到HDFS任务描述相关知识常用HDFSJava接口的使用编程要求测试说明... 查看详情

头歌实验二python入门之基础语法(代码片段)

文章目录>>>第1关:行与缩进任务描述相关知识缩进多行语句编程要求测试说明参考答案>>>第2关:标识符与保留字任务描述相关知识标识符保留字编程要求测试说明参考答案>>>第3关:注释任务描述... 查看详情

sqlipl中的五个检票口(2008-2016)(代码片段)

查看详情

头歌实验五python循环结构(代码片段)

文章目录>>>第1关:达依尔的麦子数任务描述案例分析相关知识for循环测试说明参考答案>>>第2关:四级单词查询任务描述案例分析相关知识如何处理文件文件打开文件循环文件关闭遍历文件测试说明第3关ÿ... 查看详情

头歌实验五python循环结构(代码片段)

文章目录>>>第1关:达依尔的麦子数任务描述案例分析相关知识for循环测试说明参考答案>>>第2关:四级单词查询任务描述案例分析相关知识如何处理文件文件打开文件循环文件关闭遍历文件测试说明第3关ÿ... 查看详情

头歌实验五python循环结构(代码片段)

文章目录>>>第1关:达依尔的麦子数任务描述案例分析相关知识for循环测试说明参考答案>>>第2关:四级单词查询任务描述案例分析相关知识如何处理文件文件打开文件循环文件关闭遍历文件测试说明第3关ÿ... 查看详情

头歌实验四python分支结构(代码片段)

文章目录>>>第1关:判断闰年任务描述案例分析相关知识条件表达式分支语句测试说明参考答案>>>第2关:计算快递费用任务描述案例分析相关知识分支结构向上取整的函数ceil测试说明参考答案>>>第3关&... 查看详情

头歌实验四python分支结构(代码片段)

文章目录>>>第1关:判断闰年任务描述案例分析相关知识条件表达式分支语句测试说明参考答案>>>第2关:计算快递费用任务描述案例分析相关知识分支结构向上取整的函数ceil测试说明参考答案>>>第3关&... 查看详情

头歌实验三python顺序结构程序设计(代码片段)

文章目录>>>第1关:球体体积计算任务描述相关知识示例代码编程要求测试说明参考答案>>>第2关:表达式求解-垂直上抛小球位置计算任务描述相关知识竖直上抛运动Python算术运算符Python变量Python输出编程要... 查看详情

头歌实验三python顺序结构程序设计(代码片段)

文章目录>>>第1关:球体体积计算任务描述相关知识示例代码编程要求测试说明参考答案>>>第2关:表达式求解-垂直上抛小球位置计算任务描述相关知识竖直上抛运动Python算术运算符Python变量Python输出编程要... 查看详情

头歌实验一python初体验——helloworld(代码片段)

文章目录>>>第1关:HelloPython,我来了!任务描述相关知识Python交互式编程模式Python脚本式编程模式Print内置函数编程要求测试说明参考答案>>>第2关:我想看世界任务描述相关知识input()函数print()函数... 查看详情

vuex的五个核心概念(代码片段)

Vuex有五个核心概念:state:vuex的基本数据,用来存储变量geeter:从基本数据(state)派生的数据,相当于state的计算属性mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。action:Action提交的是mutation,而不是直... 查看详情

solid:面向对象设计的五个基本原则(代码片段)

...首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,能够使得一个程序员开发一个容易进行维护和扩展的系统变得更加可能。SOLID是以下五个单词的缩写: SingleResponsibility... 查看详情

bean的五个作用域(代码片段)

一、SingletonSingleton是单例类型,bean默认就是单例的,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。当开发者定义一个Bean的作用域为单例时,SpringIoC容... 查看详情

ajaxxmlhttprequest().readystate的五个状态(0,1,2,3,4)(代码片段)

//第1步:创建异步请求对象xhrvarxhr=newXMLHttpRequest();//第2步:注册事件监听,xhr通过监听服务器返回结果时的状态值,判断此次返回的结果是否可用xhr.onreadystatechange=function()if(xhr.readyState==4&xhr.status==200)console.log(xhr.responseTest)//这 查看详情

vuex的五个属性及使用方法(代码片段)

vue内部数据流程图 vue与组件之间的数据交互 一.如何使用全局State?//state的作用是存储公共数据//state是响应式的,如果修改了属性,那么在相对应,组件视图上的值也会改变//在store里定义格式newVuex.store(state:属... 查看详情