亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hbase java sample

發布時間:2020-03-08 21:09:34 來源:網絡 閱讀:2813 作者:菜菜光 欄目:關系型數據庫
  1. 通過HBaseAdmin維護表(創建,刪除表)

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.client.HBaseAdmin;
public class CreateHbaseTable {
    public static void main(String[] args) throws Exception {
       String tbl = "ericni_test";
        Configuration config = HBaseConfiguration. create();
        config.set( "hbase.zookeeper.quorum", "xxxx" );
        config.set( "hbase.zookeeper.property.clientPort" , "2181" );
        HBaseAdmin admin = new HBaseAdmin(config);
        HTableDescriptor[] tables = admin.listTables();
        for(HTableDescriptor t:tables){
            System. out.println(t.getNameAsString());
        }
        if (admin.tableExists(tbl.getBytes("utf8" ))) {
           System. out.println("table already exists!" );
        } else {
            System. out.println("table not already exists!create now!" );
            creatTable(admin,tbl,new String[]{ "info"});
       }
    }
    public static void creatTable(HBaseAdmin admin,String tableName, String[] familys) throws Exception {
            HTableDescriptor tableDesc = new HTableDescriptor(tableName);
            for(int i=0; i<familys.length; i++){
                tableDesc.addFamily( new HColumnDescriptor(familys[i]));
            }
            try{
               admin.createTable(tableDesc);
               System. out.println("create table " + tableName + " ok.");
            } catch (Exception err) {
              System. out.println("create table " + tableName + " failed. Error log is " +  err);
              err.printStackTrace();                                        
            }
    }
   
    public static void deleteTable(HBaseAdmin admin,String tableName) throws Exception {
       try{
                     admin.disableTable(tableName);
                     admin.deleteTable(tableName);
                     System. out.println("delete table " + tableName + " ok.");
       } catch(Exception err){
                     System. out.println("delete table " + tableName + " failed.Error log is " + err);
                     err.printStackTrace();
       }
    }
   
}

2.通過Put寫入數據

import java.io.File;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
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.util.Bytes;
public class LoadDataFromFile {
    public static void main(String[] args) throws Exception {
       String tbl = "ericni_test";
       String filename = "/tmp/click.log";
       File file = new File(filename);  
       BufferedReader reader = null;
        reader = new BufferedReader(new FileReader(file));
        Configuration config = HBaseConfiguration. create();
        config.set( "hbase.zookeeper.quorum", "10.100.90.203" );
        config.set( "hbase.zookeeper.property.clientPort" , "2181" );
        HTable table = new HTable(config, tbl);
        HBaseAdmin admin = new HBaseAdmin(config);
        if (admin.tableExists(tbl.getBytes("utf8" ))) {
           System. out.println("table already exists!" );
           try {
               try {
                   String tmpString = null;
                   int linex = 1;
                   while ((tmpString = reader.readLine()) != null) {
                           //System.out.println(tmpString.getClass());
                           String[] lines = tmpString.split( "\\t");
                           //String[] newlines = {lines[0],lines[1],lines[2],lines[3],lines[4]};  
                           //String row = StringUtils.join(new String[] {lines[0],lines[1],lines[2],lines[3],lines[4]}, "_");
                           StringBuffer sb = new StringBuffer();
                           String row = sb.append(lines[0]).append("_" ).append(lines[1]).append("_").append(lines[2]).append( "_").append(lines[3]).append("_" ).append(lines[4]).toString();
                           String valuex = lines[lines. length-1];                      
                           System. out.println(row);
                           linex ++;
                              addRecord(table,tbl,row, "Stat", "Click_cnt", valuex);
                   }
                   reader.close();
           } catch(IOException err){
                   err.printStackTrace();
           } finally {
                   try{
                           if(reader != null) reader.close();
                   } catch(IOException err){
                           err.printStackTrace();
                   }
           }
              
           } catch(Exception err){
                 System. out.println("load data error" );
                 System. out.println("error log: " + err);
                 err.printStackTrace();
           }        
          
        } else {
            System. out.println("table not already exists!" );
            System. exit(1);
       }
        table.close();
        admin.close();
    }
     public static void addRecord(HTable table,String tableName, String rowKey, String family, String qualifier, String value) throws Exception{
            Put put = new Put(Bytes.toBytes(rowKey));
            put.add(Bytes. toBytes(family), Bytes.toBytes(qualifier), Bytes.toBytes(value));
            table.put(put);
            System. out.println("insert recored " + rowKey + " to table " + tableName + " ok." );
        }
   
}

