`
haoningabc
  • 浏览: 1476634 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hbase的安装和测试

阅读更多
使用hbase-0.94.17.tar.gz
如果想练机使用必须配置的
比如我的机器是mytest
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mytest

[root@VM_12_197_centos f1]# cat /etc/hosts
127.0.0.1       localhost
10.230.13.100     mytest

配置互信

export JAVA_HOME=/usr/local/java/jdk1.6.0_45
export CLASSPATH=/usr/local/java/jdk1.6.0_45/jre/lib/rt.jar:.
export HBASE_HOME=/data/hbase/hbase-install/hbase-0.94.13
export PATH=/usr/local/java/jdk1.6.0_45/bin:$HBASE_HOME/bin:$PATH


解压hbase.tar.gz
$HBASE_HOME/conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///data/hadoop/hbase/hbase-0.94.17/data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>mytest</value>
</property>
</configuration>

hbase-env.sh
export JAVA_HOME=/usr/local/java/jdk1.6.0_45/
export HBASE_CLASSPATH=/data/hbase/hbase-install/hbase-0.94.13/conf
export HBASE_MANAGES_ZK=true

$HBASE_HOME/bin/start-hbase.sh
[hadoop@localhost bin]$ jps
25309 HMaster
25244 HQuorumPeer
25924 Jps
25448 HRegionServer
[hadoop@localhost bin]$
$HBASE_HOME/bin/hbase shell
list
create 'mytable' ,'cf'
put 'mytable','first','cf:message','hello haonings hbase'
put 'mytable','first','cf:foo',0x7
put 'mytable','second','cf:foo',0x0
put 'mytable','third','cf:message',3.14159265

get 'mytable','first'
get 'mytable','second'
scan 'mytable'

describe 'mytable'

java代码测试:
package test;
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 
 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.hbase.HBaseConfiguration; 
import org.apache.hadoop.hbase.HColumnDescriptor; 
import org.apache.hadoop.hbase.HTableDescriptor; 
import org.apache.hadoop.hbase.KeyValue; 
import org.apache.hadoop.hbase.MasterNotRunningException; 
import org.apache.hadoop.hbase.ZooKeeperConnectionException; 
import org.apache.hadoop.hbase.client.Delete; 
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.HTablePool; 
import org.apache.hadoop.hbase.client.Put; 
import org.apache.hadoop.hbase.client.Result; 
import org.apache.hadoop.hbase.client.ResultScanner; 
import org.apache.hadoop.hbase.client.Scan; 
import org.apache.hadoop.hbase.filter.Filter; 
import org.apache.hadoop.hbase.filter.FilterList; 
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter; 
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp; 
import org.apache.hadoop.hbase.util.Bytes; 
 
public class TestHbase { 
 
    public static Configuration configuration; 
    static { 
        configuration = HBaseConfiguration.create(); 
        configuration.set("hbase.zookeeper.property.clientPort", "2181"); 
        configuration.set("hbase.zookeeper.quorum", "10.230.13.100"); 
        //configuration.set("hbase.master", "10.230.13.100:600000"); 
    } 
 
    public static void main(String[] args) { 
         createTable("haoning"); 
        // insertData("wujintao"); 
        // QueryAll("wujintao"); 
        // QueryByCondition1("wujintao"); 
        // QueryByCondition2("wujintao"); 
        //QueryByCondition3("wujintao"); 
        //deleteRow("wujintao","abcdef"); 
       // deleteByCondition("wujintao","abcdef"); 
    } 
 
     
    public static void createTable(String tableName) { 
        System.out.println("start create table ......"); 
        try { 
            HBaseAdmin hBaseAdmin = new HBaseAdmin(configuration); 
            if (hBaseAdmin.tableExists(tableName)) {// 如果存在要创建的表,那么先删除,再创建 
                hBaseAdmin.disableTable(tableName); 
                hBaseAdmin.deleteTable(tableName); 
                System.out.println(tableName + " is exist,detele...."); 
            } 
            HTableDescriptor tableDescriptor = new HTableDescriptor(tableName); 
            tableDescriptor.addFamily(new HColumnDescriptor("column1")); 
            tableDescriptor.addFamily(new HColumnDescriptor("column2")); 
            tableDescriptor.addFamily(new HColumnDescriptor("column3")); 
            hBaseAdmin.createTable(tableDescriptor); 
        } catch (MasterNotRunningException e) { 
            e.printStackTrace(); 
        } catch (ZooKeeperConnectionException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        System.out.println("end create table ......"); 
    } 
 
     
    public static void insertData(String tableName) { 
        System.out.println("start insert data ......"); 
        HTablePool pool = new HTablePool(configuration, 1000); 
        HTable table = (HTable) pool.getTable(tableName); 
        Put put = new Put("112233bbbcccc".getBytes());// 一个PUT代表一行数据,再NEW一个PUT表示第二行数据,每行一个唯一的ROWKEY,此处rowkey为put构造方法中传入的值 
        put.add("column1".getBytes(), null, "aaa".getBytes());// 本行数据的第一列 
        put.add("column2".getBytes(), null, "bbb".getBytes());// 本行数据的第三列 
        put.add("column3".getBytes(), null, "ccc".getBytes());// 本行数据的第三列 
        try { 
            table.put(put); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        System.out.println("end insert data ......"); 
    } 
 
     
    public static void dropTable(String tableName) { 
        try { 
            HBaseAdmin admin = new HBaseAdmin(configuration); 
            admin.disableTable(tableName); 
            admin.deleteTable(tableName); 
        } catch (MasterNotRunningException e) { 
            e.printStackTrace(); 
        } catch (ZooKeeperConnectionException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
 
    } 
     
     public static void deleteRow(String tablename, String rowkey)  { 
        try { 
            HTable table = new HTable(configuration, tablename); 
            List list = new ArrayList(); 
            Delete d1 = new Delete(rowkey.getBytes()); 
            list.add(d1); 
             
            table.delete(list); 
            System.out.println("删除行成功!"); 
             
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
         
 
    } 
 
      
     public static void deleteByCondition(String tablename, String rowkey)  { 
            //目前还没有发现有效的API能够实现根据非rowkey的条件删除这个功能能,还有清空表全部数据的API操作 
 
    } 
 
 
     
    public static void QueryAll(String tableName) { 
        HTablePool pool = new HTablePool(configuration, 1000); 
        HTable table = (HTable) pool.getTable(tableName); 
        try { 
            ResultScanner rs = table.getScanner(new Scan()); 
            for (Result r : rs) { 
                System.out.println("获得到rowkey:" + new String(r.getRow())); 
                for (KeyValue keyValue : r.raw()) { 
                    System.out.println("列:" + new String(keyValue.getFamily()) 
                            + "====值:" + new String(keyValue.getValue())); 
                } 
            } 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
 
     
    public static void QueryByCondition1(String tableName) { 
 
        HTablePool pool = new HTablePool(configuration, 1000); 
        HTable table = (HTable) pool.getTable(tableName); 
        try { 
            Get scan = new Get("abcdef".getBytes());// 根据rowkey查询 
            Result r = table.get(scan); 
            System.out.println("获得到rowkey:" + new String(r.getRow())); 
            for (KeyValue keyValue : r.raw()) { 
                System.out.println("列:" + new String(keyValue.getFamily()) 
                        + "====值:" + new String(keyValue.getValue())); 
            } 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
 
     
    public static void QueryByCondition2(String tableName) { 
 
        try { 
            HTablePool pool = new HTablePool(configuration, 1000); 
            HTable table = (HTable) pool.getTable(tableName); 
            Filter filter = new SingleColumnValueFilter(Bytes 
                    .toBytes("column1"), null, CompareOp.EQUAL, Bytes 
                    .toBytes("aaa")); // 当列column1的值为aaa时进行查询 
            Scan s = new Scan(); 
            s.setFilter(filter); 
            ResultScanner rs = table.getScanner(s); 
            for (Result r : rs) { 
                System.out.println("获得到rowkey:" + new String(r.getRow())); 
                for (KeyValue keyValue : r.raw()) { 
                    System.out.println("列:" + new String(keyValue.getFamily()) 
                            + "====值:" + new String(keyValue.getValue())); 
                } 
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
 
    } 
 
     
    public static void QueryByCondition3(String tableName) { 
 
        try { 
            HTablePool pool = new HTablePool(configuration, 1000); 
            HTable table = (HTable) pool.getTable(tableName); 
 
            List<Filter> filters = new ArrayList<Filter>(); 
 
            Filter filter1 = new SingleColumnValueFilter(Bytes 
                    .toBytes("column1"), null, CompareOp.EQUAL, Bytes 
                    .toBytes("aaa")); 
            filters.add(filter1); 
 
            Filter filter2 = new SingleColumnValueFilter(Bytes 
                    .toBytes("column2"), null, CompareOp.EQUAL, Bytes 
                    .toBytes("bbb")); 
            filters.add(filter2); 
 
            Filter filter3 = new SingleColumnValueFilter(Bytes 
                    .toBytes("column3"), null, CompareOp.EQUAL, Bytes 
                    .toBytes("ccc")); 
            filters.add(filter3); 
 
            FilterList filterList1 = new FilterList(filters); 
 
            Scan scan = new Scan(); 
            scan.setFilter(filterList1); 
            ResultScanner rs = table.getScanner(scan); 
            for (Result r : rs) { 
                System.out.println("获得到rowkey:" + new String(r.getRow())); 
                for (KeyValue keyValue : r.raw()) { 
                    System.out.println("列:" + new String(keyValue.getFamily()) 
                            + "====值:" + new String(keyValue.getValue())); 
                } 
            } 
            rs.close(); 
 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
 
    } 
 
}
分享到:
评论

相关推荐

    hbase安装与使用

    1. **概述**:单机模式是 HBase 默认的安装模式,适用于测试和开发环境。在此模式下,HBase 使用本地文件系统存储数据,不依赖于 Hadoop 和 HDFS。 2. **启动 HBase**:在根用户下启动 HBase 服务。 ```bash bin...

    分布式数据库HBase安装配置与实践.doc

    在本文档中,我们将详细介绍如何在Linux环境中安装、配置和实践HBase。 1. **HBase安装** - **解压安装包**:首先,我们需要下载HBase的二进制包,例如hbase-1.0.1.1-bin.tar.gz,并将其解压缩到 `/usr/local` ...

    Hbase的安装过程及基本操作

    在本文中,我们将详细讲解Hbase的安装过程以及基本操作,特别针对在Linux环境下使用清华大学镜像进行下载的情况。Hbase是一个分布式的、面向列的数据库,常用于大数据存储,是Apache Hadoop生态系统的一部分。以下是...

    Hadoop&Hbase安装完美教程

    本教程“Hadoop&Hbase安装完美教程”旨在指导用户详细地安装和配置这两个工具,确保用户能够顺利地进行大数据操作。首先,让我们深入了解Hadoop的安装过程: 1. **环境准备**:Hadoop需要Java运行环境,因此第一步...

    hbase安装与配置.docx

    3. **HBase测试**:启动HBase,运行 `start-hbase.sh` 命令,然后可以使用HBase的命令行工具 `hbase shell` 进行基本操作,如创建表、插入数据、查询数据等,来检查HBase是否工作正常。 **HBase启动流程:** HBase...

    hbase源码包和测试用例

    通过深入研究HBase的源码和编写测试用例,我们可以更好地理解和优化这个系统,从而在大数据应用中发挥出其最大潜力。无论你是数据工程师、开发人员还是系统管理员,掌握HBase都能为你的职业生涯增添亮点。

    在windows上安装Hbase

    在安装HBase前,需要安装Cygwin和Hadoop。这两个软件的安装不在本文的讨论范围内。 二、下载HBase 首先,需要下载HBase的安装包。可以从HBase的官方网站(http://hadoop.apache.org/hbase/)下载。这里使用的是...

    hbase+phoenix 本机测试文档

    《HBase与Phoenix:在本地环境中的测试与应用》 HBase与Phoenix是两种在大数据领域广泛应用的技术。...在本地环境中进行测试和实践,有助于更好地理解和掌握这两种技术,为实际项目中的应用打下坚实的基础。

    YCSB之HBase压力测试.pdf

    当配置YCSB以测试HBase时,需要将HBase的lib目录下的所有jar包和hbase-site.xml配置文件拷贝到YCSB中相应的位置,完成安装。 YCSB通过内置的多种压力测试场景文件来模拟不同的工作负载。例如,workloada场景是一个...

    2.1 hadoop+hbase部署和测试1

    【Hadoop + HBase 部署...通过以上步骤,我们可以成功地在Vsphere虚拟机上搭建一个功能完备的Hadoop + HBase测试环境,从而进行大数据处理和分析实验。记得在实际生产环境中,还需要考虑更多的安全、性能和稳定性因素。

    hbase性能测试.docx

    在对HBase进行性能测试时,我们关注的关键指标包括数据读写速度、系统资源消耗以及MapReduce框架的运行效率。以下是对文档中提到的几个重要性能指标的详细解读: 1. **顺序写入(Sequential Write)**: - **FILE:...

    nosql实验一-HBase的安装与配置.docx

    在本次实验中,我们将学习如何在Linux环境下,以伪分布式的方式安装和配置HBase,以及验证其安装是否成功。 一、实验目标 1. 掌握HBase的伪分布式安装过程。 2. 验证HBase的安装是否成功。 3. 使用Web UI管理界面...

    kylin资源包(hbase安装,kylin安装,安装测试题)

    本资源包主要涵盖HBase的安装与配置、Kylin的安装过程以及相关的安装测试题,旨在帮助读者深入理解和掌握这两个关键技术。 首先,让我们深入探讨HBase,它是Apache Hadoop生态系统中的一个非关系型分布式数据库...

    某大数据公司内部Hbase性能测试详细设计文档及用例

    本文档旨在详细介绍HBase性能测试的设计文档和实践经验,涵盖了HBase性能测试需要注意的一些参数设置和测试用例。下面是从该文档中提炼的相关知识点: 1.1 Pre-Creating Regions 在HBase中,默认情况下,在创建表...

    hbase2.2安装文件

    5. **启动与测试**:启动HBase的Master和RegionServer进程,使用HBase Shell或自定义应用程序进行测试,确保HBase可以正常运行并存取数据。 6. **监控与管理**:通过HBase的Web UI(默认端口16010)监控HBase集群的...

    hadoop hive hbase安装过程

    完成以上步骤后,即可启动 Hadoop 服务,并进行进一步的功能测试和验证。 #### 二、Hive 安装配置 在完成了 Hadoop 的安装配置之后,接下来可以安装 Hive,以便于进行更高级的数据查询和管理操作。 1. **下载并...

    windows10 搭建最新的 hadoop 3.1.3 和 hbase 2.2.2 测试环境 配置文件

    在Windows 10环境下搭建Hadoop 3.1.3和HBase 2.2.2测试环境是一项技术性较强的任务,涉及到多个组件的安装、配置以及相互间的协同工作。以下将详细介绍如何进行这一过程,以及相关的配置文件作用。 首先,我们需要...

    hbase安装lzo压缩包的编译文件master

    本文将详细讲解如何在HBase环境中安装和编译LZO压缩包,以及它与HBase Master节点的关系。 首先,我们需要了解HBase。HBase是一个分布式、版本化的NoSQL数据库,基于Apache Hadoop构建,用于存储大规模结构化数据。...

Global site tag (gtag.js) - Google Analytics