Suche senden
Hochladen
H base programming
•
Als PPTX, PDF herunterladen
•
2 gefällt mir
•
772 views
Muthusamy Manigandan
Folgen
HBase tutorial to get started
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 20
Jetzt herunterladen
Empfohlen
Pdxpugday2010 pg90
Pdxpugday2010 pg90
Selena Deckelmann
TDC2016SP - Código funcional em Java: superando o hype
TDC2016SP - Código funcional em Java: superando o hype
tdc-globalcode
WorkingWithSlick2.1.0
WorkingWithSlick2.1.0
Knoldus Inc.
mobl presentation @ IHomer
mobl presentation @ IHomer
zefhemel
Spring Data for KSDG 2012/09
Spring Data for KSDG 2012/09
永昇 陳
Spock and Geb
Spock and Geb
Christian Baranowski
The Ring programming language version 1.8 book - Part 41 of 202
The Ring programming language version 1.8 book - Part 41 of 202
Mahmoud Samir Fayed
Everything About PowerShell
Everything About PowerShell
Gaetano Causio
Empfohlen
Pdxpugday2010 pg90
Pdxpugday2010 pg90
Selena Deckelmann
TDC2016SP - Código funcional em Java: superando o hype
TDC2016SP - Código funcional em Java: superando o hype
tdc-globalcode
WorkingWithSlick2.1.0
WorkingWithSlick2.1.0
Knoldus Inc.
mobl presentation @ IHomer
mobl presentation @ IHomer
zefhemel
Spring Data for KSDG 2012/09
Spring Data for KSDG 2012/09
永昇 陳
Spock and Geb
Spock and Geb
Christian Baranowski
The Ring programming language version 1.8 book - Part 41 of 202
The Ring programming language version 1.8 book - Part 41 of 202
Mahmoud Samir Fayed
Everything About PowerShell
Everything About PowerShell
Gaetano Causio
Rデバッグあれこれ
Rデバッグあれこれ
Takeshi Arabiki
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
doughellmann
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189
Mahmoud Samir Fayed
はじめてのGroovy
はじめてのGroovy
Tsuyoshi Yamamoto
関数潮流(Function Tendency)
関数潮流(Function Tendency)
riue
The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196
Mahmoud Samir Fayed
Adodb Scripts And Some Sample Scripts[1]
Adodb Scripts And Some Sample Scripts[1]
User1test
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET Application
Joni
Scala 2 + 2 > 4
Scala 2 + 2 > 4
Emil Vladev
Grails - The search is over
Grails - The search is over
Felipe Coutinho
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31
Mahmoud Samir Fayed
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8
XSolve
Patterns for slick database applications
Patterns for slick database applications
Skills Matter
The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180
Mahmoud Samir Fayed
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212
Mahmoud Samir Fayed
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
croquiscom
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
SOAT
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Tsuyoshi Yamamoto
The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185
Mahmoud Samir Fayed
Joker 2015 - Валеев Тагир - Что же мы измеряем?
Joker 2015 - Валеев Тагир - Что же мы измеряем?
tvaleev
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with Javassist
Anton Arhipov
Kamil Chmielewski, Jacek Juraszek - "Hadoop. W poszukiwaniu złotego młotka."
Kamil Chmielewski, Jacek Juraszek - "Hadoop. W poszukiwaniu złotego młotka."
sjabs
Weitere ähnliche Inhalte
Was ist angesagt?
Rデバッグあれこれ
Rデバッグあれこれ
Takeshi Arabiki
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
doughellmann
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189
Mahmoud Samir Fayed
はじめてのGroovy
はじめてのGroovy
Tsuyoshi Yamamoto
関数潮流(Function Tendency)
関数潮流(Function Tendency)
riue
The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196
Mahmoud Samir Fayed
Adodb Scripts And Some Sample Scripts[1]
Adodb Scripts And Some Sample Scripts[1]
User1test
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET Application
Joni
Scala 2 + 2 > 4
Scala 2 + 2 > 4
Emil Vladev
Grails - The search is over
Grails - The search is over
Felipe Coutinho
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31
Mahmoud Samir Fayed
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8
XSolve
Patterns for slick database applications
Patterns for slick database applications
Skills Matter
The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180
Mahmoud Samir Fayed
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212
Mahmoud Samir Fayed
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
croquiscom
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
SOAT
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Tsuyoshi Yamamoto
The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185
Mahmoud Samir Fayed
Joker 2015 - Валеев Тагир - Что же мы измеряем?
Joker 2015 - Валеев Тагир - Что же мы измеряем?
tvaleev
Was ist angesagt?
(20)
Rデバッグあれこれ
Rデバッグあれこれ
Hidden Treasures of the Python Standard Library
Hidden Treasures of the Python Standard Library
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189
はじめてのGroovy
はじめてのGroovy
関数潮流(Function Tendency)
関数潮流(Function Tendency)
The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196
Adodb Scripts And Some Sample Scripts[1]
Adodb Scripts And Some Sample Scripts[1]
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET Application
Scala 2 + 2 > 4
Scala 2 + 2 > 4
Grails - The search is over
Grails - The search is over
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8
Patterns for slick database applications
Patterns for slick database applications
The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.5.1 book - Part 24 of 180
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Groovy ネタ NGK 忘年会2009 ライトニングトーク
The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185
Joker 2015 - Валеев Тагир - Что же мы измеряем?
Joker 2015 - Валеев Тагир - Что же мы измеряем?
Ähnlich wie H base programming
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with Javassist
Anton Arhipov
Kamil Chmielewski, Jacek Juraszek - "Hadoop. W poszukiwaniu złotego młotka."
Kamil Chmielewski, Jacek Juraszek - "Hadoop. W poszukiwaniu złotego młotka."
sjabs
apache tajo 연동 개발 후기
apache tajo 연동 개발 후기
효근 박
JJUG CCC 2011 Spring
JJUG CCC 2011 Spring
Kiyotaka Oku
LECTURE 2 MORE TYPES, METHODS, CONDITIONALS.pdf
LECTURE 2 MORE TYPES, METHODS, CONDITIONALS.pdf
ShashikantSathe3
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Anton Arhipov
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
Deependra Ariyadewa
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Anton Arhipov
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]
Baruch Sadogursky
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
Answer this question for quality assurance. Include a final applicat.pdf
Answer this question for quality assurance. Include a final applicat.pdf
akanshanawal
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
Matthew McCullough
Scala in practice
Scala in practice
andyrobinson8
ES6 patterns in the wild
ES6 patterns in the wild
Joe Morgan
AJUG April 2011 Cascading example
AJUG April 2011 Cascading example
Christopher Curtin
package Chapter_20;import ToolKit.PostfixNotation;import javaf.pdf
package Chapter_20;import ToolKit.PostfixNotation;import javaf.pdf
sudhirchourasia86
TypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
Clean coding-practices
Clean coding-practices
John Ferguson Smart Limited
code for quiz in my sql
code for quiz in my sql
JOYITAKUNDU1
Productive Programming in Groovy
Productive Programming in Groovy
Ganesh Samarthyam
Ähnlich wie H base programming
(20)
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with Javassist
Kamil Chmielewski, Jacek Juraszek - "Hadoop. W poszukiwaniu złotego młotka."
Kamil Chmielewski, Jacek Juraszek - "Hadoop. W poszukiwaniu złotego młotka."
apache tajo 연동 개발 후기
apache tajo 연동 개발 후기
JJUG CCC 2011 Spring
JJUG CCC 2011 Spring
LECTURE 2 MORE TYPES, METHODS, CONDITIONALS.pdf
LECTURE 2 MORE TYPES, METHODS, CONDITIONALS.pdf
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
Answer this question for quality assurance. Include a final applicat.pdf
Answer this question for quality assurance. Include a final applicat.pdf
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
Scala in practice
Scala in practice
ES6 patterns in the wild
ES6 patterns in the wild
AJUG April 2011 Cascading example
AJUG April 2011 Cascading example
package Chapter_20;import ToolKit.PostfixNotation;import javaf.pdf
package Chapter_20;import ToolKit.PostfixNotation;import javaf.pdf
TypeScript Introduction
TypeScript Introduction
Clean coding-practices
Clean coding-practices
code for quiz in my sql
code for quiz in my sql
Productive Programming in Groovy
Productive Programming in Groovy
Kürzlich hochgeladen
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
The Digital Insurer
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Edi Saputra
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
Zilliz
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
apidays
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Nanddeep Nachan
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Kürzlich hochgeladen
(20)
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
H base programming
1.
HBase Programming
Mani mmaniga@yahoo.co.uk
2.
CreateTable public static int
VERSION = 5; public static void createTable(byte[] tableName, byte[][] families, int numVersions) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); HTableDescriptor htableDesc = new HTableDescriptor(tableName); for (byte[] family : families) { HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(family, numVersions, HColumnDescriptor.DEFAULT_COMPRESSION, HColumnDescriptor.DEFAULT_IN_MEMORY, HColumnDescriptor.DEFAULT_BLOCKCACHE, HColumnDescriptor.DEFAULT_TTL, HColumnDescriptor.DEFAULT_BLOOMFILTER); htableDesc.addFamily(hColumnDescriptor); } hbaseAdmin.createTable(htableDesc); }
3.
Table Exists &
Get Table Name public static boolean tableExist(byte[] tableName) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); return hbaseAdmin.tableExists(tableName); } public static List<String> getTableNames() throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); List<String> tables = new ArrayList<String>(); for (HTableDescriptor htableDesc : hbaseAdmin.listTables()) { printTableDescriptors(htableDesc); tables.add(htableDesc.getNameAsString()); } return tables; } public static void printTableDescriptors(HTableDescriptor descriptor) { System.out.println("Table name " + descriptor.getNameAsString()); for (HColumnDescriptor columnDescriptor : descriptor.getColumnFamilies()) { System.out.println(columnDescriptor.getNameAsString()); System.out.println(columnDescriptor.getMaxVersions()); System.out.println(columnDescriptor.getMinVersions()); } }
4.
Insert Record public static
void insertRecord(HTable htable, byte[] columnFamily, boolean createColumnFamily, HashMap<String, HashMap<String, String>> creditLogMaps) throws IOException { String rowKey;// record key HashMap<String, String> columnData; if (!columnFamilyExist(htable, columnFamily)) { if (!createColumnFamily) return; else createColumnFamily(htable, columnFamily, VERSION); } for (Map.Entry<String, HashMap<String, String>> creditLogMap : creditLogMaps.entrySet()) { rowKey = creditLogMap.getKey(); columnData = creditLogMap.getValue(); Put put = new Put(rowKey.getBytes()); for (Map.Entry<String, String> kv : columnData.entrySet()) { put.add(columnFamily, kv.getKey().getBytes(), kv.getValue() .getBytes()); } htable.put(put); System.out.println("Record inserted"); } }
5.
Create Column Family public
static void createColumnFamily(HTable htable, byte[] columnFamily, int numVersions) throws IOException { disableTable(htable.getTableName()); while (isTableEnabled(htable.getTableName()));// wait untill table is disabled HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); HColumnDescriptor hColumnDescriptor = new HColumnDescriptor( columnFamily, numVersions, HColumnDescriptor.DEFAULT_COMPRESSION, HColumnDescriptor.DEFAULT_IN_MEMORY, HColumnDescriptor.DEFAULT_BLOCKCACHE, HColumnDescriptor.DEFAULT_TTL, HColumnDescriptor.DEFAULT_BLOOMFILTER); hbaseAdmin.addColumn(htable.getTableName(), hColumnDescriptor); enableTable(htable.getTableName()); }
6.
Get Column Family public
static List<String> getColumnFamilies(HTable htable) throws IOException { List<String> columnFamilies = new ArrayList<String>(); for (HColumnDescriptor columnDesc : htable.getTableDescriptor().getColumnFamilies()) { columnFamilies.add(columnDesc.getNameAsString()); } return columnFamilies; } public static boolean columnFamilyExist(HTable htable, byte[] columnFamily) throws IOException { boolean hasColumn = false; if (htable.getTableDescriptor().getFamily(columnFamily) != null) { hasColumn = true; } return hasColumn; } public static boolean isTableEnabled(byte[] tableName) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); System.out.println("Table enabled " + hbaseAdmin.isTableEnabled(tableName)); return hbaseAdmin.isTableEnabled(tableName); }
7.
Enable, Disable &
Drop Table public static void enableTable(byte[] tableName) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); hbaseAdmin.enableTable(tableName); } public static void disableTable(byte[] tableName) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); hbaseAdmin.disableTable(tableName); System.out.println("Table " + new String(tableName) + " disabled"); } public static void dropTable(byte[] tableName) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); hbaseAdmin.deleteTable(tableName); System.out.println("Table " + new String(tableName) + " deleted"); }
8.
Get Table, Get
& Delete Record public static HTable getTable(byte[] tableName) throws IOException { HBaseConfiguration hbaseConfig = new HBaseConfiguration(); HBaseAdmin hbaseAdmin = new HBaseAdmin(hbaseConfig); return new HTable(hbaseConfig, tableName); } public static void deleteRecord(HTable hTable, String rowKey) throws IOException { Delete delete = new Delete(rowKey.getBytes()); hTable.delete(delete); System.out.println("Record " + rowKey + " deleted "); } public static PResultSet getRecord(HTable hTable, String rowKey, String family) throws IOException { Get get = new Get(rowKey.getBytes()); get.addFamily(family.getBytes()); PResultSet resultSet = new PResultSet(hTable, get); return resultSet; }
9.
Scan Records •
public static void scanRecords(byte[] startKey, HTable hTable) • throws IOException { • Scan scan = new Scan(startKey); • ResultScanner resultScanner = hTable.getScanner(scan); • System.out.println("#########Scan result ################"); • for (Result result : resultScanner) { • System.out.println(">key is " + new String(result.getRow())); • for (KeyValue kv : result.raw()) { • System.out.println(new String(kv.getFamily()) + ":" • + new String(kv.getQualifier()) + " = " • + new String(kv.getValue())); • } • } • System.out.println("--------Scan result ends here-------------------"); • }
10.
Scan Records by
Filter public static void scanRecords(byte[] startKey, HTable hTable, TestFilter testFilter) throws IOException { Scan scan = new Scan(startKey); scan.setFilter(testFilter.getFilters()); ResultScanner resultScanner = hTable.getScanner(scan); System.out.println("#########filter scan result ################"); for (Result result : resultScanner) { System.out.println(">key is " + new String(result.getRow())); for (KeyValue kv : result.raw()) { System.out.println(new String(kv.getFamily()) + ":" + new String(kv.getQualifier()) + " = " + new String(kv.getValue())); } } System.out.println("--------Scan result ends here-------------------"); }
11.
Filter Object class FilterObject
{ String columnFamilyName; String columnName; String value; CompareOp compareOp; public FilterObject(String columnFamilyName, String columnName, String value, CompareOp compareOp) { this.columnFamilyName = columnFamilyName; this.columnName = columnName; this.value = value; this.compareOp = compareOp; } }
12.
Filter Class class TestFilter
{ private List<FilterObject> filterObjects; private FilterList filterList; public TestFilter() { filterObjects = new ArrayList<FilterObject>(); filterList = new FilterList(); } public void addFilterObject(FilterObject ft) { filterObjects.add(ft); } public FilterList getFilters() { for (FilterObject filterObject : filterObjects) { filterList.addFilter(new SingleColumnValueFilter( filterObject.columnFamilyName.getBytes(), filterObject.columnName.getBytes(), filterObject.compareOp, filterObject.value.getBytes())); } return filterList; } }
13.
ResultSet class PResultSet {
private String tableName; private String columnFamily; private HashMap<String, String> resutlMap; private Result rs; public PResultSet(HTable hTable, Get get) throws IOException { this.rs = hTable.get(get); this.tableName = hTable.getTableDescriptor().getNameAsString(); this.columnFamily = hTable.getTableDescriptor().getColumnFamilies() .toString(); this.resutlMap = new HashMap<String, String>(); } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } Cont…
14.
ResultSet cont…. public String
getColumnFamily() { return columnFamily; } public void setColumnFamily(String columnFamily) { this.columnFamily = columnFamily; } public HashMap<String, String> getResutlMap() { return resutlMap; } public void setResutlMap(HashMap<String, String> resutlMap) { this.resutlMap = resutlMap; } public String toString() { System.out.println("TableName :" + getTableName()); System.out.println("ColumnFamily : " + getColumnFamily()); System.out.println("No Of Rows : " + rs.size()); for (KeyValue kv : rs.raw()) { resutlMap.put(Bytes.toString(kv.getQualifier()), Bytes.toString(kv.getValue())); } return resutlMap.toString(); } }
15.
Testing Code –
Create Functions Create Table Testing: String tableName = "TrainingDB"; String familyName = "CreditLog"; byte[] tableNameBytes = tableName.getBytes(); byte[] familyBytes = familyName.getBytes(); byte[][] columnFamilyByteArray = new byte[][] { familyBytes }; if (tableExist(tableNameBytes)) { System.out.println("Table exist"); disableTable(tableNameBytes); dropTable(tableNameBytes); } createTable(tableNameBytes, columnFamilyByteArray, 5); HTable hTable = getTable(tableNameBytes); System.out.println("Successfully created"); System.out.println("Column exist : " + columnFamilyExist(hTable, familyBytes));
16.
Testing Code –
Put HashMap<String, HashMap<String, String>> creditLogMaps = new HashMap<String, HashMap<String, String>>(); HashMap<String, String> creditLogMap = new HashMap<String, String>(); creditLogMap.put("Name", "Karthik"); creditLogMap.put("Age", "36"); creditLogMap.put("Rating", "Good"); creditLogMap.put("Limit", "404$"); String rowKey = "1753-4343-4322-5423"; creditLogMaps.put(rowKey, creditLogMap); creditLogMap = new HashMap<String, String>(); creditLogMap.put("Name", "Manik"); creditLogMap.put("Age", "36"); creditLogMap.put("Rating", "Average"); creditLogMap.put("Limit", "-2$"); String rowKey2 = "5557-4343-4322-5422"; creditLogMaps.put(rowKey2, creditLogMap); insertRecord(hTable, familyBytes, false, creditLogMaps);
17.
Testing Code -
Put HashMap<String, String> transLogMap = new HashMap<String, String>(); transLogMap.put("Date", "23-NOV-2011"); transLogMap.put("Amount", "$30"); transLogMap.put("Balance", "$450"); transLogMap.put("Bank", "Barclays"); HashMap<String, HashMap<String, String>> transLogMaps = new HashMap<String, HashMap<String, String>>(); transLogMaps.put(rowKey, transLogMap); insertRecord(hTable, "TransLog".getBytes(), true, transLogMaps);
18.
Testing Code –
List Tables System.out.println("Tables in HBase"); for (String name : getTableNames()) { System.out.println("# " + name); System.out.println("Table columns"); HTable table = getTable(name.getBytes()); for (String columnName : getColumnFamilies(table)) { System.out.println("- " + columnName); } }
19.
Testing Code –
Get & Scan Records System.out.println(getRecord(hTable, rowKey, familyName).toString()); System.out.println(getRecord(hTable, rowKey, "TransLog").toString()); scanRecords(rowKey.getBytes(), hTable); FilterObject filterObject = new FilterObject(familyName, "Age", "36", CompareOp.EQUAL); FilterObject filterObject2 = new FilterObject(familyName, "Limit", "-2$", CompareOp.EQUAL); TestFilter testFilter = new TestFilter(); testFilter.addFilterObject(filterObject); testFilter.addFilterObject(filterObject2); scanRecords(rowKey.getBytes(), hTable, testFilter); deleteRecord(hTable, rowKey); System.out.println("After delete"); scanRecords(rowKey.getBytes(), hTable);
20.
Happy Coding – Mani –
mmaniga@yahoo.co.uk
Jetzt herunterladen