利用IDEA创建表
一、启动VM VirtualBox和MobaXterm
start-all.sh
cd /usr/local/hbase-2.2.4/bin
Start-hbase.sh
./start-hbase.sh
status
二、在IDEA里新建一个项目
注意这里
新建完毕后会自动出来pom.xml页,
添加这些代码:
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version> 1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version> 1.3.1</version>
</dependency>
</dependencies>
或者登录https://mvnrepository.com/ Select 1.3.1, copy代码到pom里
三、
四、将log4j.properties复制到resources下并rebuild
五、新建一个类
public class CreatTable {
//this is main function
public static void main(String[] args) throws IOException {
// //1.create a object of Configuration class 获取配置信息对象
// Configuration conf = HBaseConfiguration.create();
//
// //2.connection windows to Linux by using services
// conf.set("hbase.zookeeper.quorum","niit-master");//require to pass two parameters
//
// // Connection connection = ConnectionFactory.createConnection(conf);
// //3.create object of HBaseAdmin class
//HBaseAdmin admin = new HBaseAdmin(conf);
// //4. to create object HTableDescriptor class and pass table Name
//HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("teacher"));
//
// //5.Adding column family to table descriptor
// tableDescriptor.addFamily(new HColumnDescriptor("Personal"));
// tableDescriptor.addFamily(new HColumnDescriptor("Professional"));
//
// //6.Execute the table through admin object
// admin.createTable(tableDescriptor);
//
// //print on screen that table is created
// System.out.println("Table is created successfully");
}
}
由于版本不兼容,本人采用2.2.5版本
<dependencies>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version> 2.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version> 2.2.5</version>
</dependency>
</dependencies>
类中的代码:
try {
Configuration conf = HBaseConfiguration.create();
//conf.set("hadoop.user.name","asus");如果出现不兼容错误,可添加这一句,asus是我电脑的用户名
conf.set("hbase.zookeeper.quorum","niit-master");
//System.setProperty("HBASE_USER_NAME", "asus");
Connection connection = ConnectionFactory.createConnection(conf);
Admin admin=connection.getAdmin() ;
TableDescriptorBuilder tableDescriptorBuilder =
TableDescriptorBuilder.newBuilder(TableName.valueOf("teacher"));
ColumnFamilyDescriptor of1 = ColumnFamilyDescriptorBuilder.of("cf1");
ColumnFamilyDescriptor of2 = ColumnFamilyDescriptorBuilder.of("cf2");
tableDescriptorBuilder.setColumnFamily(of1);
tableDescriptorBuilder.setColumnFamily(of2);
TableDescriptor tableDescriptor = tableDescriptorBuilder.build();
admin.createTable(tableDescriptor);
} catch (IOException e) {
e.printStackTrace();
}
注意:1.conf.set(“hbase.zookeeper.quorum”,“niit-master”);这里的niit-master也可以用自己的IP地址,查找方法:在Moba里输入ip addr
2.VM VirtualBox和MobaXterm在这个过程中一直保持开启状态
3.导包正确
运行结果:
六、在IDEA中显示list,新建ListTable类
public static void main(String[] args) throws IOException {
//step 1,2,3 is common
//step 1.to create object of Configuration class
Configuration conf= HBaseConfiguration.create();
//step 2. connect HBase from Linux to Intellij on windows
conf.set("hbase.zookeeper.quorum","niit-master");
//step 3.HBaseAdmin object
// HBaseAdmin admin=new HBaseAdmin(conf); (1.3.1版)
Connection connection = ConnectionFactory.createConnection(conf);
Admin admin=connection.getAdmin() ;//(2.2.5版)
//getting all the list of tables using HBaseAdmin object
HTableDescriptor[] htd =admin.listTables();
//printing all the table name
System.out.println("the list of tables:");
for(int i=0;i<htd.length;i++){
System.out.println(htd[i].getNameAsString());
}
}
运行结果: