HBase的java编程实例-写入词频统计
来源:互联网 发布:梅原大吾背水逆转 知乎 编辑:程序博客网 时间:2024/05/20 06:29
//下面代码需要新建一个文本文件作为读取内容import java.io.BufferedReader;import java.io.FileReader;import java.util.List;import java.util.ArrayList;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Get;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.HTableDescriptor;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.util.Bytes;import org.apache.hadoop.hbase.KeyValue;/* * @author michael * 2014.4.22 * * */public class HBaseSample { static Configuration conf=null; static{ conf=HBaseConfiguration.create();// this is used to configure the hbase conf.set("hbase.zookeeper.quorum", "localhost"); } public static void main(String[] args) { // TODO Auto-generated method stub HBaseSample tableNew=new HBaseSample(); try { HBaseAdmin admin=new HBaseAdmin(conf); if(admin.tableExists("shakespeare")) //if the table has existed,delete it { admin.disableTable("shakespeare"); admin.deleteTable("shakespeare"); } tableNew.createTable("shakespeare", new String[]{"word","count"}); //create the table BufferedReader reader=new BufferedReader(new FileReader("wordCountPart.txt")); String str,rowkey,word,value; int rowNum=0; while((str=reader.readLine())!=null) //循环从文本中读入数据;文本中的每一行是:word count;例如: a 111; { rowNum++; rowkey=String.valueOf(rowNum); word=str.split("\t")[0]; //以tbale键分开 value=str.split("\t")[1]; tableNew.insertRow("shakespeare",rowkey,"word","the only word",word); tableNew.insertRow("shakespeare",rowkey,"count",word+"'s value",value); } reader.close(); System.out.println("下面输出整张表"); tableNew.showAll("shakespeare"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /***** * create a table,and assign the column * */ public void createTable(String tableName,String columns[])throws Exception{ HBaseAdmin admin=new HBaseAdmin(conf); //客户端管理工具类 if(admin.tableExists(tableName)) System.out.println("The table is already exist"); else { HTableDescriptor table=new HTableDescriptor(tableName); for(String c:columns) { HColumnDescriptor col=new HColumnDescriptor(c); table.addFamily(col); } admin.createTable(table); admin.close(); System.out.println("The table has been created successfully"); } } /** * delete the table * */ public void deleteTable(String tableName)throws Exception { HBaseAdmin hAdmin=new HBaseAdmin(conf); if(hAdmin.tableExists(tableName)) { hAdmin.disableTable(tableName); hAdmin.deleteTable(tableName); } System.out.println("the table has been deleted successfully!"); } /** * add the data * */ public static Put insertRowByPut(String row,String columnFamily, String column, String value) { Put put=new Put(Bytes.toBytes(row)); put.add(Bytes.toBytes(columnFamily),Bytes.toBytes(column), Bytes.toBytes(value)); return put; } public void insertRow(String tableName,String row,String columnFamily, String column, String value)throws Exception{ HTable table=new HTable(conf,tableName); Put put=new Put(Bytes.toBytes(row)); put.add(Bytes.toBytes(columnFamily),Bytes.toBytes(column), Bytes.toBytes(value)); table.put(put); table.close(); System.out.println("The data has been inserted successfully!"); } /** * 删除多条数据 * */ public void deleteByRow(String tableName,String rowkey[])throws Exception { HTable h=new HTable(conf,tableName); List<Delete>list=new ArrayList<Delete>(); //Get g=new Get(Bytes.toBytes(rowkey)); for(String k:rowkey) { Delete d=new Delete(Bytes.toBytes(k)); list.add(d); } h.delete(list); h.close(); } /** * 得到一个数据 * */ public void getOneDataByRowKey(String tableName,String rowkey) throws Exception { HTable h=new HTable(conf,tableName); Get g=new Get(Bytes.toBytes(rowkey)); Result r=h.get(g); for(KeyValue k:r.raw()){ System.out.println("行是:"+Bytes.toStringBinary(k.getRow())); System.out.println("时间戳是:"+k.getTimestamp()); System.out.println("列族是:"+Bytes.toStringBinary(k.getFamily())); System.out.println("列是:"+Bytes.toStringBinary(k.getQualifier())); String ss=Bytes.toString(k.getValue()); System.out.println("值是"+ss); } h.close(); } /** * 扫描所有的数据 * */ public void showAll(String tableName) throws Exception{ HTable h=new HTable(conf,tableName); Scan scan=new Scan(); ResultScanner scanner=h.getScanner(scan); for(Result r:scanner) { System.out.println("=============================="); for(KeyValue k:r.raw()) { System.out.println("the rowkey:"+Bytes.toStringBinary(k.getRow())); System.out.println("the TimeStap:"+k.getTimestamp()); System.out.println("the ColumnKey:"+Bytes.toStringBinary(k.getFamily())); System.out.println("the Column:"+Bytes.toStringBinary(k.getQualifier())); String ss=Bytes.toString(k.getValue()); System.out.println("the value:"+ss); } } h.close(); } }
0 0
- HBase的java编程实例-写入词频统计
- mapreduce编程实例(1)-统计词频
- mapreduce编程实例(1)-统计词频
- 字典实例:统计词频
- 用java写的词频统计
- Java实现的一个词频统计程序
- 基于LUCENE的java词频统计
- java进行文本单词的词频统计
- Java实现的一个词频统计程序
- java 英文词频统计
- java词频统计
- Java 词频统计
- Trie树词频统计实例
- 【java】以词频升序统计文本词频
- 使用JAVA进行词频统计
- Java 用hashmap统计词频
- java实现词频统计程序
- Mapreduce多表关联与词频统计程序运行结果输出到Hbase的两个途径
- JNDI
- 捋一捋这HTML-----Day19
- RedHat Linux AS4 DNS 配置
- Android的Bitmap类中常用方法
- C++完美实现Singleton模式
- HBase的java编程实例-写入词频统计
- freemarker之list
- c的那些事
- Redis的安装与部署(CentOS6.5)
- 题目1251:序列分割(DFS+剪枝)
- android学习笔记----Dalvik VM 和 JVM的区别
- CSDN 编程挑战 彩色石子
- QItemDelegate
- 开通博客的第一天