Hbase(单机)配置及客户端运行设置
一、 安装Hbase
本节详细描述Hbase伪分布模式的配置方法。
1、 安装Java
1)、下载JDK软件包,bin格式
2)、将软件包拷到系统目录中,加上可执行权限,执行bin文件,解压java文件
3)、把生成的文件夹复制到/usr/java/
      mkdir /usr/java
      cp –r jdk1.6.0_xx /usr/java
4)、修改/root/.bashrc 文件,在文件中添加如下代码:
export JAVA_HOME=/usr/lib/java/jdk1.6.0_31
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
5)、source  /root/.bashrc
2、 配置Hbase
1)、下载最新的Hbase程序包,解压到/usr/Apache目录下
2)、修改Hbase_Homel文件,单机配置如下:
<?xml version="1.0"?>drop table if exists admin
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name&dir</name>
<value>file:///<PATH>/hbase</value>
<description>
数据文件存放位置,可以是本地文件系统,也可以是HDFS文件系统
</ description >
</property>
<property>
<name&keeper.quorum</name> 
<value>222.204.248.111</value>
<description>
ZooKeeper服务器设置,在分布式配置中,value中可以有多个IP地址,每个都是ZooKeeper的节点。Hbase必须搭建在ZooKeeper集环境下,通过Zookeeper获取Hbase各节点的IP地址,协调通信。
</ description >
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>
设置是否为分布式配置,默认为true。作为伪分布实验,可以设为true
</ description >
</property>
</configuration>
3)、配置regionservers
HBASE_HOME/conf目录中,修改regionservers文件。该文件用于记录Hbaseregionserver的域名(IP地址)。在单机环境中为本机IP地址,实验中为222.204.248.111
4)、配置hostname以及hosts
/etc/hostname文件中设置主机名
/etc/hosts中设置主机名与其IP地址的对应关系。HbaseMaster节点必须配置所有Slave节点的主机名-IP地址对应关系;Slave节点只需要直到Master节点的主机名-IP地址对应关系。
5)、启动Hbase实例
hbase-env.sh文件中export HBASE_MANAGES_ZK=true时,表示由Hbase托管Zookeeper集,通过l来配置Zookeeper参数;若为false,则由用户自己管理Zookeeper集,需要下载Zookeeper程序,自己启动。
为方便启动Hbase,可以再环境变量中在Path变量中添加HBASE_HOME/bin路径。
若环境变量设置后,直接运行start-hbase.sh,启动hbase环境;否则进入HBASE_HOME/bin目录,执行./ start-hbase.sh, 启动hbase环境。
之后,执行hbase shell进入hbaseshell模式,可以输入命令创建、查询、删除hbase表。
web浏览器中输入222.204.248.111:60010可以查看HbaseMaster节点的信息;输入222.204.248.111:60030可以查看HbaseRegionServer节点的信息。
至此Hbase单机伪分布配置完成
二、 客户端Java程序设置
本节详细描述在任意客户端上(为安装Hbase环境)中如何通过Java远程调访问Hbase服务器(单机伪分布)。实验中Java程序通过eclispe编译运行,以下方法只说明在eclipse中的配制方法
1、 准备必要jar
编译运行Hbase客户端程序需要以下几个jar包:hadoop-core-1.0.0.jarcommons-loggings-version.jarcommons-cli-vesion.jarcommons-lang-vesion.jarcommons-configration-version.jarhbase-0.92.1.jarzookeeper-3.4.3.jarslf4j-api-1.5.8.jarslf4j-log4j12-1.5.8.jarlog4j-1.2.16.jar。这些包都在HBASE_HOME/lib目录中可以到,本版号以lib目录下为准。将以上jar包添加到eclipse中的buildpath
2、 写客户端测试代码
我写了两个Java程序,分为HBaseHelper.javaPutExample.java。其中HBaseHelper.java封装了基本操作函数,如同DataAccessObject类;PutExample.java进行了简单的创建表及插入2条记录的任务。
HBaseHelper.java
package com.yhq.ch03;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.f.Configuration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
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 HBaseHelper {
    private Configuration conf = null;
    private HBaseAdmin admin = null;
   
    protected HBaseHelper(Configuration conf) throws IOException {
        f = conf;
        this.admin = new HBaseAdmin(conf);
    }
   
    public static HBaseHelper getHelper(Configuration conf) throws IOException {
        return new HBaseHelper(conf);
    }
   
    public boolean existsTable(String table) throws IOException {
        return admin.tableExists(table);
    }
   
    public void createTable(String table, colfams) throws IOException {
        createTable(table, null, colfams);
    }
   
    public void createTable(String table, byte[][] splitKeys, colfams) throws IOException {
        HTableDescriptor desc = new HTableDescriptor(table);
        for (String cf : colfams) {
            HColumnDescriptor coldef = new HColumnDescriptor(cf);
            desc.addFamily(coldef);
        }
        if (splitKeys != null) {
            ateTable(desc, splitKeys);
        } else {
            ateTable(desc);
        }
    }
   
    public void disableTable(String table) throws IOException {
        admin.disableTable(table);
    }
   
    public void dropTable(String table) throws IOException {
        if (existsTable(table)) {
            disableTable(table);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。