3.Scan的Filter操作

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.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
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.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 FilterTest {
    private static Configuration config = null;
    private static HTable table;
    private static HTable table2;
    private static HTable table3;
    static {
        try {
            config = HBaseConfiguration.create();
            config.set("hbase.zookeeper.quorum" , "xxxxx" );    
            config.set("hbase.zookeeper.property.clientPort" , "2181" );
        } catch (Exception e){
            e.printStackTrace();
        }
    }
    public static void selectByRowKey(String tablename,String rowKey) throws IOException{
        table = new HTable(config,tablename);
        Get g = new Get(Bytes.toBytes(rowKey));
        Result r = table.get(g);
        for(KeyValue kv:r.raw()){
            System. out.println("row : " +new String(kv.getRow()));
            System. out.println("column: " +new String(kv.getKey()));
            System. out.println("value: " +new String(kv.getValue()));
        }
    }   
    public static void selectByRowKeyColumn(String tablename,String rowKey,String column,String qualifier) throws IOException{
        table2 = new HTable(config,tablename);
        Get g = new Get(Bytes.toBytes(rowKey));
        g.addColumn(Bytes. toBytes(column),qualifier.getBytes("utf8"));
        Result r = table2.get(g);
        for(KeyValue kv:r.raw()){
            System. out.println("row : " +new String(kv.getRow()));
            System. out.println("column: " +new String(kv.getKey()));
            System. out.println("value: " +new String(kv.getValue()));
        }
    } 
    public static void selectByFilter(String tablename,List<String> arr) throws IOException{
        table3 = new HTable(config,tablename);
        FilterList filterList = new FilterList();
        Scan s1 = new Scan();
        for(String v:arr){
            String[] s = v.split( ",");
            filterList.addFilter( new SingleColumnValueFilter(Bytes.toBytes(s[0]),
                                                             Bytes.toBytes(s[1]),
                                                             CompareOp.EQUAL,Bytes.toBytes(s[2])
                                                             )
            );
            s1.addColumn(Bytes. toBytes(s[0]), Bytes.toBytes(s[1]));
        }
        s1.setFilter(filterList);
        ResultScanner ResultScannerFilterList = table3.getScanner(s1);
        for(Result rr = ResultScannerFilterList.next();rr != null;rr = ResultScannerFilterList.next()){
            for(KeyValue kv:rr.list()){
                System. out.println("row : " +new String(kv.getRow()));
                System. out.println("column : " +new String(kv.getKey()));
                System. out.println("value : " +new String(kv.getValue()));
            }
        }
    }    
    public static void main(String[] args) throws IOException{          
       //selectByRowKey("ericni_test","102_2.94_1400342400_00426_01132");              
           //selectByRowKeyColumn("ericni_test","102_2.94_1400342400_00426_01132"," Stat","Click_cnt");             
        List<String> arr= new ArrayList<String>();
        arr.add( "Stat,Click_cnt,1");
        selectByFilter("ericni_test" ,arr);
    }    
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五指山市| 西青区| 富宁县| 洮南市| 德清县| 文水县| 白朗县| 平舆县| 荃湾区| 芒康县| 天镇县| 宁都县| 那曲县| 商城县| 赤城县| 多伦县| 襄城县| 青岛市| 筠连县| 新巴尔虎左旗| 遂昌县| 罗城| 凉城县| 黑山县| 太保市| 高阳县| 迁西县| 聂拉木县| 柘城县| 高安市| 云霄县| 新乐市| 通道| 什邡市| 济宁市| 讷河市| 腾冲县| 克什克腾旗| 屏山县| 门头沟区| 松阳县|