Changes between Initial Version and Version 1 of NCHCCloudCourse100929_4_HBExp


Ignore:
Timestamp:
Sep 27, 2010, 6:24:03 PM (14 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NCHCCloudCourse100929_4_HBExp

    v1 v1  
     1{{{
     2#!html
     3<div style="text-align: center; color:#151B8D"><big style="font-weight: bold;"><big><big>
     4HBase 進階課程
     5</big></big></big></div> <div style="text-align: center; color:#7E2217"><big style="font-weight: bold;"><big>
     6程式範例練習
     7</big></big></div>
     8}}}
     9
     10[wiki:NCHCCloudCourse100928 回課程大綱 << ] 第一關 [wiki:NCHCCloudCourse100929_4_HBEX2 > 下一關 ]
     11
     12= 範例一:新增Table =
     13
     14 * 看懂以下程式碼,並成功執行它
     15
     16{{{
     17package org.nchc.hbase;
     18
     19import java.io.IOException;
     20
     21import org.apache.hadoop.conf.Configuration;
     22import org.apache.hadoop.hbase.HBaseConfiguration;
     23import org.apache.hadoop.hbase.HColumnDescriptor;
     24import org.apache.hadoop.hbase.HTableDescriptor;
     25import org.apache.hadoop.hbase.client.HBaseAdmin;
     26import org.apache.hadoop.util.GenericOptionsParser;
     27
     28public class CreateTable {
     29        public static void createHBaseTable(String tablename, String family)
     30                        throws IOException {
     31                // HTableDescriptor contains the name of an HTable, and its column
     32                // families
     33                // HTableDescriptor 用來描述table的屬性
     34                HTableDescriptor htd = new HTableDescriptor(tablename);
     35                // HColumnDescriptor HColumnDescriptor contains information about a
     36                // column family such as the number of versions, compression settings,
     37                // etc.
     38                // HTableDescriptor 透過 add() 方法來加入Column family
     39
     40                htd.addFamily(new HColumnDescriptor(family));
     41
     42                // HBaseConfiguration 能接收 hbase-site.xml 的設定值
     43                HBaseConfiguration config = new HBaseConfiguration();
     44                // 檔案的操作則使用 HBaseAdmin
     45                HBaseAdmin admin = new HBaseAdmin(config);
     46                // 檢查
     47                if (admin.tableExists(tablename)) {
     48                        System.out.println("Table: " + tablename + "Existed.");
     49                } else {
     50                        System.out.println("create new table: " + tablename);
     51                        // 建立
     52                        admin.createTable(htd);
     53                }
     54        }
     55
     56        static public void main(String argv[]) throws IOException {
     57               
     58                String[] otherArgs = new GenericOptionsParser(new Configuration(), argv)
     59                                .getRemainingArgs();
     60                if (otherArgs.length < 2) {
     61                        System.out.println("CreateTable <newTableName> <Family>");
     62                        return;
     63                }
     64               
     65                String tablename = otherArgs[0];
     66                String family = otherArgs[1];
     67
     68                System.out.println("1. create table :" + tablename);
     69
     70                createHBaseTable(tablename, family);
     71        }
     72}
     73
     74}}}
     75