HBase Създаване на таблица с Java Пример за API и Shell
⚡ Умно обобщение
HBase съхранява данни в таблици и можете да създавате и обработвате тези таблици по два начина: чрез Java API с HTableDescriptили и HBaseAdmin, или директно в HBase shell-а, използвайки командата create.

Как да създадете таблица в HBase с Java API
В HBase таблиците могат да бъдат създадени по два начина: чрез Java API и чрез HBase shell. Този раздел обхваща Java API, който позволява на приложението да създава таблици и да зарежда данни програмно като част от по-голяма задача.
През Java API, можем да създаваме таблици в HBase и също така да зареждаме данни в таблици, използвайки Java кодиране. Двете неща, които настройваме тук, са:
- Установяване на връзка с HBase чрез Java API.
- Използването на Eclipse за Java кодиране, дебъгване и тестване.
Следват стъпките за създаване на таблици в HBase чрез Java API.
Стъпка 1) Създайте a Java Проектирайте в Eclipse
В тази стъпка ще създадем a Java проект в Eclipse за HBase връзката, наречена „HbaseConnection“.
The New Java Диалоговият прозорец на проекта по-долу показва как се настройва проектът „HbaseConnection“:
Ако разгледаме екранната снимка по-горе:
- Въведете името на проекта в това поле. В нашия случай името на проекта е „HbaseConnection“.
- Отметнете това квадратче, за да се запази местоположението по подразбиране. Тук пътят е /home/hduser/work/HbaseConnection.
- Поставете отметка в квадратчето за Java среда тук. В този случай JavaSE-1.7 е Java издание.
- Изберете опцията за мястото, където искате да запазите файла. В нашия случай избрахме втората опция – „Създаване на отделна папка за изходни кодове и файлове с класове“.
- Щракнете върху бутона „Готово“, което създава проекта „HbaseConnection“ в Eclipse и отваря Eclipse начална страница.
Стъпка 2) Конфигурирайте пътя за изграждане в Eclipse
От Eclipse На началната страница, следвайте тези стъпки, за да отворите конфигурацията на пътя за изграждане:
Right click on project -> Select Build Path -> Configure build path
Екранната снимка по-долу показва менюто с десен бутон, използвано за отваряне на конфигурацията на пътя за изграждане:
От горната екранна снимка:
- Щракнете с десния бутон върху проект.
- Изберете „Път за изграждане“.
- Изберете Конфигуриране на път за изграждане.
След като щракнете върху „Конфигуриране на пътя за изграждане“, се отваря друг прозорец, показан на екранната снимка по-долу. Разделът „Библиотеки“ е мястото, където JAR файловете на HBase и Hadoop се добавят към проекта:
В тази стъпка добавяме съответните HBase JAR файлове в Java проект, както е показано на екранната снимка.
- Важни JAR файлове, които ще бъдат добавени: hbase-0.94.8.jar и hadoop-core-1.1.2.jar.
- Отидете в раздела „Библиотеки“.
- Натиснете опцията Добавяне на външни JAR файлове.
- Изберете необходимите важни JAR файлове.
- Натиснете бутона „Готово“, за да добавите тези файлове към „src“ на Java проект в секцията „Библиотеки“.
След добавянето на JAR файловете, те се появяват под местоположението на проекта „src“, както е показано по-долу:
Всички JAR файлове, които попадат в проекта, вече са готови за използване с екосистемата Hadoop.
Стъпка 3) Установете HBase връзка
В тази стъпка, използвайки HBaseConnection.java, HBase връзката се установява чрез Java кодиране.
От Eclipse горното меню, изпълнете Java програма, както е показано по-долу: Изпълни -> Изпълни като -> Java Приложение. Менюто по-долу показва стартираната програма:
- Изберете „Изпълнение“.
- Изберете „Изпълни като“ Java Приложение.
- Този код установява връзка с HBase чрез Java API.
- След изпълнението на този код, таблицата „guru99“ се създава в HBase с две семейства колони, наречени „education“ и „projects“. В момента в HBase се създава само празната схема.
Откъсът от код по-долу подчертава HTableDescriptили и addFamily извиквания, които изграждат схемата на таблицата:
От екранната снимка по-горе, ние изпълняваме следните функции:
- Използване на HTableDescriptили можем да създадем таблицата „guru99“ в HBase.
- Използвайки метода addFamily, добавяме „education“ и „projects“ като семейства колони към таблицата „guru99“.
Кодът по-долу ще установи връзка с HBase и ще създаде таблицата „guru99“ с две семейства колони. Поставете този код под документа HBaseConnection.java:
// Place this code inside Hbase connection import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; Import org.apache.hadoop.hbase.client.HBaseAdmin; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
Това е необходимият код, който трябва да поставите в HBaseConnection.java, преди да стартирате Java програма.
След като стартира тази програма, тя установява връзка с HBase и от своя страна създава таблица с имена на колони.
- Името на таблицата е „guru99“.
- Семействата от колони са „образование“ и „проекти“.
Стъпка 4) Проверете създадената таблица в HBase
Можем да проверим дали таблицата „guru99“ е създадена с две семейства колони в HBase, като използваме режима на обвивката на HBase с командата „list“. Командата „list“ дава информация за всички таблици, създадени в HBase.
Изпълнението на командата list в HBase shell потвърждава новата таблица, както е показано по-долу:
- Code проверка в HBase shell чрез изпълнение на командата „list“.
- Ако изпълним командата „list“, тя показва таблицата, създадена в HBase. В нашия случай можем да видим, че е създадена таблицата „guru99“.
HBase Създаване на таблица с Shell
Освен Java API, можете да създадете таблица директно от обвивката на HBase, което е най-бързият начин за настройване на таблица за бързи тестове. Синтаксисът за създаване на таблица в HBase с помощта на обвивката е:
Syntax: create <tablename>, <columnfamilyname>
Пример:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
Горният пример обяснява как да се създаде таблица в HBase с посоченото име, дадено съгласно спецификациите за всяко семейство колони. В допълнение към това, можем да ѝ предадем и някои атрибути за обхват на таблицата.
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
Тук блокът {NAME=>'Edu', VERSIONS=>…} задава семейство колони с име „Edu“ и броя на версиите на клетките, които се съхраняват. Големият брой е само илюстративен; на практика VERSIONS е малка стойност, като например 3 или 5.
Изброяване, описание и проверка на HBase таблици
Създаването на таблица е само първата част от работата с таблици в HBase. След като таблицата „guru99“ съществува, няколко общи команди ви позволяват да я проверите и да потвърдите състоянието ѝ, преди да четете, пишете или променяте данни. Можете да ги изпълните всички от HBase обвивка.
Командата list връща всяка потребителска таблица в HBase:
hbase> list
Командата describe показва структурата на таблицата, включително нейните семейства колони и дали е активирана в момента:
hbase> describe 'guru99'
Командата exists проверява дали таблицата е налична, а is_enabled докладва дали таблицата може да приема записи:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
Тези проверки само за четене са безопасни за изпълнение по всяко време. Те са най-бързият начин да се потвърди, че дадена таблица е създадена правилно и да се прегледат нейните семейства колони преди зареждане на данни.
Промяна на HBase таблица
Схемата на таблицата в HBase не се фиксира след създаването ѝ. Командата alter променя семействата колони на таблицата и атрибутите на обхвата на таблицата, без да я пресъздава. В зависимост от вашата версия на HBase, може да се наложи първо да деактивирате таблицата, след което да изпълните alter и да я активирате отново.
За да добавите ново семейство колони към таблицата „guru99“:
hbase> alter 'guru99', {NAME => 'contact'}
За да зададете колко версии да се съхраняват в едно семейство колони:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
За да изтриете семейство колони от таблицата:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
Можете също да промените атрибутите на обхвата на таблицата. Например, маркирайте таблицата само за четене или задайте максималния размер на регионален файл на 128 MB:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
Тъй като alter пренаписва схемата, планирайте внимателно промените в производствена таблица и потвърдете резултата след това с describe.
Деактивиране, активиране и премахване на HBase таблици
За да премахнете таблица или да приложите определени промени, HBase изисква първо да я деактивирате. Деактивирането изключва таблицата от мрежата, така че никой клиент да не може да чете или пише в нея, което прави структурните промени безопасни.
Деактивирайте таблица и проверете състоянието ѝ с is_disabled:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
Активирайте отново таблицата, за да възобновите четенето и записа:
hbase> enable 'guru99'
Таблицата трябва да бъде деактивирана, преди да може да бъде премахната. Премахванеping изтрива таблицата и всичките ѝ данни завинаги, така че използвайте я внимателно:
hbase> disable 'guru99' hbase> drop 'guru99'
За да премахнете няколко таблици едновременно, drop_all изтрива всяка таблица, чието име съвпада с регулярен израз. Заедно, create, alter, disable, enable и drop покриват пълния жизнен цикъл на обработка на данни в HBase таблици.






