下载压缩包(选择与自己安装的Hadoop版本的兼容版本,参考https://blog.csdn.net/tzhuwb/article/details/81153323 )
通过以下命令从官网下载Hbase:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.9-bin.tar.gz配置Hbase的环境变量
vi /etc/profile export HBASE_HOME=/root/Hbase/hbase-1.4.9 export PATH=$HBASE_HOME/bin:$PATH如下图所示:
HBase配置(伪分布式模式) 进入到HBase安装路径的conf目录(root/Hbase/hbase-1.4.9/conf)下面
<!--配置Hbased的Hbase-env.sh--> <!--设置Java安装路径 --> export JAVA_HOME=/usr/local/java/jdk1.8.0_202 <!--设置HBase的配置文件路径(/root/Hbase/hbase-1.4.9/conf)--> export HBASE_CLASSPATH=/root/Hbase/hbase-1.4.9/conf <!--设置HBase的配置文件路径(/root/Hbase/hbase-1.4.9/conf)--> export HBASE_MANAGES_ZK=true配置hbase-site.xml
<!--配置hbase-site.xml--> <!--hbase共享目录,持久化hbase数据--> <!--配置为core-site.xml 中的fs.defaultFS --> <property> <name>hbase.rootdir</name> <value>hdfs://bigdata128:9000/hbase</value> </property> <!--分布式运行模式,false(默认)为单机模式--> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!--Zookeeper集群的地址列表,伪分布式用默认localhost--> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property>配置Hbase可用在Hbase的bin目录下启动,如下图所示:
配置完环境变量后,也可用使用start-hbase.sh启动:
start-hbase.sh使用jps可用查看到如下结果:
Java程序如下:
package Hbase; import java.io.IOException; import java.util.Scanner; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.CellUtil; 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.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.util.Bytes; public class HbaseTables { public static Configuration conf; public static Connection con; public static Admin adm; @SuppressWarnings("all") public static void init() throws IOException { //对 HBase 进行配置 conf=HBaseConfiguration.create(); conf.set("hbase.rootdir", "hdfs://izwz97mvztltnke7bj93idz:9000/hbase"); con= ConnectionFactory.createConnection(conf); adm = con.getAdmin(); } //管理 HBase数据库的表信息 public static void createTable(String myTableName, String[] colFamily) throws IOException { init(); //管理表名 ·创建表 TableName tableName = TableName .valueOf(myTableName); if (adm.tableExists(tableName)) { System.out.println("table is exists!"); }else { HTableDescriptor htd=new HTableDescriptor(tableName); for(String str:colFamily) { //包含表名及其列族 HColumnDescriptor hcd =new HColumnDescriptor(str); htd.addFamily(hcd); } // 维护列族信息 adm.createTable(htd); } close(); } public static void close() { try { if (adm != null) { adm.close(); } if (con != null) { con.close(); } }catch (IOException e) { e.printStackTrace();} } public static void insertRow(String myTableName, String rowKey, String colFamily, String col, String val) throws IOException { init(); // ·插入一行 TableName tableName = TableName .valueOf(myTableName); @SuppressWarnings("deprecation") HTable table = new HTable(conf,tableName); Put put=new Put(rowKey.getBytes()); put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes()); table.put(put); // 对单个行执行添加操作 table.close(); close(); } public static void main(String[] args) throws IOException { String[] cf = {"cf1","cf2"}; HbaseTables.createTable("stu", cf); System.out.println("MkTable successful!"); HbaseTables.insertRow("stu", "2016001", "cf1", "col", "val"); System.out.println("InserRow successful!"); } }将上述代码在eclipse中打成jar包,传到Linux下,如下图所示:
运行上传的jar包,java -jar Hbase.jar,访问http://ip:16010可得到下图结果,可以清晰看到通过java程序在Hbase中创建的表