В этом руководстве вы узнаете:
- Запись данных в таблицу HBase: оболочка
- Чтение данных из таблицы HBase: Shell
- Запись данных в таблицу HBase: API JAVA
- Чтение данных из таблицы HBase: API JAVA
Запись данных в таблицу HBase: оболочка
Команда put используется для хранения данных в таблице
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Эта команда используется для следующих вещей
- Он поместит значение ячейки в определенную или указанную таблицу, строку или столбец.
- При желании он будет координировать отметку времени.
Пример:
- Здесь мы помещаем значения в таблицу "guru99" под строкой r1 и столбцом c1.
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Мы поместили три значения, 10,15 и 30 в таблицу «guru99», как показано на скриншоте ниже.
-
Предположим, что таблица "Guru99" имеет ссылку на таблицу, например, g. Мы также можем запустить команду по ссылке на таблицу, также как
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
Результат будет таким, как показано на скриншоте выше после помещения значений в "guru99".
Чтение данных из таблицы HBase: Shell
В этом разделе мы проверим следующие
- Значения, которые вставляются в таблицу HBase "guru99"
- Имена столбцов со значениями, присутствующими в HBase Table guru99
Из приведенного выше снимка экрана мы можем сделать вывод
- Если мы запустим команду «сканировать» в оболочке HBase, она отобразит вставленные значения в «guru99», как показано ниже.
- В оболочке HBase он будет отображать значения, вставленные нашим кодом, с именами столбцов и строк
- Здесь мы видим, что в столбце вставлены названия «образование» и «проекты».
- В указанные столбцы вставлены значения BigData и HBase Tutorials.
Вы также можете использовать команду Get для чтения данных из таблицы
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Здесь <Дополнительные параметры> включают TIMERANGE, TIMESTAMP, VERSIONS и FILTERS.
Используя эту команду, вы получите содержимое строки или ячейки, присутствующее в таблице. В дополнение к этому вы также можете добавить к нему дополнительные параметры, такие как TIMESTAMP, TIMERANGE, VERSIONS, FILTERS и т. Д., Чтобы получить определенную строку или содержимое ячейки.
Примеры:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Для таблицы "guru99" значения строки r1 и столбца c1 будут отображаться с использованием этой команды, как показано на скриншоте выше.
hbase> get 'guru99', 'r1'
Для таблицы "guru99" значения строки r1 будут отображаться с помощью этой команды.
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Для таблицы "guru99" значения строки 1 во временном диапазоне ts1 и ts2 будут отображаться с помощью этой команды.
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Для таблицы "guru99" строки r1 и значения c1, c2, c3 семейств столбцов будут отображаться с помощью этой команды.
Запись данных в таблицу HBase: API JAVA
На этом этапе мы собираемся записать данные в таблицу HBase "guru99".
Во-первых, мы должны написать код для вставки и извлечения значений из HBase с помощью программы HBaseLoading.java.
Для создания и вставки значений в таблицу на уровне столбца вам необходимо ввести код, как показано ниже .
На снимке экрана выше
- Когда мы создаем конфигурацию HBase, она будет указывать на любые конфигурации, которые мы установили в файлах base-site.xml и hbase-default.xml во время установки HBase.
- Создание таблицы "guru99" методом HTable
- Добавление row1 в таблицу "guru99"
- Указание имен столбцов «образование» и «проекты» и вставка значений в имена столбцов в соответствующей строке1. Здесь вставлены значения BigData и HBaseTutorials.
Чтение данных из таблицы HBase: Java API
Какие бы значения мы ни поместили в таблицы HBase в приведенном выше разделе, здесь мы собираемся извлечь и отобразить эти значения.
Для получения результатов, хранящихся в "guru99"
На приведенном выше снимке экрана показано, что данные считываются из таблицы HBase 'guru99'.
- Здесь мы собираемся получить значения, которые хранятся в семействах столбцов, то есть «образование» и «проекты».
- Используя команду "get", мы собираемся получить сохраненные значения в таблице HBase.
- Результаты сканирования с помощью команды «сканировать». Значения, хранящиеся в row1, будут отображаться на консоли.
После написания кода вам нужно запустить Java-приложение, подобное этому
- Щелкните правой кнопкой мыши HBaseLoading.java -> Запуск от имени -> Приложение Java.
- После запуска «HBaseLoading .java» значения будут вставлены в «guru99» в каждый столбец в HBase, и в той же программе он также может получать значения.
Вот полный код
import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}
Резюме:
Как мы обсуждали в этом руководстве, вы можете использовать команду put для вставки данных в таблицу. Вы можете использовать команду scan, get для чтения данных из таблицы