| | 1 | {{{ |
| | 2 | #!html |
| | 3 | <div style="text-align: center; color:#151B8D"><big style="font-weight: bold;"><big><big> |
| | 4 | HBase 進階課程 |
| | 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 | {{{ |
| | 17 | package org.nchc.hbase; |
| | 18 | |
| | 19 | import java.io.IOException; |
| | 20 | |
| | 21 | import org.apache.hadoop.conf.Configuration; |
| | 22 | import org.apache.hadoop.hbase.HBaseConfiguration; |
| | 23 | import org.apache.hadoop.hbase.HColumnDescriptor; |
| | 24 | import org.apache.hadoop.hbase.HTableDescriptor; |
| | 25 | import org.apache.hadoop.hbase.client.HBaseAdmin; |
| | 26 | import org.apache.hadoop.util.GenericOptionsParser; |
| | 27 | |
| | 28 | public 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 | |