1. 程式人生 > >HBase 開發環境搭建(Eclipse+Maven)

HBase 開發環境搭建(Eclipse+Maven)

環境:

Win764bit
Eclipse Version: Kepler Service Release 1
java version “1.7.0_40”

第一步:Eclipse中新建Maven專案,編輯pom.xml並更新下載jar包

<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>fulong.bigdata</groupId> <artifactId>myHbase</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.hbase</groupId
>
<artifactId>hbase-client</artifactId> <version>0.96.2-hadoop2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version
>
2.2.0</version> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.7</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency> </dependencies> </project>

第二步:將目標叢集的Hadoop和HBase配置檔案拷貝到工程中

目的是為了讓工程能找到Zookeeper及Hbase Master。
配置檔案在工程中的路徑為:
/src/main/resources/hadoop
/src/main/resources/hbase

然後將這兩個目錄新增進工程的classpath中:
這裡寫圖片描述

最終目錄結構如下:
這裡寫圖片描述

第三步:hbase-site.xml中新增

<property>
    <name>fs.hdfs.impl</name>
    <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
</property>  

第四步:編寫Java程式呼叫Hbase介面

該程式碼包含了部分常用HBase介面。

package myHbase;
import java.io.IOException;
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.TableName;
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.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.util.Bytes;
public class HBaseDAO {

    static Configuration conf = HBaseConfiguration.create();
    /**
     * create a table :table_name(columnFamily) 
     * @param tablename
     * @param columnFamily
     * @throws Exception
     */
    public static void createTable(String tablename, String columnFamily) throws Exception {
        HBaseAdmin admin = new HBaseAdmin(conf);
        if(admin.tableExists(tablename)) {
            System.out.println("Table exists!");
            System.exit(0);
        }
        else {
            HTableDescriptor tableDesc = new HTableDescriptor(TableName.valueOf(tablename));
            tableDesc.addFamily(new HColumnDescriptor(columnFamily));
            admin.createTable(tableDesc);
            System.out.println("create table success!");
        }
        admin.close();

    }

    /**
     * delete table ,caution!!!!!! ,dangerous!!!!!!
     * @param tablename
     * @return
     * @throws IOException
     */
    public static boolean deleteTable(String tablename) throws IOException {
        HBaseAdmin admin = new HBaseAdmin(conf);
        if(admin.tableExists(tablename)) {
            try {
                admin.disableTable(tablename);
                admin.deleteTable(tablename);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
                admin.close();
                return false;
            }
        }
        admin.close();
        return true;
    }
    /**
     * put a cell data into a row identified by rowKey,columnFamily,identifier 
     * @param HTable, create by : HTable table = new HTable(conf, "tablename")
     * @param rowKey
     * @param columnFamily
     * @param identifier
     * @param data
     * @throws Exception
     */
    public static void putCell(HTable table, String rowKey, String columnFamily, String identifier, String data) throws Exception{
        Put p1 = new Put(Bytes.toBytes(rowKey));
        p1.add(Bytes.toBytes(columnFamily), Bytes.toBytes(identifier), Bytes.toBytes(data));
        table.put(p1);
        System.out.println("put '"+rowKey+"', '"+columnFamily+":"+identifier+"', '"+data+"'");
    }

    /**
     * get a row identified by rowkey
     * @param HTable, create by : HTable table = new HTable(conf, "tablename")
     * @param rowKey
     * @throws Exception
     */
    public static Result getRow(HTable table, String rowKey) throws Exception {
        Get get = new Get(Bytes.toBytes(rowKey));
        Result result = table.get(get);
        System.out.println("Get: "+result);
        return result;
    }

    /**
     * delete a row identified by rowkey
     * @param HTable, create by : HTable table = new HTable(conf, "tablename")
     * @param rowKey
     * @throws Exception
     */
    public static void deleteRow(HTable table, String rowKey) throws Exception {
        Delete delete = new Delete(Bytes.toBytes(rowKey));
        table.delete(delete);
        System.out.println("Delete row: "+rowKey);
    }

