hbasejavasample-创新互联

  1. 通过HBaseAdmin维护表(创建,删除表)

    成都创新互联公司主要从事成都网站制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务浉河,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
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);     }     }

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

分享名称:hbasejavasample-创新互联
网站链接:https://www.cdcxhl.com/article26/coosjg.html

成都网站建设公司_创新互联,为您提供标签优化网站收录网站制作定制开发微信小程序营销型网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管