欢迎投稿

今日深度:

HBASE的安装配置,

HBASE的安装配置,


HBASE的安装配置

安装

1、下载压缩包
地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/
选择稳定版hbase-1.4.9-bin.tar.gz

2、将压缩包通过xftp传到xshell中解压到/opt/module目录下

tar -zxvf ~/hbase-1.4.9-bin.tar.gz -C /opt/modle

3、配置环境变量
在/etc/profile文件里添加HBase安装路径的配置信息,之后用source命令使配置生效。

export HBASE_HOME=/opt/module/hbase-1.4.9
export PATH=$HBASE_HOME/bin:$PATH

4、执行命令hbase测试是否安装成功

配置(伪分布式模式)

配置文件位于HBase安装路径的conf目录(/opt/module/hbase/conf)下面
1、配置hbase-env.sh
①、设置Java安装路径
②、设置HBase的配置文件路径
③、采用HBase自带Zookeeper,设置参数true

2、配置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>

3、启动并运行HBase(之前启动Hadoop)
启动HBase,并jps查看
命令:start-hbase.sh

进入HBASE数据库

进入HBase的shell命令行模式
完成数据库基本操作(建表,增删改数据,删除表格…)

编程调试数据表操作的Java程序

在eclipse运行Java程序打包至xshell运行
程序代码如下:

package hbase.tables;

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.Delete;
import org.apache.hadoop.hbase.client.Get;
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 {
		  conf=HBaseConfiguration.create();
		  conf.set("hbase.rootdir", "hdfs://hadoop:9000/hbase");
		  con= ConnectionFactory.createConnection(conf);
		  adm = con.getAdmin();
		  System.out.println(adm);
	} 
	
	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 deleteTable(String myTableName) throws IOException {
		init();
		TableName tableName = TableName .valueOf(myTableName);
		if (adm.tableExists(tableName)) {
			adm.disableTable(tableName);
			adm.deleteTable(tableName);
			 }
		close();       
	}

	public static void listTables() throws IOException {
		init();     
		HTableDescriptor htds[] =adm.listTables();
		for(HTableDescriptor  htd : htds) {
			System.out.println(htd.getNameAsString());
		}
		close();
	}

	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();
	}
	
	private static void deleteRow(String myTableName, String rowKey, String colFamily, String col) throws IOException {
		init();
		TableName tableName =TableName .valueOf(myTableName);
		@SuppressWarnings("deprecation")
		HTable table = new HTable(conf, tableName);
		Delete delete=new Delete(rowKey.getBytes());
		delete.addFamily(Bytes.toBytes(colFamily));
		delete.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col));  
		table.delete(delete);
		table.close();
		close();
	}

	public static void getData(String myTableName, String rowKey, String colFamily, String col) throws IOException {   
		init();
		TableName tableName = TableName .valueOf(myTableName);
		@SuppressWarnings("deprecation")
		HTable table = new HTable(conf, tableName);
		Get get= new Get(rowKey.getBytes());
		Result result = table.get(get);
		showCell(result);
		table.close();
		close();
	}

	private static void showCell(Result result) {
		
		Cell[] cells = result.rawCells();
		for (Cell cell : cells) {
			System.out.println("RowName:" + new String(CellUtil.cloneRow(cell)) + " ");
			System.out.println("Timetamp:" + cell.getTimestamp() + " ");
			System.out.println("column Family:" + new String(CellUtil.cloneFamily(cell)) + " ");
			System.out.println("row Name:" + new String(CellUtil.cloneQualifier(cell)) + " ");
			System.out.println("value:" + new String(CellUtil.cloneValue(cell)) + " ");
	        }

	}

	public static void main(String[] args) throws IOException {

		System.out.println("*****Please enter the number:1.createtable/2.insertRow/3.getData/4.deleteRow/5.listTables/6.deleteTable*****");
		for(int j=0;j<7;j++) {
		int i = 0;
		@SuppressWarnings("resource")
		Scanner scan = new Scanner(System.in);
		i = scan.nextInt();
		switch (i) {
		case 1: 
			System.out.println("please enter tablename:");
			String tbn = scan.next();
			String[] cf = {"cf1,cf2"}; 
			HbaseTables.createTable(tbn, cf);
			System.out.println("createTable success!!!");
			break;
		case 2:
			System.out.println("please enter tablename:");
			String tbn1 = scan.next();
			System.out.println("please enter rowkey:");
			String rk1 = scan.next();
			System.out.println("please enter column:");
			String clm1 = scan.next();
			System.out.println("please enter colname:");
			String cn1 = scan.next();
			System.out.println("please enter colvalue:");
			String cv1 = scan.next();
			HbaseTables.insertRow(tbn1, rk1, clm1, cn1, cv1);
			System.out.println("insertRow success!!!");
			break;
		case 3: 
			System.out.println("please enter tablename:");
			String tbn2 = scan.next();
			System.out.println("please enter rowkey:");
			String rk2 = scan.next();
			System.out.println("please enter colname:");
			String cn2 = scan.next();
			System.out.println("please enter colvalue:");
			String cv2 = scan.next();
			HbaseTables.getData(tbn2, rk2, cn2, cv2);
			System.out.println("getData success!!!");
			break;
		case 4:
			System.out.println("please enter tablename:");
			String tbn3 = scan.next();
			System.out.println("please enter rowkey:");
			String rk3 = scan.next();
			System.out.println("please enter column:");
			String clm3 = scan.next();
			System.out.println("please enter colname:");
			String cn3 = scan.next();
			HbaseTables.deleteRow(tbn3, rk3, clm3, cn3);
			System.out.println("deleteRow success!!!");
			break;
		case 5: 
			HbaseTables.listTables();
			System.out.println("listTables success!!!");
			break;
		case 6: 
			System.out.println("please enter tablename:");
			String tbn4 = scan.next();
			HbaseTables.deleteTable(tbn4);
			System.out.println("deleteTable success!!!");
			break;

		default:
			System.out.println("input error!!!");
			break;
		}
		}
	}

}

pom.xml代码:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.bla</groupId>
  <artifactId>HBASE</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
   <dependencies>
  	
	<dependency>
    	<groupId>org.apache.hadoop</groupId>
    	<artifactId>hadoop-client</artifactId>
    	<version>2.7.7</version>
	</dependency>
  	
 	<dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-it</artifactId>
      <version>1.4.9</version>
    </dependency>
  </dependencies>
  
<build>
        <plugins>
            <plugin>
            	<groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                   <artifactId> maven-assembly-plugin </artifactId>
                   <configuration>
                        <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                             <manifest>
                                  <mainClass>hbase.tables.HbaseTables</mainClass>
                             </manifest>
                        </archive>
                   </configuration>
                    <executions>
                        <execution>
                             <id>make-assembly</id>
                             <phase>package</phase>
                             <goals>
                                  <goal>assembly</goal>
                             </goals>
                        </execution>
                   </executions>
              </plugin>
        </plugins>
    </build>
</project>

运行程序后根据提示进行相应操作即可完成数据库操作
网页显示:IP地址:60010

www.htsjk.Com true http://www.htsjk.com/hbase/42255.html NewsArticle HBASE的安装配置, HBASE的安装配置 安装 1、下载压缩包 地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/ 选择稳定版hbase-1.4.9-bin.tar.gz 2、将压缩包通过xftp传到xshell中解压到/opt/module目录...
相关文章
    暂无相关文章
评论暂时关闭