    /**
     * return all row from a table
     * @param HTable, create by : HTable table = new HTable(conf, "tablename")
     * @throws Exception
     */
    public static ResultScanner scanAll(HTable table) throws Exception {
        Scan s =new Scan();
        ResultScanner rs = table.getScanner(s);
        return rs;
    }

    /**
     * return a range of rows specified by startrow and endrow
     * @param HTable, create by : HTable table = new HTable(conf, "tablename")
     * @param startrow
     * @param endrow
     * @throws Exception
     */
    public static ResultScanner scanRange(HTable table,String startrow,String endrow) throws Exception {
        Scan s =new Scan(Bytes.toBytes(startrow),Bytes.toBytes(endrow));
        ResultScanner rs = table.getScanner(s);
        return rs;
    }
    /**
     * return a range of rows filtered by specified condition
     * @param HTable, create by : HTable table = new HTable(conf, "tablename")
     * @param startrow
     * @param filter
     * @throws Exception
     */
    public static ResultScanner scanFilter(HTable table,String startrow, Filter filter) throws Exception {
        Scan s =new Scan(Bytes.toBytes(startrow),filter);
        ResultScanner rs = table.getScanner(s);
        return rs;
    }

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub

        HTable table = new HTable(conf, "apitable");

//      ResultScanner rs = HBaseDAO.scanRange(table, "2013-07-10*", "2013-07-11*");
//      ResultScanner rs = HBaseDAO.scanRange(table, "100001", "100003");
        ResultScanner rs = HBaseDAO.scanAll(table);

        for(Result r:rs) {
            System.out.println("Scan: "+r);
        }
        table.close();


//      HBaseDAO.createTable("apitable", "testcf");
//      HBaseDAO.putRow("apitable", "100001", "testcf", "name", "liyang");
//      HBaseDAO.putRow("apitable", "100003", "testcf", "name", "leon");
//      HBaseDAO.deleteRow("apitable", "100002");
//      HBaseDAO.getRow("apitable", "100003");
//      HBaseDAO.deleteTable("apitable");

    }
}

相關推薦

HBase 開發環境搭建Eclipse+Maven

環境: Win764bit Eclipse Version: Kepler Service Release 1 java version “1.7.0_40” 第一步:Eclipse中新建Maven專案,編輯pom.xml並更新下載jar包

HBase 開發環境搭建Eclipse\MyEclipse + Maven

 寫在前面的話    首先,   相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。   比如,    需要注意的是,同樣,在MyEclipse裡,也是需要先安裝好Maven的。切記切記,否則,會裝到預設的位置,C盤裡去。最好是,安

windows下golang開發環境搭建Eclipse

1.go語言環境安裝 下載地址:https://golang.org/dl/ 找windows下面的msi檔案下載安裝即可。注意位數喲~ 安裝完這個你就可以在命令列下面執行go程式啦:go run test.go package main import ( "fmt" ) fu

Hadoop專案開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。 步驟一:File  ->  New  -> Project   ->  Maven Project

MapReduce 開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。 步驟一:File  ->  New  -> Project   ->  Maven Project

Zookeeper專案開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。   步驟一:File  ->  New  -> Project   ->  Maven Project 

Hive專案開發環境搭建Eclipse\MyEclipse + Maven

寫在前面的話     可詳細參考,一定得去看   我這裡,相信,能看此部落格的朋友,想必是有一定基礎的了。我前期寫了大量的基礎性博文。可以去補下基礎。 步驟一:File  ->  New  -> Project   ->  Maven Project 

微信小程序的開發環境搭建Windows版本

block 項目目錄 mar 應用 images 想要 log 點擊 體系 前言: 小程序是指微信公眾平臺小程序,小程序可以幫助開發者快速的開發小程序,小程序可以在微信內被便捷地獲取和傳播;是一種不需要下載安裝即可使用的應用小程序,和原有的三種公眾號是並行的體系

