Advertisement
sureshsubbiah

Create HBase table with specified options and key boundaries

Jun 11th, 2014
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.02 KB | None | 0 0
  1. public boolean createk(String tblName, StringArrayList tableOptions,
  2. ByteArrayList beginEndKeys)
  3. throws IOException, MasterNotRunningException {
  4. logger.debug("HBaseClient.create(" + tblName + ") called.");
  5. String trueStr = "TRUE";
  6. cleanupCache(tblName);
  7. HTableDescriptor desc = new HTableDescriptor(tblName);
  8. HColumnDescriptor colDesc = new HColumnDescriptor(tableOptions.get(HBASE_NAME));
  9. for (int i = 0; i < tableOptions.size(); i++) {
  10. if (i == HBASE_NAME) continue ;
  11. if ((i != HBASE_MAX_VERSIONS) && (tableOptions.get(i).isEmpty())) continue ;
  12. switch (i) {
  13. case HBASE_MAX_VERSIONS:
  14. if (tableOptions.get(i).isEmpty())
  15. colDesc.setMaxVersions(1);
  16. else
  17. colDesc.setMaxVersions
  18. (Integer.parseInt(tableOptions.get(i)));
  19. break ;
  20. case HBASE_MIN_VERSIONS:
  21. colDesc.setMinVersions
  22. (Integer.parseInt(tableOptions.get(i)));
  23. break ;
  24. case HBASE_TTL:
  25. colDesc.setTimeToLive
  26. (Integer.parseInt(tableOptions.get(i)));
  27. break ;
  28. case HBASE_BLOCKCACHE:
  29. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  30. colDesc.setBlockCacheEnabled(true);
  31. else
  32. colDesc.setBlockCacheEnabled(false);
  33. break ;
  34. case HBASE_IN_MEMORY:
  35. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  36. colDesc.setInMemory(true);
  37. else
  38. colDesc.setInMemory(false);
  39. break ;
  40. case HBASE_COMPRESSION:
  41. if (tableOptions.get(i).equalsIgnoreCase("GZ"))
  42. colDesc.setCompressionType(Algorithm.GZ);
  43. else if (tableOptions.get(i).equalsIgnoreCase("LZ4"))
  44. colDesc.setCompressionType(Algorithm.LZ4);
  45. else if (tableOptions.get(i).equalsIgnoreCase("LZO"))
  46. colDesc.setCompressionType(Algorithm.LZO);
  47. else if (tableOptions.get(i).equalsIgnoreCase("NONE"))
  48. colDesc.setCompressionType(Algorithm.NONE);
  49. else if (tableOptions.get(i).equalsIgnoreCase("SNAPPY"))
  50. colDesc.setCompressionType(Algorithm.SNAPPY);
  51. break ;
  52. case HBASE_BLOOMFILTER:
  53. if (tableOptions.get(i).equalsIgnoreCase("NONE"))
  54. colDesc.setBloomFilterType(BloomType.NONE);
  55. else if (tableOptions.get(i).equalsIgnoreCase("ROW"))
  56. colDesc.setBloomFilterType(BloomType.ROW);
  57. else if (tableOptions.get(i).equalsIgnoreCase("ROWCOL"))
  58. colDesc.setBloomFilterType(BloomType.ROWCOL);
  59. break ;
  60. case HBASE_BLOCKSIZE:
  61. colDesc.setBlocksize
  62. (Integer.parseInt(tableOptions.get(i)));
  63. break ;
  64. case HBASE_DATA_BLOCK_ENCODING:
  65. if (tableOptions.get(i).equalsIgnoreCase("DIFF"))
  66. colDesc.setDataBlockEncoding(DataBlockEncoding.DIFF);
  67. else if (tableOptions.get(i).equalsIgnoreCase("FAST_DIFF"))
  68. colDesc.setDataBlockEncoding(DataBlockEncoding.FAST_DIFF);
  69. else if (tableOptions.get(i).equalsIgnoreCase("NONE"))
  70. colDesc.setDataBlockEncoding(DataBlockEncoding.NONE);
  71. else if (tableOptions.get(i).equalsIgnoreCase("PREFIX"))
  72. colDesc.setDataBlockEncoding(DataBlockEncoding.PREFIX);
  73. /* else if (tableOptions.get(i).equalsIgnoreCase("PREFIX_TREE"))
  74. colDesc.setDataBlockEncoding(DataBlockEncoding.PREFIX_TREE); */
  75. break ;
  76. case HBASE_CACHE_BLOOMS_ON_WRITE:
  77. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  78. colDesc.setCacheBloomsOnWrite(true);
  79. else
  80. colDesc.setCacheBloomsOnWrite(false);
  81. break ;
  82. case HBASE_CACHE_DATA_ON_WRITE:
  83. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  84. colDesc.setCacheDataOnWrite(true);
  85. else
  86. colDesc.setCacheDataOnWrite(false);
  87. break ;
  88. case HBASE_CACHE_INDEXES_ON_WRITE:
  89. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  90. colDesc.setCacheIndexesOnWrite(true);
  91. else
  92. colDesc.setCacheIndexesOnWrite(false);
  93. break ;
  94. case HBASE_COMPACT_COMPRESSION:
  95. if (tableOptions.get(i).equalsIgnoreCase("GZ"))
  96. colDesc.setCompactionCompressionType(Algorithm.GZ);
  97. else if (tableOptions.get(i).equalsIgnoreCase("LZ4"))
  98. colDesc.setCompactionCompressionType(Algorithm.LZ4);
  99. else if (tableOptions.get(i).equalsIgnoreCase("LZO"))
  100. colDesc.setCompactionCompressionType(Algorithm.LZO);
  101. else if (tableOptions.get(i).equalsIgnoreCase("NONE"))
  102. colDesc.setCompactionCompressionType(Algorithm.NONE);
  103. else if (tableOptions.get(i).equalsIgnoreCase("SNAPPY"))
  104. colDesc.setCompactionCompressionType(Algorithm.SNAPPY);
  105. break ;
  106. case HBASE_ENCODE_ON_DISK:
  107. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  108. colDesc.setEncodeOnDisk(true);
  109. else
  110. colDesc.setEncodeOnDisk(false);
  111. break ;
  112. case HBASE_EVICT_BLOCKS_ON_CLOSE:
  113. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  114. colDesc.setEvictBlocksOnClose(true);
  115. else
  116. colDesc.setEvictBlocksOnClose(false);
  117. break ;
  118. case HBASE_KEEP_DELETED_CELLS:
  119. if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  120. colDesc.setKeepDeletedCells(true);
  121. else
  122. colDesc.setKeepDeletedCells(false);
  123. break ;
  124. case HBASE_REPLICATION_SCOPE:
  125. colDesc.setScope
  126. (Integer.parseInt(tableOptions.get(i)));
  127. break ;
  128. case HBASE_MAX_FILESIZE:
  129. desc.setMaxFileSize
  130. (Long.parseLong(tableOptions.get(i)));
  131. break ;
  132. case HBASE_COMPACT:
  133. // Available in HBase 0.97
  134. /* if (tableOptions.get(i).equalsIgnoreCase(trueStr))
  135. desc.setCompactionEnabled(true);
  136. else
  137. desc.setCompactionEnabled(false); */
  138. break ;
  139. case HBASE_DURABILITY:
  140. // Available in HBase 0.97
  141. /* if (tableOptions.get(i).equalsIgnoreCase("ASYNC_WAL"))
  142. desc.setDurability(Durability.ASYNC_WAL);
  143. else if (tableOptions.get(i).equalsIgnoreCase("FSYNC_WAL"))
  144. desc.setDurability(Durability.FSYNC_WAL);
  145. else if (tableOptions.get(i).equalsIgnoreCase("SKIP_WAL"))
  146. desc.setDurability(Durability.SKIP_WAL);
  147. else if (tableOptions.get(i).equalsIgnoreCase("SYNC_WAL"))
  148. desc.setDurability(Durability.SYNC_WAL);
  149. else if (tableOptions.get(i).equalsIgnoreCase("USE_DEFAULT"))
  150. desc.setDurability(Durability.USE_DEFAULT); */
  151. break ;
  152. case HBASE_MEMSTORE_FLUSH_SIZE:
  153. desc.setMemStoreFlushSize
  154. (Long.parseLong(tableOptions.get(i)));
  155. break ;
  156. default:
  157. break;
  158. }
  159. }
  160. desc.addFamily(colDesc);
  161. HBaseAdmin admin = new HBaseAdmin(config);
  162. byte[][] keys = new byte[beginEndKeys.size()][];
  163. for (int i = 0; i < beginEndKeys.size(); i++)
  164. {
  165. keys[i] = beginEndKeys.get(i);
  166. }
  167.  
  168. if (beginEndKeys.size() == 0)
  169. admin.createTable(desc);
  170. else
  171. admin.createTable(desc, keys);
  172.  
  173. admin.close();
  174. return true;
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement