笔记
1.Utils
public class HbaseUtils { public static String value = "qianfeng01,qianfeng02,qianfeng03"; public static String key = "hbase.zookeeper.quorum"; public static Configuration configuration = new Configuration(); static { configuration.set(key,value); } public static Admin getAdmin(){ try { Admin admin = ConnectionFactory.createConnection(configuration).getAdmin(); return admin; } catch (IOException e) { e.printStackTrace(); return null; } } public static void close(Admin admin){ if (admin != null){ try { admin.close(); } catch (IOException e) { e.printStackTrace(); } } } }
2.namespace
1.hbase shell【命令行】
【增加】 create_namespace 'ns1' create_namespace 'ns2' , {'name' => 'LL'} 【删除】 drop_namespace 'ns1' 【修改】 alter_namespace 'ns1', {METHOD => 'set', 'sex' => 'woman'} alter_namespace 'yuyao', {METHOD => 'unset', NAME => 'sex'} 【查询】 descirbe_namespace 'ns1' //查询hbase中的所有的namespace,支持使用正则表达式 list_namespace 'ns1' list_namespace 'ns.*' //查询指定的namespace有多少表 list_namespace_tables 'ns1'
2.API
public static Admin admin; @Before public void getadmin(){ admin = HbaseUtils.getAdmin(); } /** * 新增加一个namespace */ @Test public void create_namespace() throws IOException { NamespaceDescriptor descriptor = NamespaceDescriptor.create("yy").build(); admin.createNamespace(descriptor); } /** *删除namespace * @throws IOException */ @Test public void drop_namespace() throws IOException { admin.deleteNamespace("yy"); } /** * 修改namespace属性 */ public void alter_namespace() throws IOException { //获取到指定表的namespaceDescriptor NamespaceDescriptor namespaceDescriptor = admin.getNamespaceDescriptor("yuyao"); //查看name属性的值 namespaceDescriptor.getConfigurationValue("name"); //查看namespace里面的全部属性 namespaceDescriptor.getConfiguration(); //修改属性name的值为yy namespaceDescriptor.setConfiguration("name","yy"); //删除namespace的sex属性 namespaceDescriptor.removeConfiguration("sex"); //需要NamespaceDescriptor admin.modifyNamespace(namespaceDescriptor); } /** * 查看namespace的详情 */ public void describe_namespace() throws IOException { System.out.println(admin.getNamespaceDescriptor("ns1")); } /** * list_namespace/describe_namespace * 查看所有的namespace * @throws IOException */ @Test public void list_namespace() throws IOException { NamespaceDescriptor[] namespaceDescriptors = admin.listNamespaceDescriptors(); for (NamespaceDescriptor namespaceDescriptor:namespaceDescriptors) { //所有namespace的名字和对相应的属性 System.out.println(namespaceDescriptor); //查看所有namespace的某一个属性值 System.out.println(namespaceDescriptor.getConfigurationValue("name")); //所有namespace的属性 System.out.println(namespaceDescriptor.getConfiguration()); System.out.print(namespaceDescriptor.getName() + "\t"); //Map<String, String> configuration1 = namespaceDescriptor.getConfiguration(); Map<String, String> configuration = namespaceDescriptor.getConfiguration(); // 获取到所有的属性的kv for (Map.Entry<String, String> entry : configuration.entrySet()) { System.out.print(entry.getKey() + "-->" + entry.getValue() + "\t"); } System.out.println(); } } /** * 获取指定namespace里面的表 * @throws IOException */ @Test