[Flutter] Windows平臺Flutter開發環境搭建Andorid Studio

dem runt tps 點擊 下載頁面 系統屬性 href source runtime 前兩天網友在群裏說起了Flutter,就了解了一下,在手機上跑了它的demo,正接就被打動了。 雖然網上有很多教程,但真正開始的時候,還是會碰到很多坑。下面詳細的講解Flutter

java開發環境搭建jdk安裝和經常出現問題的探討

面對許多java初學者環境搭建出現的問題 第一步: 1,首先在可以百度jdk進入oracle的官網也可以進入這個網站 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2,下載完

一步一步瞭解Cocos2dx 3.0 正式版本開發環境搭建Win32/Android

cocos2d-x 3.0釋出有一段時間了,作為一個初學者,我一直覺得cocos2d-x很坑。每個比較大的版本變動,都會有不一樣的專案建立方式,每次的跨度都挺大……   但是憑心而論,3.0RC版本開始 環境搭建、專案建立、編譯的方式更加人性化了。   現在我們進

機器學習包括深度神經網路python開發環境搭建超詳細適合新手

最近接了一個大資料專案,需要進行到資料分析,作為一個從程式設計師往資料探勘工程師轉行的人來說,R語言在靈活性上不如Python,並且在深度神經網路等機器學習開源模組上,python也比R語言有更好的支援。本文主要利用Ubuntu來搭建虛擬機器來進行資料分析工作,主要利用了

JavaWeb學習心得之開發環境搭建Tomcat伺服器

疑問:學習web開發,為什麼必須要先裝一個WEB伺服器?   在本地計算機上隨便建立一個web頁面,使用者是無法訪問到的,但是如果啟動tomcat伺服器,把web頁面放在tomcat伺服器中,使用者就

Spark開發環境搭建IDEA、Maven

在搭建開發環境之前,請先安裝好scala開發環境和spark: scala:https://blog.csdn.net/qq_39429714/article/details/84332869 spark:https://blog.csdn.net/qq_39429714/article/d

Eclipse + Golang 開發環境搭建 要點備忘

安裝步驟 官網下載Golang,安裝 官網下載eclipse,安裝 除錯需要安裝gdb 比較方便的方法是,官網下載安裝 liteide,拷貝其bin下gdb.exe gdb64.exe到go目錄bin下 Eclipse Golang環境配置 點選

java web開發環境搭建jdk+Tomcat+EclipseEclipse食用方法

首先-什麼是web應用程式? -可以用瀏覽器直接訪問的應用程式,不需要安裝其他軟體。 軟體開發領域的三大方向:桌面應用程式(C/S)、web應用程式 、嵌入式應用程式(安卓 iphone) 而ja

Selenium Webdriver學習記錄環境搭建Java+Maven+Eclipse+Selenium3.x+第一個測試demo+部分問題解決

1.Selenium的學習網站:     官網:http://www.seleniumhq.org/docs/     中文網站:易百教程-->Selenium教程:http://www.yiibai.com/selenium/ 2.搭建環境     準備:安裝了Ma

java web開發環境搭建java+tomcat+eclipse

下載安裝包/壓縮包 1.1 JDK 下載地址:Java SE Development Kit 8 Downloads 如果沒有安裝過java的建議裝java8或9,java版本關係到Tomcat

微信公眾平臺開發之基於百度 BAE3.0 的開發環境搭建採用 Baidu Eclipse

轉載請標明出處<http://blog.csdn.net/bingtianxuelong/article/details/17843111>,謝謝! 版本說明:     V1:  2014-2-13更新,紅色字型代表最近一次更新的內容。  

Hadoop實踐---叢集和開發環境搭建Intellij IDEA & Maven 開發Hadoop

1. 開發環境準備 1. Hadoop叢集安裝 2. Maven安裝 3. Intellij IDEA安裝 2. 建立專案 1. 建立Maven專案 2. 輸入GroupId 和 ArtifactId 新建專案後有提示