HBase - Panduan Cepat
Sejak tahun 1970, RDBMS adalah solusi untuk penyimpanan data dan masalah terkait pemeliharaan. Setelah munculnya data besar, perusahaan menyadari manfaat dari pemrosesan data besar dan mulai memilih solusi seperti Hadoop.
Hadoop menggunakan sistem file terdistribusi untuk menyimpan data besar, dan MapReduce untuk memprosesnya. Hadoop unggul dalam menyimpan dan memproses data besar dalam berbagai format seperti arbitrary, semi-, atau bahkan tidak terstruktur.
Batasan Hadoop
Hadoop hanya dapat melakukan pemrosesan batch, dan data hanya akan diakses secara berurutan. Itu berarti seseorang harus mencari seluruh dataset bahkan untuk pekerjaan yang paling sederhana.
Kumpulan data yang sangat besar saat diproses menghasilkan kumpulan data besar lainnya, yang juga harus diproses secara berurutan. Pada titik ini, solusi baru diperlukan untuk mengakses setiap titik data dalam satu unit waktu (akses acak).
Database Akses Acak Hadoop
Aplikasi seperti HBase, Cassandra, couchDB, Dynamo, dan MongoDB adalah beberapa database yang menyimpan data dalam jumlah besar dan mengakses data secara acak.
Apa itu HBase?
HBase adalah database berorientasi kolom terdistribusi yang dibangun di atas sistem file Hadoop. Ini adalah proyek open-source dan dapat diskalakan secara horizontal.
HBase adalah model data yang mirip dengan tabel besar Google yang dirancang untuk memberikan akses acak cepat ke sejumlah besar data terstruktur. Ini memanfaatkan toleransi kesalahan yang disediakan oleh Hadoop File System (HDFS).
Ini adalah bagian dari ekosistem Hadoop yang menyediakan akses baca / tulis waktu nyata acak ke data di Sistem File Hadoop.
Seseorang dapat menyimpan data dalam HDFS baik secara langsung atau melalui HBase. Konsumen data membaca / mengakses data dalam HDFS secara acak menggunakan HBase. HBase berada di atas Sistem File Hadoop dan menyediakan akses baca dan tulis.
HBase dan HDFS
HDFS | HBase |
---|---|
HDFS adalah sistem file terdistribusi yang cocok untuk menyimpan file besar. | HBase adalah database yang dibangun di atas HDFS. |
HDFS tidak mendukung pencarian catatan individual yang cepat. | HBase menyediakan pencarian cepat untuk tabel yang lebih besar. |
Ini menyediakan pemrosesan batch latensi tinggi; tidak ada konsep pemrosesan batch. | Ini memberikan akses latensi rendah ke baris tunggal dari miliaran catatan (akses acak). |
Ini hanya menyediakan akses data berurutan. | HBase secara internal menggunakan tabel Hash dan menyediakan akses acak, dan menyimpan data dalam file HDFS yang diindeks untuk pencarian yang lebih cepat. |
Mekanisme Penyimpanan di HBase
HBase adalah a column-oriented databasedan tabel di dalamnya diurutkan berdasarkan baris. Skema tabel hanya mendefinisikan keluarga kolom, yang merupakan pasangan nilai kunci. Tabel memiliki beberapa keluarga kolom dan setiap keluarga kolom dapat memiliki sejumlah kolom. Nilai kolom selanjutnya disimpan secara berdekatan di disk. Setiap nilai sel tabel memiliki stempel waktu. Singkatnya, dalam HBase:
- Tabel adalah kumpulan baris.
- Baris adalah kumpulan keluarga kolom.
- Keluarga kolom adalah kumpulan kolom.
- Kolom adalah kumpulan pasangan nilai kunci.
Diberikan di bawah ini adalah contoh skema tabel di HBase.
Rowid | Keluarga Kolom | Keluarga Kolom | Keluarga Kolom | Keluarga Kolom | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
col1 | col2 | col3 | col1 | col2 | col3 | col1 | col2 | col3 | col1 | col2 | col3 | |
1 | ||||||||||||
2 | ||||||||||||
3 |
Berorientasi Kolom dan Berorientasi Baris
Database berorientasi kolom adalah database yang menyimpan tabel data sebagai bagian dari kolom data, bukan sebagai baris data. Singkatnya, mereka akan memiliki keluarga kolom.
Database Berorientasi Baris | Database Berorientasi Kolom |
---|---|
Sangat cocok untuk Proses Transaksi Online (OLTP). | Sangat cocok untuk Online Analytical Processing (OLAP). |
Database semacam itu dirancang untuk sejumlah kecil baris dan kolom. | Database berorientasi kolom dirancang untuk tabel besar. |
Gambar berikut menunjukkan keluarga kolom dalam database berorientasi kolom:
HBase dan RDBMS
HBase | RDBMS |
---|---|
HBase tidak memiliki skema, tidak memiliki konsep skema kolom tetap; hanya mendefinisikan keluarga kolom. | RDBMS diatur oleh skemanya, yang menjelaskan seluruh struktur tabel. |
Itu dibangun untuk tabel lebar. HBase dapat diskalakan secara horizontal. | Ini tipis dan dibuat untuk meja kecil. Sulit untuk diukur. |
Tidak ada transaksi di HBase. | RDBMS bersifat transaksional. |
Ini memiliki data yang tidak dinormalisasi. | Ini akan memiliki data yang dinormalisasi. |
Ini bagus untuk data semi-terstruktur maupun terstruktur. | Ini bagus untuk data terstruktur. |
Fitur HBase
- HBase dapat diskalakan secara linier.
- Ini memiliki dukungan kegagalan otomatis.
- Ini memberikan pembacaan dan penulisan yang konsisten.
- Ini terintegrasi dengan Hadoop, baik sebagai sumber dan tujuan.
- Ini memiliki API java yang mudah untuk klien.
- Ini menyediakan replikasi data di seluruh cluster.
Dimana Menggunakan HBase
Apache HBase digunakan untuk memiliki akses baca / tulis acak dan real-time ke Big Data.
Ini menjadi tuan rumah tabel yang sangat besar di atas kelompok perangkat keras komoditas.
Apache HBase adalah database non-relasional yang dimodelkan setelah Bigtable Google. Bigtable bekerja di Google File System, begitu pula Apache HBase bekerja di atas Hadoop dan HDFS.
Aplikasi HBase
- Ini digunakan setiap kali ada kebutuhan untuk menulis aplikasi berat.
- HBase digunakan kapan pun kita perlu menyediakan akses acak cepat ke data yang tersedia.
- Perusahaan seperti Facebook, Twitter, Yahoo, dan Adobe menggunakan HBase secara internal.
Sejarah HBase
Tahun | Peristiwa |
---|---|
November 2006 | Google merilis makalah tentang BigTable. |
Feb 2007 | Prototipe awal HBase dibuat sebagai kontribusi Hadoop. |
Okt 2007 | HBase yang dapat digunakan pertama bersama dengan Hadoop 0.15.0 dirilis. |
Jan 2008 | HBase menjadi sub proyek Hadoop. |
Okt 2008 | HBase 0.18.1 dirilis. |
Jan 2009 | HBase 0.19.0 dirilis. |
Sept 2009 | HBase 0.20.0 dirilis. |
Mei 2010 | HBase menjadi proyek tingkat atas Apache. |
Di HBase, tabel dibagi menjadi beberapa wilayah dan dilayani oleh server wilayah. Region dibagi secara vertikal berdasarkan kelompok kolom ke dalam "Toko". Toko disimpan sebagai file dalam HDFS. Di bawah ini adalah arsitektur HBase.
Note: Istilah 'penyimpanan' digunakan untuk wilayah untuk menjelaskan struktur penyimpanan.
HBase memiliki tiga komponen utama: perpustakaan klien, server master, dan server wilayah. Server wilayah dapat ditambahkan atau dihapus sesuai kebutuhan.
MasterServer
Server master -
Menetapkan wilayah ke server wilayah dan mengambil bantuan Apache ZooKeeper untuk tugas ini.
Menangani load balancing wilayah di seluruh server wilayah. Ini membongkar server yang sibuk dan menggeser wilayah ke server yang kurang terisi.
Mempertahankan status cluster dengan menegosiasikan load balancing.
Bertanggung jawab atas perubahan skema dan operasi metadata lainnya seperti pembuatan tabel dan keluarga kolom.
Wilayah
Wilayah tidak lain adalah tabel yang dibagi dan tersebar di seluruh server wilayah.
Server wilayah
Server wilayah memiliki wilayah yang -
- Berkomunikasi dengan klien dan menangani operasi terkait data.
- Menangani permintaan baca dan tulis untuk semua wilayah di bawahnya.
- Tentukan ukuran wilayah dengan mengikuti ambang ukuran wilayah.
Ketika kita melihat lebih dalam ke server wilayah, itu berisi wilayah dan penyimpanan seperti yang ditunjukkan di bawah ini:
Toko berisi penyimpanan memori dan HFiles. Memstore seperti memori cache. Apa pun yang dimasukkan ke dalam HBase disimpan di sini pada awalnya. Nanti, data ditransfer dan disimpan di Hfiles sebagai blok dan memstore dihapus.
Penjaga kebun binatang
Zookeeper adalah proyek sumber terbuka yang menyediakan layanan seperti memelihara informasi konfigurasi, penamaan, menyediakan sinkronisasi terdistribusi, dll.
Zookeeper memiliki node sementara yang mewakili server wilayah yang berbeda. Server master menggunakan node ini untuk menemukan server yang tersedia.
Selain ketersediaan, node juga digunakan untuk melacak kegagalan server atau partisi jaringan.
Klien berkomunikasi dengan server wilayah melalui penjaga kebun binatang.
Dalam mode pseudo dan standalone, HBase sendiri akan mengurus zookeeper.
Bab ini menjelaskan bagaimana HBase diinstal dan dikonfigurasi pada awalnya. Java dan Hadoop diperlukan untuk melanjutkan dengan HBase, jadi Anda harus mengunduh dan menginstal java dan Hadoop di sistem Anda.
Pengaturan Pra-Instalasi
Sebelum menginstal Hadoop ke lingkungan Linux, kita perlu mengatur Linux menggunakan ssh(Secure Shell). Ikuti langkah-langkah yang diberikan di bawah ini untuk menyiapkan lingkungan Linux.
Membuat Pengguna
Pertama-tama, disarankan untuk membuat pengguna terpisah untuk Hadoop untuk mengisolasi sistem file Hadoop dari sistem file Unix. Ikuti langkah-langkah yang diberikan di bawah ini untuk membuat pengguna.
- Buka root menggunakan perintah "su".
- Buat pengguna dari akun root menggunakan perintah "useradd username".
- Sekarang Anda dapat membuka akun pengguna yang sudah ada menggunakan perintah "su username".
Buka terminal Linux dan ketik perintah berikut untuk membuat pengguna.
$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd
Penyiapan SSH dan Pembuatan Kunci
Penyiapan SSH diperlukan untuk melakukan operasi yang berbeda pada cluster seperti operasi shell daemon start, stop, dan terdistribusi. Untuk mengautentikasi pengguna Hadoop yang berbeda, diperlukan pasangan kunci publik / pribadi untuk pengguna Hadoop dan membagikannya dengan pengguna yang berbeda.
Perintah berikut digunakan untuk menghasilkan pasangan nilai kunci menggunakan SSH. Salin formulir kunci publik id_rsa.pub ke authorized_keys, dan berikan izin kepada pemilik, baca dan tulis masing-masing ke file authorized_keys.
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
Verifikasi ssh
ssh localhost
Menginstal Java
Java adalah prasyarat utama Hadoop dan HBase. Pertama-tama, Anda harus memverifikasi keberadaan java di sistem Anda menggunakan "java -version". Sintaks perintah versi java diberikan di bawah ini.
$ java -version
Jika semuanya berfungsi dengan baik, itu akan memberi Anda output berikut.
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)
Jika java tidak diinstal di sistem Anda, ikuti langkah-langkah yang diberikan di bawah ini untuk menginstal java.
Langkah 1
Unduh java (JDK <latest version> - X64.tar.gz) dengan mengunjungi tautan berikut Oracle Java .
Kemudian jdk-7u71-linux-x64.tar.gz akan diunduh ke sistem Anda.
Langkah 2
Umumnya Anda akan menemukan file java yang diunduh di folder Unduhan. Verifikasi dan ekstrak filejdk-7u71-linux-x64.gz file menggunakan perintah berikut.
$ cd Downloads/
$ ls jdk-7u71-linux-x64.gz $ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz
LANGKAH 3
Untuk membuat java tersedia untuk semua pengguna, Anda harus memindahkannya ke lokasi "/ usr / local /". Buka root dan ketik perintah berikut.
$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit
LANGKAH 4
Untuk menyiapkan PATH dan JAVA_HOME variabel, tambahkan perintah berikut ke ~/.bashrc mengajukan.
export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH= $PATH:$JAVA_HOME/bin
Sekarang terapkan semua perubahan ke dalam sistem yang sedang berjalan.
$ source ~/.bashrc
LANGKAH 5
Gunakan perintah berikut untuk mengkonfigurasi alternatif java:
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2
# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar
Sekarang verifikasi java -version perintah dari terminal seperti dijelaskan di atas.
Mendownload Hadoop
Setelah menginstal java, Anda harus menginstal Hadoop. Pertama-tama, verifikasi keberadaan Hadoop menggunakan perintah “Versi Hadoop” seperti yang ditunjukkan di bawah ini.
hadoop version
Jika semuanya berfungsi dengan baik, itu akan memberi Anda output berikut.
Hadoop 2.6.0
Compiled by jenkins on 2014-11-13T21:10Z
Compiled with protoc 2.5.0
From source with checksum 18e43357c8f927c0695f1e9522859d6a
This command was run using
/home/hadoop/hadoop/share/hadoop/common/hadoop-common-2.6.0.jar
Jika sistem Anda tidak dapat menemukan Hadoop, unduh Hadoop di sistem Anda. Ikuti perintah yang diberikan di bawah ini untuk melakukannya.
Unduh dan ekstrak hadoop-2.6.0 dari Apache Software Foundation menggunakan perintah berikut.
$ su
password:
# cd /usr/local
# wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop-
2.6.0/hadoop-2.6.0-src.tar.gz
# tar xzf hadoop-2.6.0-src.tar.gz
# mv hadoop-2.6.0/* hadoop/
# exit
Memasang Hadoop
Instal Hadoop dalam salah satu mode yang diperlukan. Di sini, kami mendemonstrasikan fungsi HBase dalam mode terdistribusi semu, oleh karena itu instal Hadoop dalam mode terdistribusi semu.
Langkah-langkah berikut digunakan untuk menginstal Hadoop 2.4.1.
Langkah 1 - Menyiapkan Hadoop
Anda dapat menyetel variabel lingkungan Hadoop dengan menambahkan perintah berikut ke ~/.bashrc mengajukan.
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
Sekarang terapkan semua perubahan ke dalam sistem yang sedang berjalan.
$ source ~/.bashrc
Langkah 2 - Konfigurasi Hadoop
Anda dapat menemukan semua file konfigurasi Hadoop di lokasi "$ HADOOP_HOME / etc / hadoop". Anda perlu membuat perubahan pada file konfigurasi tersebut sesuai dengan infrastruktur Hadoop Anda.
$ cd $HADOOP_HOME/etc/hadoop
Untuk mengembangkan program Hadoop di java, Anda harus mengatur ulang variabel lingkungan java di hadoop-env.sh mengajukan dengan mengganti JAVA_HOME nilai dengan lokasi java di sistem Anda.
export JAVA_HOME=/usr/local/jdk1.7.0_71
Anda harus mengedit file berikut untuk mengkonfigurasi Hadoop.
core-site.xml
Itu core-site.xml file berisi informasi seperti nomor port yang digunakan untuk instance Hadoop, memori yang dialokasikan untuk sistem file, batas memori untuk menyimpan data, dan ukuran buffer Baca / Tulis.
Buka core-site.xml dan tambahkan properti berikut di antara tag <configuration> dan </configuration>.
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
Itu hdfs-site.xml file berisi informasi seperti nilai data replikasi, jalur kode nama, dan jalur datanode dari sistem file lokal Anda, tempat Anda ingin menyimpan infrastruktur Hadoop.
Mari kita asumsikan data berikut.
dfs.replication (data replication value) = 1
(In the below given path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
Buka file ini dan tambahkan properti berikut di antara tag <configuration>, </configuration>.
<configuration>
<property>
<name>dfs.replication</name >
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value>
</property>
</configuration>
Note: Dalam file di atas, semua nilai properti ditentukan pengguna dan Anda dapat membuat perubahan sesuai dengan infrastruktur Hadoop Anda.
yarn-site.xml
File ini digunakan untuk mengkonfigurasi benang menjadi Hadoop. Buka file yarn-site.xml dan tambahkan properti berikut di antara <configuration $ gt ;, </ configuration $ gt; tag di file ini.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
mapred-site.xml
File ini digunakan untuk menentukan kerangka MapReduce mana yang kita gunakan. Secara default, Hadoop berisi template benang-situs.xml. Pertama-tama, Anda harus menyalin file darimapred-site.xml.template untuk mapred-site.xml file menggunakan perintah berikut.
$ cp mapred-site.xml.template mapred-site.xml
Buka mapred-site.xml file dan tambahkan properti berikut di antara tag <configuration> dan </configuration>.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Memverifikasi Instalasi Hadoop
Langkah-langkah berikut digunakan untuk memverifikasi penginstalan Hadoop.
Langkah 1 - Penyiapan Node Nama
Siapkan namenode menggunakan perintah “hdfs namenode -format” sebagai berikut.
$ cd ~ $ hdfs namenode -format
Hasil yang diharapkan adalah sebagai berikut.
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/
Langkah 2 - Memverifikasi Hadoop dfs
Perintah berikut digunakan untuk memulai dfs. Menjalankan perintah ini akan memulai sistem file Hadoop Anda.
$ start-dfs.sh
Output yang diharapkan adalah sebagai berikut.
10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
Langkah 3 - Memverifikasi Skrip Benang
Perintah berikut digunakan untuk memulai skrip benang. Menjalankan perintah ini akan memulai benang daemon Anda.
$ start-yarn.sh
Output yang diharapkan adalah sebagai berikut.
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out
Langkah 4 - Mengakses Hadoop di Browser
Nomor port default untuk mengakses Hadoop adalah 50070. Gunakan url berikut untuk mendapatkan layanan Hadoop di browser Anda.
http://localhost:50070
Langkah 5 - Verifikasi semua Aplikasi Cluster
Nomor port default untuk mengakses semua aplikasi cluster adalah 8088. Gunakan url berikut untuk mengunjungi layanan ini.
http://localhost:8088/
Memasang HBase
Kita dapat menginstal HBase di salah satu dari tiga mode: mode Standalone, mode Pseudo Distributed, dan mode Fully Distributed.
Menginstal HBase dalam Mode Standalone
Unduh versi stabil terbaru dari bentuk HBase http://www.interior-dsgn.com/apache/hbase/stable/menggunakan perintah "wget", dan ekstrak menggunakan perintah "zxvf" tar. Lihat perintah berikut.
$cd usr/local/ $wget http://www.interior-dsgn.com/apache/hbase/stable/hbase-0.98.8-
hadoop2-bin.tar.gz
$tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz
Beralih ke mode pengguna super dan pindahkan folder HBase ke / usr / local seperti yang ditunjukkan di bawah ini.
$su
$password: enter your password here
mv hbase-0.99.1/* Hbase/
Mengonfigurasi HBase dalam Mode Standalone
Sebelum melanjutkan dengan HBase, Anda harus mengedit file berikut dan mengkonfigurasi HBase.
hbase-env.sh
Atur java Home untuk HBase dan buka hbase-env.shfile dari folder conf. Edit variabel lingkungan JAVA_HOME dan ubah jalur yang ada ke variabel JAVA_HOME Anda saat ini seperti yang ditunjukkan di bawah ini.
cd /usr/local/Hbase/conf
gedit hbase-env.sh
Ini akan membuka file env.sh dari HBase. Sekarang ganti fileJAVA_HOME nilai dengan nilai Anda saat ini seperti yang ditunjukkan di bawah ini.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
hbase-site.xml
Ini adalah file konfigurasi utama HBase. Atur direktori data ke lokasi yang sesuai dengan membuka folder home HBase di / usr / local / HBase. Di dalam folder conf, Anda akan menemukan beberapa file, buka filehbase-site.xml file seperti yang ditunjukkan di bawah ini.
#cd /usr/local/HBase/
#cd conf
# gedit hbase-site.xml
Di dalam hbase-site.xmlfile, Anda akan menemukan tag <configuration> dan </configuration>. Di dalamnya, setel direktori HBase di bawah kunci properti dengan nama "hbase.rootdir" seperti yang ditunjukkan di bawah ini.
<configuration>
//Here you have to set the path where you want HBase to store its files.
<property>
<name>hbase.rootdir</name>
<value>file:/home/hadoop/HBase/HFiles</value>
</property>
//Here you have to set the path where you want HBase to store its built in zookeeper files.
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>
Dengan ini, instalasi HBase dan bagian konfigurasi berhasil diselesaikan. Kita bisa memulai HBase dengan menggunakanstart-hbase.shskrip yang disediakan di folder bin HBase. Untuk itu, buka Home Folder HBase dan jalankan script start HBase seperti yang ditunjukkan di bawah ini.
$cd /usr/local/HBase/bin
$./start-hbase.sh
Jika semuanya berjalan dengan baik, ketika Anda mencoba menjalankan skrip start HBase, Anda akan mendapat pesan yang mengatakan bahwa HBase telah dimulai.
starting master, logging to /usr/local/HBase/bin/../logs/hbase-tpmaster-localhost.localdomain.out
Menginstal HBase dalam Mode Terdistribusi Pseudo
Sekarang mari kita periksa bagaimana HBase diinstal dalam mode pseudo-didistribusikan.
Konfigurasi HBase
Sebelum melanjutkan dengan HBase, konfigurasikan Hadoop dan HDFS pada sistem lokal Anda atau pada sistem jarak jauh dan pastikan keduanya berjalan. Hentikan HBase jika sedang berjalan.
hbase-site.xml
Edit file hbase-site.xml untuk menambahkan properti berikut.
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
Ini akan menyebutkan di mode mana HBase harus dijalankan. Di file yang sama dari sistem file lokal, ubah hbase.rootdir, alamat instance HDFS Anda, menggunakan sintaks hdfs: //// URI. Kami menjalankan HDFS di localhost di port 8030.
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8030/hbase</value>
</property>
Memulai HBase
Setelah konfigurasi selesai, telusuri folder home HBase dan mulai HBase menggunakan perintah berikut.
$cd /usr/local/HBase
$bin/start-hbase.sh
Note: Sebelum memulai HBase, pastikan Hadoop sedang berjalan.
Memeriksa Direktori HBase di HDFS
HBase membuat direktorinya di HDFS. Untuk melihat direktori yang dibuat, telusuri Hadoop bin dan ketikkan perintah berikut.
$ ./bin/hadoop fs -ls /hbase
Jika semuanya berjalan dengan baik, itu akan memberi Anda hasil sebagai berikut.
Found 7 items
drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/.tmp
drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/WALs
drwxr-xr-x - hbase users 0 2014-06-25 18:48 /hbase/corrupt
drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/data
-rw-r--r-- 3 hbase users 42 2014-06-25 18:41 /hbase/hbase.id
-rw-r--r-- 3 hbase users 7 2014-06-25 18:41 /hbase/hbase.version
drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/oldWALs
Memulai dan Menghentikan Master
Menggunakan "local-master-backup.sh" Anda dapat memulai hingga 10 server. Buka folder home HBase, master dan jalankan perintah berikut untuk memulainya.
$ ./bin/local-master-backup.sh 2 4
Untuk mematikan master cadangan, Anda memerlukan id prosesnya, yang akan disimpan dalam file bernama “/tmp/hbase-USER-X-master.pid.” Anda dapat mematikan master cadangan menggunakan perintah berikut.
$ cat /tmp/hbase-user-1-master.pid |xargs kill -9
Memulai dan Menghentikan RegionServers
Anda dapat menjalankan beberapa server wilayah dari satu sistem menggunakan perintah berikut.
$ .bin/local-regionservers.sh start 2 3
Untuk menghentikan server wilayah, gunakan perintah berikut.
$ .bin/local-regionservers.sh stop 3
Memulai HBaseShell
Setelah Menginstal HBase berhasil, Anda dapat memulai HBase Shell. Di bawah ini diberikan urutan langkah-langkah yang harus diikuti untuk memulai shell HBase. Buka terminal, dan login sebagai pengguna super.
Mulai Sistem File Hadoop
Jelajahi folder sbin home Hadoop dan mulai sistem file Hadoop seperti yang ditunjukkan di bawah ini.
$cd $HADOOP_HOME/sbin
$start-all.sh
Mulai HBase
Jelajahi folder bin direktori root HBase dan mulai HBase.
$cd /usr/local/HBase
$./bin/start-hbase.sh
Mulai Server Master HBase
Ini akan menjadi direktori yang sama. Mulailah seperti yang ditunjukkan di bawah ini.
$./bin/local-master-backup.sh start 2 (number signifies specific
server.)
Mulai Wilayah
Mulai server wilayah seperti yang ditunjukkan di bawah ini.
$./bin/./local-regionservers.sh start 3
Mulai HBase Shell
Anda dapat memulai shell HBase menggunakan perintah berikut.
$cd bin
$./hbase shell
Ini akan memberi Anda HBase Shell Prompt seperti yang ditunjukkan di bawah ini.
2014-12-09 14:24:27,526 INFO [main] Configuration.deprecation:
hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.8-hadoop2, r6cfc8d064754251365e070a10a82eb169956d5fe, Fri
Nov 14 18:26:29 PST 2014
hbase(main):001:0>
Antarmuka Web HBase
Untuk mengakses antarmuka web HBase, ketik url berikut di browser.
http://localhost:60010
Antarmuka ini mencantumkan server Wilayah, master cadangan, dan tabel HBase Anda yang sedang berjalan.
Server Wilayah HBase dan Master Cadangan
Tabel HBase
Mengatur Lingkungan Java
Kami juga dapat berkomunikasi dengan HBase menggunakan pustaka Java, tetapi sebelum mengakses HBase menggunakan Java API Anda perlu menyetel jalur kelas untuk pustaka tersebut.
Mengatur Classpath
Sebelum melanjutkan dengan pemrograman, setel jalur kelas ke perpustakaan HBase di .bashrcmengajukan. Buka.bashrc di salah satu editor seperti yang ditunjukkan di bawah ini.
$ gedit ~/.bashrc
Setel jalur kelas untuk perpustakaan HBase (folder lib di HBase) di dalamnya seperti yang ditunjukkan di bawah ini.
export CLASSPATH = $CLASSPATH://home/hadoop/hbase/lib/*
Ini untuk mencegah pengecualian "class not found" saat mengakses HBase menggunakan java API.
Bab ini menjelaskan cara memulai shell interaktif HBase yang disertakan dengan HBase.
HBase Shell
HBase berisi shell yang dapat digunakan untuk berkomunikasi dengan HBase. HBase menggunakan Sistem File Hadoop untuk menyimpan datanya. Ini akan memiliki server master dan server wilayah. Penyimpanan data akan berbentuk region (tabel). Wilayah ini akan dipecah dan disimpan di server wilayah.
Server master mengelola server wilayah ini dan semua tugas ini berlangsung di HDFS. Diberikan di bawah ini adalah beberapa perintah yang didukung oleh HBase Shell.
Perintah Umum
status - Memberikan status HBase, misalnya, jumlah server.
version - Memberikan versi HBase yang digunakan.
table_help - Memberikan bantuan untuk perintah referensi tabel.
whoami - Memberikan informasi tentang pengguna.
Bahasa Definisi Data
Ini adalah perintah yang beroperasi di tabel di HBase.
create - Membuat meja.
list - Daftar semua tabel di HBase.
disable - Menonaktifkan meja.
is_disabled - Memverifikasi apakah tabel dinonaktifkan.
enable - Memungkinkan meja.
is_enabled - Memverifikasi apakah tabel diaktifkan.
describe - Memberikan deskripsi tabel.
alter - Mengubah meja.
exists - Memverifikasi apakah tabel ada.
drop - Menjatuhkan meja dari HBase.
drop_all - Menurunkan tabel yang cocok dengan 'regex' yang diberikan dalam perintah.
Java Admin API- Sebelum semua perintah di atas, Java menyediakan API Admin untuk mencapai fungsi DDL melalui pemrograman. Dibawahorg.apache.hadoop.hbase.client package, HBaseAdmin dan HTableDescriptor adalah dua kelas penting dalam paket ini yang menyediakan fungsionalitas DDL.
Bahasa Manipulasi Data
put - Menempatkan nilai sel pada kolom tertentu dalam baris tertentu dalam tabel tertentu.
get - Mengambil konten baris atau sel.
delete - Menghapus nilai sel dalam tabel.
deleteall - Menghapus semua sel di baris tertentu.
scan - Memindai dan mengembalikan data tabel.
count - Menghitung dan mengembalikan jumlah baris dalam tabel.
truncate - Menonaktifkan, melepaskan, dan membuat ulang tabel yang ditentukan.
Java client API - Sebelum semua perintah di atas, Java menyediakan API klien untuk mencapai fungsi DML, CRUD (Buat Ambil Pembaruan Hapus) operasi dan lainnya melalui pemrograman, di bawah paket org.apache.hadoop.hbase.client. HTable Put dan Get adalah kelas penting dalam paket ini.
Memulai HBase Shell
Untuk mengakses shell HBase, Anda harus menavigasi ke folder home HBase.
cd /usr/localhost/
cd Hbase
Anda dapat memulai shell interaktif HBase menggunakan “hbase shell” perintah seperti yang ditunjukkan di bawah ini.
./bin/hbase shell
Jika Anda telah berhasil menginstal HBase di sistem Anda, maka itu memberi Anda prompt shell HBase seperti yang ditunjukkan di bawah ini.
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.23, rf42302b28aceaab773b15f234aa8718fff7eea3c, Wed Aug 27
00:54:09 UTC 2014
hbase(main):001:0>
Untuk keluar dari perintah shell interaktif setiap saat, ketik exit atau gunakan <ctrl + c>. Periksa fungsi shell sebelum melanjutkan lebih jauh. Menggunakanlist perintah untuk tujuan ini. Listadalah perintah yang digunakan untuk mendapatkan daftar semua tabel di HBase. Pertama-tama, verifikasi instalasi dan konfigurasi HBase di sistem Anda menggunakan perintah ini seperti yang ditunjukkan di bawah ini.
hbase(main):001:0> list
Saat Anda mengetik perintah ini, ini memberi Anda output berikut.
hbase(main):001:0> list
TABLE
Perintah umum di HBase adalah status, versi, bantuan_tabel, dan whoami. Bab ini menjelaskan perintah-perintah ini.
status
Perintah ini mengembalikan status sistem termasuk detail server yang berjalan pada sistem. Sintaksnya adalah sebagai berikut:
hbase(main):009:0> status
Jika Anda menjalankan perintah ini, ini mengembalikan output berikut.
hbase(main):009:0> status
3 servers, 0 dead, 1.3333 average load
Versi: kapan
Perintah ini mengembalikan versi HBase yang digunakan di sistem Anda. Sintaksnya adalah sebagai berikut:
hbase(main):010:0> version
Jika Anda menjalankan perintah ini, ini mengembalikan output berikut.
hbase(main):009:0> version
0.98.8-hadoop2, r6cfc8d064754251365e070a10a82eb169956d5fe, Fri Nov 14
18:26:29 PST 2014
table_help
Perintah ini memandu Anda apa dan bagaimana menggunakan perintah yang direferensikan tabel. Diberikan di bawah ini adalah sintaks untuk menggunakan perintah ini.
hbase(main):02:0> table_help
Saat Anda menggunakan perintah ini, ini menunjukkan topik bantuan untuk perintah terkait tabel. Diberikan di bawah ini adalah keluaran parsial dari perintah ini.
hbase(main):002:0> table_help
Help for table-reference commands.
You can either create a table via 'create' and then manipulate the table
via commands like 'put', 'get', etc.
See the standard help information for how to use each of these commands.
However, as of 0.96, you can also get a reference to a table, on which
you can invoke commands.
For instance, you can get create a table and keep around a reference to
it via:
hbase> t = create 't', 'cf'…...
siapa saya
Perintah ini mengembalikan detail pengguna HBase. Jika Anda menjalankan perintah ini, kembalikan pengguna HBase saat ini seperti yang ditunjukkan di bawah ini.
hbase(main):008:0> whoami
hadoop (auth:SIMPLE)
groups: hadoop
HBase ditulis di java, oleh karena itu ia menyediakan java API untuk berkomunikasi dengan HBase. Java API adalah cara tercepat untuk berkomunikasi dengan HBase. Diberikan di bawah ini adalah referensi java Admin API yang mencakup tugas-tugas yang digunakan untuk mengelola tabel.
Kelas HBaseAdmin
HBaseAdminadalah kelas yang mewakili Admin. Kelas ini milikorg.apache.hadoop.hbase.clientpaket. Dengan menggunakan kelas ini, Anda dapat melakukan tugas seorang administrator. Anda bisa mendapatkan contoh Admin menggunakanConnection.getAdmin() metode.
Metode dan Deskripsi
S.No. | Metode dan Deskripsi |
---|---|
1 | void createTable(HTableDescriptor desc) Membuat tabel baru. |
2 | void createTable(HTableDescriptor desc, byte[][] splitKeys) Membuat tabel baru dengan set awal wilayah kosong yang ditentukan oleh kunci terpisah yang ditentukan. |
3 | void deleteColumn(byte[] tableName, String columnName) Menghapus kolom dari tabel. |
4 | void deleteColumn(String tableName, String columnName) Hapus kolom dari tabel. |
5 | void deleteTable(String tableName) Menghapus tabel. |
Deskriptor Kelas
Kelas ini berisi detail tentang tabel HBase seperti:
- deskriptor dari semua keluarga kolom,
- jika tabel tersebut adalah tabel katalog,
- jika tabel hanya bisa dibaca,
- ukuran maksimal toko mem,
- kapan seharusnya terjadi perpecahan wilayah,
- co-prosesor yang terkait dengannya, dll.
Konstruktor
S.No. | Pembuat dan ringkasan |
---|---|
1 | HTableDescriptor(TableName name) Membuat deskriptor tabel yang menetapkan objek TableName. |
Metode dan Deskripsi
S.No. | Metode dan Deskripsi |
---|---|
1 | HTableDescriptor addFamily(HColumnDescriptor family) Menambahkan keluarga kolom ke deskriptor yang diberikan |
Membuat Tabel menggunakan HBase Shell
Anda dapat membuat tabel menggunakan createperintah, di sini Anda harus menentukan nama tabel dan nama Keluarga Kolom. Itusyntax untuk membuat tabel di shell HBase ditunjukkan di bawah ini.
create ‘<table name>’,’<column family>’
Contoh
Diberikan di bawah ini adalah skema sampel dari tabel bernama emp. Ini memiliki dua kelompok kolom: "data pribadi" dan "data profesional".
Kunci baris | data pribadi | data profesional |
---|---|---|
Anda dapat membuat tabel ini di shell HBase seperti yang ditunjukkan di bawah ini.
hbase(main):002:0> create 'emp', 'personal data', 'professional data'
Dan itu akan memberi Anda output berikut.
0 row(s) in 1.1300 seconds
=> Hbase::Table - emp
Verifikasi
Anda dapat memverifikasi apakah tabel dibuat menggunakan listperintah seperti yang ditunjukkan di bawah ini. Di sini Anda dapat mengamati tabel emp yang dibuat.
hbase(main):002:0> list
TABLE
emp
2 row(s) in 0.0340 seconds
Membuat Tabel Menggunakan Java API
Anda dapat membuat tabel di HBase menggunakan createTable() metode dari HBaseAdminkelas. Kelas ini milikorg.apache.hadoop.hbase.clientpaket. Diberikan di bawah ini adalah langkah-langkah untuk membuat tabel di HBase menggunakan java API.
Langkah 1: Instantiate HBaseAdmin
Kelas ini memerlukan objek Konfigurasi sebagai parameter, oleh karena itu pertama-tama buat instance kelas Konfigurasi dan teruskan instance ini ke HBaseAdmin.
Configuration conf = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah2: Buat TableDescriptor
HTableDescriptor adalah kelas milik org.apache.hadoop.hbasekelas. Kelas ini seperti wadah nama tabel dan keluarga kolom.
//creating table descriptor
HTableDescriptor table = new HTableDescriptor(toBytes("Table name"));
//creating column family descriptor
HColumnDescriptor family = new HColumnDescriptor(toBytes("column family"));
//adding coloumn family to HTable
table.addFamily(family);
Langkah 3: Jalankan melalui Admin
Menggunakan createTable() metode dari HBaseAdmin kelas, Anda dapat menjalankan tabel yang dibuat dalam mode Admin.
admin.createTable(table);
Diberikan di bawah ini adalah program lengkap untuk membuat tabel melalui admin.
import java.io.IOException;
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;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.conf.Configuration;
public class CreateTable {
public static void main(String[] args) throws IOException {
// Instantiating configuration class
Configuration con = HBaseConfiguration.create();
// Instantiating HbaseAdmin class
HBaseAdmin admin = new HBaseAdmin(con);
// Instantiating table descriptor class
HTableDescriptor tableDescriptor = new
HTableDescriptor(TableName.valueOf("emp"));
// Adding column families to table descriptor
tableDescriptor.addFamily(new HColumnDescriptor("personal"));
tableDescriptor.addFamily(new HColumnDescriptor("professional"));
// Execute the table through admin
admin.createTable(tableDescriptor);
System.out.println(" Table created ");
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac CreateTable.java
$java CreateTable
Outputnya adalah sebagai berikut:
Table created
Mendaftar Tabel menggunakan HBase Shell
list adalah perintah yang digunakan untuk mendaftar semua tabel di HBase. Diberikan di bawah ini adalah sintaks dari perintah daftar.
hbase(main):001:0 > list
Ketika Anda mengetik perintah ini dan mengeksekusi di prompt HBase, itu akan menampilkan daftar semua tabel di HBase seperti yang ditunjukkan di bawah ini.
hbase(main):001:0> list
TABLE
emp
Di sini Anda dapat mengamati tabel bernama emp.
Daftar Tabel Menggunakan Java API
Ikuti langkah-langkah yang diberikan di bawah ini untuk mendapatkan daftar tabel dari HBase menggunakan java API.
Langkah 1
Anda memiliki metode yang disebut listTables() di dalam kelas HBaseAdminuntuk mendapatkan daftar semua tabel di HBase. Metode ini mengembalikan larikHTableDescriptor benda.
//creating a configuration object
Configuration conf = HBaseConfiguration.create();
//Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
//Getting all the list of tables using HBaseAdmin object
HTableDescriptor[] tableDescriptor = admin.listTables();
Langkah 2
Anda bisa mendapatkan panjang file HTableDescriptor[] array menggunakan variabel panjang dari HTableDescriptorkelas. Dapatkan nama tabel dari objek ini menggunakangetNameAsString()metode. Jalankan loop 'for' menggunakan ini dan dapatkan daftar tabel di HBase.
Diberikan di bawah ini adalah program untuk membuat daftar semua tabel di HBase menggunakan Java API.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class ListTables {
public static void main(String args[])throws MasterNotRunningException, IOException{
// Instantiating a configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Getting all the list of tables using HBaseAdmin object
HTableDescriptor[] tableDescriptor = admin.listTables();
// printing all the table names.
for (int i=0; i<tableDescriptor.length;i++ ){
System.out.println(tableDescriptor[i].getNameAsString());
}
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac ListTables.java
$java ListTables
Outputnya adalah sebagai berikut:
User
emp
Menonaktifkan Tabel menggunakan HBase Shell
Untuk menghapus tabel atau mengubah pengaturannya, Anda harus menonaktifkan tabel terlebih dahulu menggunakan perintah nonaktifkan. Anda dapat mengaktifkannya kembali menggunakan perintah aktifkan.
Diberikan di bawah ini adalah sintaks untuk menonaktifkan tabel:
disable ‘emp’
Contoh
Diberikan di bawah ini adalah contoh yang menunjukkan cara menonaktifkan tabel.
hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds
Verifikasi
Setelah menonaktifkan tabel, Anda masih dapat merasakan keberadaannya list dan existsperintah. Anda tidak dapat memindainya. Ini akan memberi Anda kesalahan berikut.
hbase(main):028:0> scan 'emp'
ROW COLUMN + CELL
ERROR: emp is disabled.
is_disabled
Perintah ini digunakan untuk mengetahui apakah tabel dinonaktifkan. Sintaksnya adalah sebagai berikut.
hbase> is_disabled 'table name'
Contoh berikut memverifikasi apakah tabel bernama emp dinonaktifkan. Jika dinonaktifkan, ini akan mengembalikan nilai true dan jika tidak, akan mengembalikan salah.
hbase(main):031:0> is_disabled 'emp'
true
0 row(s) in 0.0440 seconds
menonaktifkan semua
Perintah ini digunakan untuk menonaktifkan semua tabel yang cocok dengan regex yang diberikan. Sintaks untukdisable_all perintah diberikan di bawah ini.
hbase> disable_all 'r.*'
Misalkan ada 5 tabel di HBase, yaitu raja, rajani, rajendra, rajesh, dan raju. Kode berikut akan menonaktifkan semua tabel yang dimulai denganraj.
hbase(main):002:07> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Nonaktifkan Tabel Menggunakan Java API
Untuk memverifikasi apakah tabel dinonaktifkan, isTableDisabled() metode digunakan dan untuk menonaktifkan tabel, disableTable()metode digunakan. Metode ini termasuk dalamHBaseAdminkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk menonaktifkan tabel.
Langkah 1
Memberi contoh HBaseAdmin kelas seperti yang ditunjukkan di bawah ini.
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Verifikasi apakah tabel dinonaktifkan menggunakan isTableDisabled() metode seperti yang ditunjukkan di bawah ini.
Boolean b = admin.isTableDisabled("emp");
LANGKAH 3
Jika tabel tidak dinonaktifkan, nonaktifkan seperti yang ditunjukkan di bawah ini.
if(!b){
admin.disableTable("emp");
System.out.println("Table disabled");
}
Diberikan di bawah ini adalah program lengkap untuk memverifikasi apakah tabel dinonaktifkan; jika tidak, bagaimana cara menonaktifkannya.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DisableTable{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Verifying weather the table is disabled
Boolean bool = admin.isTableDisabled("emp");
System.out.println(bool);
// Disabling the table using HBaseAdmin object
if(!bool){
admin.disableTable("emp");
System.out.println("Table disabled");
}
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac DisableTable.java
$java DsiableTable
Outputnya adalah sebagai berikut:
false
Table disabled
Mengaktifkan Tabel menggunakan HBase Shell
Sintaks untuk mengaktifkan tabel:
enable ‘emp’
Contoh
Diberikan di bawah ini adalah contoh untuk mengaktifkan tabel.
hbase(main):005:0> enable 'emp'
0 row(s) in 0.4580 seconds
Verifikasi
Setelah mengaktifkan tabel, pindai. Jika Anda dapat melihat skema, tabel Anda berhasil diaktifkan.
hbase(main):006:0> scan 'emp'
ROW COLUMN + CELL
1 column = personal data:city, timestamp = 1417516501, value = hyderabad
1 column = personal data:name, timestamp = 1417525058, value = ramu
1 column = professional data:designation, timestamp = 1417532601, value = manager
1 column = professional data:salary, timestamp = 1417524244109, value = 50000
2 column = personal data:city, timestamp = 1417524574905, value = chennai
2 column = personal data:name, timestamp = 1417524556125, value = ravi
2 column = professional data:designation, timestamp = 14175292204, value = sr:engg
2 column = professional data:salary, timestamp = 1417524604221, value = 30000
3 column = personal data:city, timestamp = 1417524681780, value = delhi
3 column = personal data:name, timestamp = 1417524672067, value = rajesh
3 column = professional data:designation, timestamp = 14175246987, value = jr:engg
3 column = professional data:salary, timestamp = 1417524702514, value = 25000
3 row(s) in 0.0400 seconds
diaktifkan
Perintah ini digunakan untuk mengetahui apakah tabel diaktifkan. Sintaksnya adalah sebagai berikut:
hbase> is_enabled 'table name'
Kode berikut memverifikasi apakah tabel bernama empdiaktifkan. Jika diaktifkan, itu akan mengembalikan true dan jika tidak, itu akan mengembalikan salah.
hbase(main):031:0> is_enabled 'emp'
true
0 row(s) in 0.0440 seconds
Aktifkan Tabel Menggunakan Java API
Untuk memverifikasi apakah tabel diaktifkan, isTableEnabled()metode digunakan; dan untuk mengaktifkan tabel,enableTable()metode digunakan. Metode ini milikHBaseAdminkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk mengaktifkan tabel.
Langkah 1
Memberi contoh HBaseAdmin kelas seperti yang ditunjukkan di bawah ini.
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Verifikasi apakah tabel diaktifkan menggunakan isTableEnabled() metode seperti yang ditunjukkan di bawah ini.
Boolean bool = admin.isTableEnabled("emp");
LANGKAH 3
Jika tabel tidak dinonaktifkan, nonaktifkan seperti yang ditunjukkan di bawah ini.
if(!bool){
admin.enableTable("emp");
System.out.println("Table enabled");
}
Diberikan di bawah ini adalah program lengkap untuk memverifikasi apakah tabel diaktifkan dan jika tidak, lalu bagaimana cara mengaktifkannya.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class EnableTable{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Verifying whether the table is disabled
Boolean bool = admin.isTableEnabled("emp");
System.out.println(bool);
// Enabling the table using HBaseAdmin object
if(!bool){
admin.enableTable("emp");
System.out.println("Table Enabled");
}
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac EnableTable.java
$java EnableTable
Outputnya adalah sebagai berikut:
false
Table Enabled
menggambarkan
Perintah ini mengembalikan deskripsi tabel. Sintaksnya adalah sebagai berikut:
hbase> describe 'table name'
Diberikan di bawah ini adalah output dari perintah gambarkan di emp meja.
hbase(main):006:0> describe 'emp'
DESCRIPTION
ENABLED
'emp', {NAME ⇒ 'READONLY', DATA_BLOCK_ENCODING ⇒ 'NONE', BLOOMFILTER
⇒ 'ROW', REPLICATION_SCOPE ⇒ '0', COMPRESSION ⇒ 'NONE', VERSIONS ⇒
'1', TTL true
⇒ 'FOREVER', MIN_VERSIONS ⇒ '0', KEEP_DELETED_CELLS ⇒ 'false',
BLOCKSIZE ⇒ '65536', IN_MEMORY ⇒ 'false', BLOCKCACHE ⇒ 'true'}, {NAME
⇒ 'personal
data', DATA_BLOCK_ENCODING ⇒ 'NONE', BLOOMFILTER ⇒ 'ROW',
REPLICATION_SCOPE ⇒ '0', VERSIONS ⇒ '5', COMPRESSION ⇒ 'NONE',
MIN_VERSIONS ⇒ '0', TTL
⇒ 'FOREVER', KEEP_DELETED_CELLS ⇒ 'false', BLOCKSIZE ⇒ '65536',
IN_MEMORY ⇒ 'false', BLOCKCACHE ⇒ 'true'}, {NAME ⇒ 'professional
data', DATA_BLO
CK_ENCODING ⇒ 'NONE', BLOOMFILTER ⇒ 'ROW', REPLICATION_SCOPE ⇒ '0',
VERSIONS ⇒ '1', COMPRESSION ⇒ 'NONE', MIN_VERSIONS ⇒ '0', TTL ⇒
'FOREVER', K
EEP_DELETED_CELLS ⇒ 'false', BLOCKSIZE ⇒ '65536', IN_MEMORY ⇒
'false', BLOCKCACHE ⇒ 'true'}, {NAME ⇒ 'table_att_unset',
DATA_BLOCK_ENCODING ⇒ 'NO
NE', BLOOMFILTER ⇒ 'ROW', REPLICATION_SCOPE ⇒ '0', COMPRESSION ⇒
'NONE', VERSIONS ⇒ '1', TTL ⇒ 'FOREVER', MIN_VERSIONS ⇒ '0',
KEEP_DELETED_CELLS
⇒ 'false', BLOCKSIZE ⇒ '6
mengubah
Alter adalah perintah yang digunakan untuk melakukan perubahan pada tabel yang sudah ada. Dengan menggunakan perintah ini, Anda dapat mengubah jumlah sel maksimum dari keluarga kolom, mengatur dan menghapus operator lingkup tabel, dan menghapus keluarga kolom dari tabel.
Mengubah Jumlah Sel Maksimum dari Keluarga Kolom
Diberikan di bawah ini adalah sintaks untuk mengubah jumlah sel maksimum dari keluarga kolom.
hbase> alter 't1', NAME ⇒ 'f1', VERSIONS ⇒ 5
Dalam contoh berikut, jumlah sel maksimum diatur ke 5.
hbase(main):003:0> alter 'emp', NAME ⇒ 'personal data', VERSIONS ⇒ 5
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.3050 seconds
Operator Ruang Lingkup Tabel
Dengan menggunakan alter, Anda dapat mengatur dan menghapus operator cakupan tabel seperti MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, dll.
Menyetel Hanya Baca
Di bawah ini diberikan sintaks untuk membuat tabel hanya-baca.
hbase>alter 't1', READONLY(option)
Dalam contoh berikut, kami telah membuat file emp tabel hanya baca.
hbase(main):006:0> alter 'emp', READONLY
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.2140 seconds
Menghapus Operator Table Scope
Kami juga dapat menghapus operator lingkup tabel. Diberikan di bawah ini adalah sintaks untuk menghapus 'MAX_FILESIZE' dari tabel emp.
hbase> alter 't1', METHOD ⇒ 'table_att_unset', NAME ⇒ 'MAX_FILESIZE'
Menghapus Keluarga Kolom
Dengan menggunakan alter, Anda juga dapat menghapus keluarga kolom. Diberikan di bawah ini adalah sintaks untuk menghapus keluarga kolom menggunakan alter.
hbase> alter ‘ table name ’, ‘delete’ ⇒ ‘ column family ’
Diberikan di bawah ini adalah contoh untuk menghapus keluarga kolom dari tabel 'emp'.
Asumsikan ada tabel bernama karyawan di HBase. Ini berisi data berikut:
hbase(main):006:0> scan 'employee'
ROW COLUMN+CELL
row1 column = personal:city, timestamp = 1418193767, value = hyderabad
row1 column = personal:name, timestamp = 1418193806767, value = raju
row1 column = professional:designation, timestamp = 1418193767, value = manager
row1 column = professional:salary, timestamp = 1418193806767, value = 50000
1 row(s) in 0.0160 seconds
Sekarang mari kita hapus keluarga kolom bernama professional menggunakan perintah alter.
hbase(main):007:0> alter 'employee','delete'⇒'professional'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.2380 seconds
Sekarang verifikasi data dalam tabel setelah perubahan. Perhatikan keluarga kolom 'profesional' tidak lebih, karena kami telah menghapusnya.
hbase(main):003:0> scan 'employee'
ROW COLUMN + CELL
row1 column = personal:city, timestamp = 14181936767, value = hyderabad
row1 column = personal:name, timestamp = 1418193806767, value = raju
1 row(s) in 0.0830 seconds
Menambahkan Keluarga Kolom Menggunakan Java API
Anda dapat menambahkan keluarga kolom ke tabel menggunakan metode ini addColumn() dari HBAseAdminkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk menambahkan keluarga kolom ke tabel.
Langkah 1
Instantiate HBaseAdmin kelas.
// Instantiating configuration object
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Itu addColumn() metode membutuhkan nama tabel dan objek HColumnDescriptorkelas. Oleh karena itu buat instanceHColumnDescriptorkelas. Konstruktor dariHColumnDescriptorpada gilirannya membutuhkan nama keluarga kolom yang akan ditambahkan. Di sini kami menambahkan keluarga kolom bernama "contactDetails" ke tabel "karyawan" yang ada.
// Instantiating columnDescriptor object
HColumnDescriptor columnDescriptor = new
HColumnDescriptor("contactDetails");
LANGKAH 3
Tambahkan keluarga kolom menggunakan addColumnmetode. Berikan nama tabel danHColumnDescriptor objek kelas sebagai parameter untuk metode ini.
// Adding column family
admin.addColumn("employee", new HColumnDescriptor("columnDescriptor"));
Diberikan di bawah ini adalah program lengkap untuk menambahkan keluarga kolom ke tabel yang ada.
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.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class AddColoumn{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class.
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class.
HBaseAdmin admin = new HBaseAdmin(conf);
// Instantiating columnDescriptor class
HColumnDescriptor columnDescriptor = new HColumnDescriptor("contactDetails");
// Adding column family
admin.addColumn("employee", columnDescriptor);
System.out.println("coloumn added");
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac AddColumn.java
$java AddColumn
Kompilasi di atas hanya berfungsi jika Anda telah menyetel classpath di " .bashrc". Jika Anda belum melakukannya, ikuti prosedur yang diberikan di bawah ini untuk mengkompilasi file .java Anda.
//if "/home/home/hadoop/hbase " is your Hbase home folder then.
$javac -cp /home/hadoop/hbase/lib/*: Demo.java
Jika semuanya berjalan dengan baik, maka akan menghasilkan keluaran sebagai berikut:
column added
Menghapus Keluarga Kolom Menggunakan Java API
Anda dapat menghapus keluarga kolom dari tabel menggunakan metode ini deleteColumn() dari HBAseAdminkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk menambahkan keluarga kolom ke tabel.
Langkah 1
Instantiate HBaseAdmin kelas.
// Instantiating configuration object
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Tambahkan keluarga kolom menggunakan deleteColumn()metode. Berikan nama tabel dan nama keluarga kolom sebagai parameter untuk metode ini.
// Deleting column family
admin.deleteColumn("employee", "contactDetails");
Diberikan di bawah ini adalah program lengkap untuk menghapus keluarga kolom dari tabel yang ada.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DeleteColoumn{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class.
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class.
HBaseAdmin admin = new HBaseAdmin(conf);
// Deleting a column family
admin.deleteColumn("employee","contactDetails");
System.out.println("coloumn deleted");
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac DeleteColumn.java $java DeleteColumn
Outputnya adalah sebagai berikut:
column deleted
Keberadaan Tabel menggunakan HBase Shell
Anda dapat memverifikasi keberadaan tabel menggunakan existsperintah. Contoh berikut menunjukkan bagaimana menggunakan perintah ini.
hbase(main):024:0> exists 'emp'
Table emp does exist
0 row(s) in 0.0750 seconds
==================================================================
hbase(main):015:0> exists 'student'
Table student does not exist
0 row(s) in 0.0480 seconds
Memverifikasi Keberadaan Tabel Menggunakan Java API
Anda dapat memverifikasi keberadaan tabel di HBase menggunakan tableExists() metode dari HBaseAdmin kelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk memverifikasi keberadaan tabel di HBase.
Langkah 1
Instantiate the HBaseAdimn class
// Instantiating configuration object
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Verifikasi keberadaan tabel menggunakan tableExists( ) metode.
Diberikan di bawah ini adalah program java untuk menguji keberadaan tabel di HBase menggunakan java API.
import java.io.IOException;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class TableExists{
public static void main(String args[])throws IOException{
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Verifying the existance of the table
boolean bool = admin.tableExists("emp");
System.out.println( bool);
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac TableExists.java $java TableExists
Outputnya adalah sebagai berikut:
true
Menjatuhkan Tabel menggunakan HBase Shell
Menggunakan dropperintah, Anda dapat menghapus tabel. Sebelum menjatuhkan tabel, Anda harus menonaktifkannya.
hbase(main):018:0> disable 'emp'
0 row(s) in 1.4580 seconds
hbase(main):019:0> drop 'emp'
0 row(s) in 0.3060 seconds
Verifikasi apakah tabel dihapus menggunakan perintah yang ada.
hbase(main):020:07gt; exists 'emp'
Table emp does not exist
0 row(s) in 0.0730 seconds
drop_all
Perintah ini digunakan untuk menjatuhkan tabel yang cocok dengan "regex" yang diberikan dalam perintah. Sintaksnya adalah sebagai berikut:
hbase> drop_all ‘t.*’
Note: Sebelum menjatuhkan tabel, Anda harus menonaktifkannya.
Contoh
Asumsikan ada tabel bernama raja, rajani, rajendra, rajesh, dan raju.
hbase(main):017:0> list
TABLE
raja
rajani
rajendra
rajesh
raju
9 row(s) in 0.0270 seconds
Semua tabel ini dimulai dengan huruf raj. Pertama-tama, mari kita nonaktifkan semua tabel ini menggunakandisable_all perintah seperti yang ditunjukkan di bawah ini.
hbase(main):002:0> disable_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
Sekarang Anda dapat menghapus semuanya menggunakan drop_all perintah seperti yang diberikan di bawah ini.
hbase(main):018:0> drop_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Drop the above 5 tables (y/n)?
y
5 tables successfully dropped
Menghapus Tabel Menggunakan Java API
Anda dapat menghapus tabel menggunakan deleteTable() metode di HBaseAdminkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk menghapus tabel menggunakan java API.
Langkah 1
Instantiate kelas HBaseAdmin.
// creating a configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Nonaktifkan tabel menggunakan disableTable() metode dari HBaseAdmin kelas.
admin.disableTable("emp1");
LANGKAH 3
Sekarang hapus tabel menggunakan deleteTable() metode dari HBaseAdmin kelas.
admin.deleteTable("emp12");
Diberikan di bawah ini adalah program java lengkap untuk menghapus tabel di HBase.
import java.io.IOException;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DeleteTable {
public static void main(String[] args) throws IOException {
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// disabling table named emp
admin.disableTable("emp12");
// Deleting emp
admin.deleteTable("emp12");
System.out.println("Table deleted");
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac DeleteTable.java $java DeleteTable
Outputnya adalah sebagai berikut:
Table deleted
keluar
Anda keluar dari shell dengan mengetik exit perintah.
hbase(main):021:0> exit
Menghentikan HBase
Untuk menghentikan HBase, telusuri folder home HBase dan ketik perintah berikut.
./bin/stop-hbase.sh
Menghentikan HBase Menggunakan Java API
Anda dapat mematikan HBase menggunakan shutdown() metode dari HBaseAdminkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk mematikan HBase:
Langkah 1
Instantiate kelas HbaseAdmin.
// Instantiating configuration object
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Langkah 2
Matikan HBase menggunakan shutdown() metode dari HBaseAdmin kelas.
admin.shutdown();
Diberikan di bawah ini adalah program untuk menghentikan HBase.
import java.io.IOException;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class ShutDownHbase{
public static void main(String args[])throws IOException {
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Shutting down HBase
System.out.println("Shutting down hbase");
admin.shutdown();
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac ShutDownHbase.java $java ShutDownHbase
Outputnya adalah sebagai berikut:
Shutting down hbase
Bab ini menjelaskan API klien java untuk HBase yang digunakan untuk melakukan CRUDoperasi pada tabel HBase. HBase ditulis di Java dan memiliki Java Native API. Oleh karena itu, ia menyediakan akses terprogram ke Data Manipulation Language (DML).
Konfigurasi Kelas HBase
Menambahkan file konfigurasi HBase ke Konfigurasi. Kelas ini milikorg.apache.hadoop.hbase paket.
Metode dan deskripsi
S.No. | Metode dan Deskripsi |
---|---|
1 | static org.apache.hadoop.conf.Configuration create() Metode ini membuat Konfigurasi dengan sumber daya HBase. |
Kelas HTable
HTable adalah kelas internal HBase yang mewakili tabel HBase. Ini adalah implementasi tabel yang digunakan untuk berkomunikasi dengan tabel HBase tunggal. Kelas ini milikorg.apache.hadoop.hbase.client kelas.
Konstruktor
S.No. | Pembangun dan Deskripsi |
---|---|
1 | HTable() |
2 | HTable(TableName tableName, ClusterConnection connection, ExecutorService pool) Menggunakan konstruktor ini, Anda dapat membuat objek untuk mengakses tabel HBase. |
Metode dan deskripsi
S.No. | Metode dan Deskripsi |
---|---|
1 | void close() Merilis semua resource HTable. |
2 | void delete(Delete delete) Menghapus sel / baris yang ditentukan. |
3 | boolean exists(Get get) Dengan menggunakan metode ini, Anda dapat menguji keberadaan kolom dalam tabel, seperti yang ditentukan oleh Get. |
4 | Result get(Get get) Mengambil sel tertentu dari baris tertentu. |
5 | org.apache.hadoop.conf.Configuration getConfiguration() Mengembalikan objek Konfigurasi yang digunakan oleh instance ini. |
6 | TableName getName() Mengembalikan contoh nama tabel dari tabel ini. |
7 | HTableDescriptor getTableDescriptor() Mengembalikan deskriptor tabel untuk tabel ini. |
8 | byte[] getTableName() Menampilkan nama tabel ini. |
9 | void put(Put put) Dengan menggunakan metode ini, Anda dapat memasukkan data ke dalam tabel. |
Kelas Put
Kelas ini digunakan untuk melakukan operasi Put untuk satu baris. Itu milikorg.apache.hadoop.hbase.client paket.
Konstruktor
S.No. | Pembangun dan Deskripsi |
---|---|
1 | Put(byte[] row) Dengan menggunakan konstruktor ini, Anda dapat membuat operasi Put untuk baris yang ditentukan. |
2 | Put(byte[] rowArray, int rowOffset, int rowLength) Dengan menggunakan konstruktor ini, Anda dapat membuat salinan dari kunci baris yang diteruskan agar tetap lokal. |
3 | Put(byte[] rowArray, int rowOffset, int rowLength, long ts) Dengan menggunakan konstruktor ini, Anda dapat membuat salinan dari kunci baris yang diteruskan agar tetap lokal. |
4 | Put(byte[] row, long ts) Dengan menggunakan konstruktor ini, kita dapat membuat operasi Put untuk baris yang ditentukan, menggunakan stempel waktu yang diberikan. |
Metode
S.No. | Metode dan Deskripsi |
---|---|
1 | Put add(byte[] family, byte[] qualifier, byte[] value) Menambahkan kolom dan nilai yang ditentukan ke operasi Put ini. |
2 | Put add(byte[] family, byte[] qualifier, long ts, byte[] value) Menambahkan kolom dan nilai yang ditentukan, dengan stempel waktu yang ditentukan sebagai versinya untuk operasi Put ini. |
3 | Put add(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value) Menambahkan kolom dan nilai yang ditentukan, dengan stempel waktu yang ditentukan sebagai versinya untuk operasi Put ini. |
4 | Put add(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value) Menambahkan kolom dan nilai yang ditentukan, dengan stempel waktu yang ditentukan sebagai versinya untuk operasi Put ini. |
Kelas Get
Kelas ini digunakan untuk melakukan operasi Get pada satu baris. Kelas ini milikorg.apache.hadoop.hbase.client paket.
Pembuat
S.No. | Pembuat dan Deskripsi |
---|---|
1 | Get(byte[] row) Menggunakan konstruktor ini, Anda dapat membuat operasi Get untuk baris yang ditentukan. |
2 | Get(Get get) |
Metode
S.No. | Metode dan Deskripsi |
---|---|
1 | Get addColumn(byte[] family, byte[] qualifier) Mengambil kolom dari keluarga tertentu dengan kualifikasi yang ditentukan. |
2 | Get addFamily(byte[] family) Mengambil semua kolom dari keluarga yang ditentukan. |
Penghapusan Kelas
Kelas ini digunakan untuk melakukan operasi Hapus pada satu baris. Untuk menghapus seluruh baris, buat instance objek Delete dengan baris yang akan dihapus. Kelas ini milikorg.apache.hadoop.hbase.client paket.
Pembuat
S.No. | Pembuat dan Deskripsi |
---|---|
1 | Delete(byte[] row) Membuat operasi Hapus untuk baris tertentu. |
2 | Delete(byte[] rowArray, int rowOffset, int rowLength) Membuat operasi Hapus untuk baris dan stempel waktu tertentu. |
3 | Delete(byte[] rowArray, int rowOffset, int rowLength, long ts) Membuat operasi Hapus untuk baris dan stempel waktu tertentu. |
4 | Delete(byte[] row, long timestamp) Membuat operasi Hapus untuk baris dan stempel waktu tertentu. |
Metode
S.No. | Metode dan Deskripsi |
---|---|
1 | Delete addColumn(byte[] family, byte[] qualifier) Menghapus versi terbaru dari kolom tertentu. |
2 | Delete addColumns(byte[] family, byte[] qualifier, long timestamp) Menghapus semua versi dari kolom yang ditentukan dengan stempel waktu kurang dari atau sama dengan stempel waktu yang ditentukan. |
3 | Delete addFamily(byte[] family) Menghapus semua versi dari semua kolom dari keluarga tertentu. |
4 | Delete addFamily(byte[] family, long timestamp) Menghapus semua kolom dari keluarga tertentu dengan stempel waktu kurang dari atau sama dengan stempel waktu yang ditentukan. |
Hasil Kelas
Kelas ini digunakan untuk mendapatkan hasil baris tunggal dari kueri Dapatkan atau Pindai.
Konstruktor
S.No. | Konstruktor |
---|---|
1 | Result() Dengan menggunakan konstruktor ini, Anda dapat membuat Hasil kosong tanpa muatan KeyValue; mengembalikan null jika Anda memanggil Cells mentah (). |
Metode
S.No. | Metode dan Deskripsi |
---|---|
1 | byte[] getValue(byte[] family, byte[] qualifier) Metode ini digunakan untuk mendapatkan versi terbaru dari kolom yang ditentukan. |
2 | byte[] getRow() Metode ini digunakan untuk mengambil kunci baris yang sesuai dengan baris dari mana Hasil ini dibuat. |
Memasukkan Data menggunakan HBase Shell
Bab ini menunjukkan cara membuat data dalam tabel HBase. Untuk membuat data dalam tabel HBase, perintah dan metode berikut digunakan:
put perintah,
add() metode dari Put kelas, dan
put() metode dari HTable kelas.
Sebagai contoh, kita akan membuat tabel berikut di HBase.
Menggunakan putperintah, Anda dapat memasukkan baris ke dalam tabel. Sintaksnya adalah sebagai berikut:
put ’<table name>’,’row1’,’<colfamily:colname>’,’<value>’
Memasukkan Baris Pertama
Mari kita masukkan nilai baris pertama ke dalam tabel emp seperti yang ditunjukkan di bawah ini.
hbase(main):005:0> put 'emp','1','personal data:name','raju'
0 row(s) in 0.6600 seconds
hbase(main):006:0> put 'emp','1','personal data:city','hyderabad'
0 row(s) in 0.0410 seconds
hbase(main):007:0> put 'emp','1','professional
data:designation','manager'
0 row(s) in 0.0240 seconds
hbase(main):007:0> put 'emp','1','professional data:salary','50000'
0 row(s) in 0.0240 seconds
Masukkan baris yang tersisa menggunakan perintah put dengan cara yang sama. Jika Anda memasukkan seluruh tabel, Anda akan mendapatkan output berikut.
hbase(main):022:0> scan 'emp'
ROW COLUMN+CELL
1 column=personal data:city, timestamp=1417524216501, value=hyderabad
1 column=personal data:name, timestamp=1417524185058, value=ramu
1 column=professional data:designation, timestamp=1417524232601,
value=manager
1 column=professional data:salary, timestamp=1417524244109, value=50000
2 column=personal data:city, timestamp=1417524574905, value=chennai
2 column=personal data:name, timestamp=1417524556125, value=ravi
2 column=professional data:designation, timestamp=1417524592204,
value=sr:engg
2 column=professional data:salary, timestamp=1417524604221, value=30000
3 column=personal data:city, timestamp=1417524681780, value=delhi
3 column=personal data:name, timestamp=1417524672067, value=rajesh
3 column=professional data:designation, timestamp=1417524693187,
value=jr:engg
3 column=professional data:salary, timestamp=1417524702514,
value=25000
Memasukkan Data Menggunakan Java API
Anda dapat memasukkan data ke Hbase menggunakan add() metode dari Putkelas. Anda dapat menyimpannya menggunakanput() metode dari HTablekelas. Kelas-kelas ini milikorg.apache.hadoop.hbase.clientpaket. Di bawah ini diberikan adalah langkah-langkah untuk membuat data dalam Tabel HBase.
Langkah 1: Buat instance Kelas Konfigurasi
Itu Configurationkelas menambahkan file konfigurasi HBase ke objeknya. Anda dapat membuat objek konfigurasi menggunakancreate() metode dari HbaseConfiguration kelas seperti yang ditunjukkan di bawah ini.
Configuration conf = HbaseConfiguration.create();
Langkah 2: Buat instance Kelas HTable
Anda memiliki kelas yang disebut HTable, implementasi Tabel di HBase. Kelas ini digunakan untuk berkomunikasi dengan tabel HBase tunggal. Saat membuat instance kelas ini, ia menerima objek konfigurasi dan nama tabel sebagai parameter. Anda dapat membuat instance kelas HTable seperti yang ditunjukkan di bawah ini.
HTable hTable = new HTable(conf, tableName);
Langkah 3: Buat instance PutClass
Untuk memasukkan data ke dalam tabel HBase, file add()metode dan variannya digunakan. Metode ini milikPut, oleh karena itu instantiate kelas put. Kelas ini membutuhkan nama baris yang ingin Anda masukkan datanya, dalam format string. Anda dapat membuat instancePut kelas seperti yang ditunjukkan di bawah ini.
Put p = new Put(Bytes.toBytes("row1"));
Langkah 4: InsertData
Itu add() metode dari Putkelas digunakan untuk memasukkan data. Ini membutuhkan 3 array byte yang mewakili keluarga kolom, kualifikasi kolom (nama kolom), dan nilai yang akan disisipkan. Masukkan data ke dalam tabel HBase menggunakan metode add () seperti yang ditunjukkan di bawah ini.
p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
Langkah 5: Simpan Data dalam Tabel
Setelah memasukkan baris yang diperlukan, simpan perubahan dengan menambahkan contoh put ke put() metode kelas HTable seperti yang ditunjukkan di bawah ini.
hTable.put(p);
Langkah 6: Tutup Instans HTable
After creating data in the HBase Table, close the HTable instance using the close() method as shown below.
hTable.close();
Given below is the complete program to create data in HBase Table.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
public class InsertData{
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable hTable = new HTable(config, "emp");
// Instantiating Put class
// accepts a row name.
Put p = new Put(Bytes.toBytes("row1"));
// adding values using add() method
// accepts column family name, qualifier/row name ,value
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("name"),Bytes.toBytes("raju"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("hyderabad"));
p.add(Bytes.toBytes("professional"),Bytes.toBytes("designation"),
Bytes.toBytes("manager"));
p.add(Bytes.toBytes("professional"),Bytes.toBytes("salary"),
Bytes.toBytes("50000"));
// Saving the put Instance to the HTable.
hTable.put(p);
System.out.println("data inserted");
// closing HTable
hTable.close();
}
}
Compile and execute the above program as shown below.
$javac InsertData.java $java InsertData
The following should be the output:
data inserted
Updating Data using HBase Shell
You can update an existing cell value using the put command. To do so, just follow the same syntax and mention your new value as shown below.
put ‘table name’,’row ’,'Column family:column name',’new value’
The newly given value replaces the existing value, updating the row.
Example
Suppose there is a table in HBase called emp with the following data.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418051555, value = raju
row1 column = personal:city, timestamp = 1418275907, value = Hyderabad
row1 column = professional:designation, timestamp = 14180555,value = manager
row1 column = professional:salary, timestamp = 1418035791555,value = 50000
1 row(s) in 0.0100 seconds
The following command will update the city value of the employee named ‘Raju’ to Delhi.
hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds
The updated table looks as follows where you can observe the city of Raju has been changed to ‘Delhi’.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418035791555, value = raju
row1 column = personal:city, timestamp = 1418274645907, value = Delhi
row1 column = professional:designation, timestamp = 141857555,value = manager
row1 column = professional:salary, timestamp = 1418039555, value = 50000
1 row(s) in 0.0100 seconds
Updating Data Using Java API
You can update the data in a particular cell using the put() method. Follow the steps given below to update an existing cell value of a table.
Step 1: Instantiate the Configuration Class
Configuration class adds HBase configuration files to its object. You can create a configuration object using the create() method of the HbaseConfiguration class as shown below.
Configuration conf = HbaseConfiguration.create();
Step 2: Instantiate the HTable Class
You have a class called HTable, an implementation of Table in HBase. This class is used to communicate with a single HBase table. While instantiating this class, it accepts the configuration object and the table name as parameters. You can instantiate the HTable class as shown below.
HTable hTable = new HTable(conf, tableName);
Step 3: Instantiate the Put Class
To insert data into HBase Table, the add() method and its variants are used. This method belongs to Put, therefore instantiate the put class. This class requires the row name you want to insert the data into, in string format. You can instantiate the Put class as shown below.
Put p = new Put(Bytes.toBytes("row1"));
Step 4: Update an Existing Cell
The add() method of Put class is used to insert data. It requires 3 byte arrays representing column family, column qualifier (column name), and the value to be inserted, respectively. Insert data into HBase table using the add() method as shown below.
p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
Step 5: Save the Data in Table
After inserting the required rows, save the changes by adding the put instance to the put() method of the HTable class as shown below.
hTable.put(p);
Step 6: Close HTable Instance
After creating data in HBase Table, close the HTable instance using the close() method as shown below.
hTable.close();
Given below is the complete program to update data in a particular table.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
public class UpdateData{
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable hTable = new HTable(config, "emp");
// Instantiating Put class
//accepts a row name
Put p = new Put(Bytes.toBytes("row1"));
// Updating a cell value
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
// Saving the put Instance to the HTable.
hTable.put(p);
System.out.println("data Updated");
// closing HTable
hTable.close();
}
}
Compile and execute the above program as shown below.
$javac UpdateData.java $java UpdateData
The following should be the output:
data Updated
Reading Data using HBase Shell
The get command and the get() method of HTable class are used to read data from a table in HBase. Using get command, you can get a single row of data at a time. Its syntax is as follows:
get ’<table name>’,’row1’
Example
The following example shows how to use the get command. Let us scan the first row of the emp table.
hbase(main):012:0> get 'emp', '1'
COLUMN CELL
personal : city timestamp = 1417521848375, value = hyderabad
personal : name timestamp = 1417521785385, value = ramu
professional: designation timestamp = 1417521885277, value = manager
professional: salary timestamp = 1417521903862, value = 50000
4 row(s) in 0.0270 seconds
Reading a Specific Column
Given below is the syntax to read a specific column using the get method.
hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}
Example
Given below is the example to read a specific column in HBase table.
hbase(main):015:0> get 'emp', 'row1', {COLUMN ⇒ 'personal:name'}
COLUMN CELL
personal:name timestamp = 1418035791555, value = raju
1 row(s) in 0.0080 seconds
Reading Data Using Java API
To read data from an HBase table, use the get() method of the HTable class. This method requires an instance of the Get class. Follow the steps given below to retrieve data from the HBase table.
Step 1: Instantiate the Configuration Class
Configuration class adds HBase configuration files to its object. You can create a configuration object using the create() method of the HbaseConfiguration class as shown below.
Configuration conf = HbaseConfiguration.create();
Step 2: Instantiate the HTable Class
You have a class called HTable, an implementation of Table in HBase. This class is used to communicate with a single HBase table. While instantiating this class, it accepts the configuration object and the table name as parameters. You can instantiate the HTable class as shown below.
HTable hTable = new HTable(conf, tableName);
Step 3: Instantiate the Get Class
You can retrieve data from the HBase table using the get() method of the HTable class. This method extracts a cell from a given row. It requires a Get class object as parameter. Create it as shown below.
Get get = new Get(toBytes("row1"));
Step 4: Read the Data
While retrieving data, you can get a single row by id, or get a set of rows by a set of row ids, or scan an entire table or a subset of rows.
You can retrieve an HBase table data using the add method variants in Get class.
To get a specific column from a specific column family, use the following method.
get.addFamily(personal)
To get all the columns from a specific column family, use the following method.
get.addColumn(personal, name)
Step 5: Get the Result
Get the result by passing your Get class instance to the get method of the HTable class. This method returns the Result class object, which holds the requested result. Given below is the usage of get() method.
Result result = table.get(g);
Step 6: Reading Values from the Result Instance
The Result class provides the getValue() method to read the values from its instance. Use it as shown below to read the values from the Result instance.
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
Given below is the complete program to read values from an HBase table.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
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.Result;
import org.apache.hadoop.hbase.util.Bytes;
public class RetriveData{
public static void main(String[] args) throws IOException, Exception{
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(config, "emp");
// Instantiating Get class
Get g = new Get(Bytes.toBytes("row1"));
// Reading the data
Result result = table.get(g);
// Reading values from Result class object
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
// Printing the values
String name = Bytes.toString(value);
String city = Bytes.toString(value1);
System.out.println("name: " + name + " city: " + city);
}
}
Compile and execute the above program as shown below.
$javac RetriveData.java $java RetriveData
The following should be the output:
name: Raju city: Delhi
Deleting a Specific Cell in a Table
Using the delete command, you can delete a specific cell in a table. The syntax of delete command is as follows:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
Example
Here is an example to delete a specific cell. Here we are deleting the salary.
hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds
Deleting All Cells in a Table
Using the “deleteall” command, you can delete all the cells in a row. Given below is the syntax of deleteall command.
deleteall ‘<table name>’, ‘<row>’,
Example
Here is an example of “deleteall” command, where we are deleting all the cells of row1 of emp table.
hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds
Verifikasi tabel menggunakan scanperintah. Cuplikan tabel setelah menghapus tabel diberikan di bawah ini.
hbase(main):022:0> scan 'emp'
ROW COLUMN + CELL
2 column = personal data:city, timestamp = 1417524574905, value = chennai
2 column = personal data:name, timestamp = 1417524556125, value = ravi
2 column = professional data:designation, timestamp = 1417524204, value = sr:engg
2 column = professional data:salary, timestamp = 1417524604221, value = 30000
3 column = personal data:city, timestamp = 1417524681780, value = delhi
3 column = personal data:name, timestamp = 1417524672067, value = rajesh
3 column = professional data:designation, timestamp = 1417523187, value = jr:engg
3 column = professional data:salary, timestamp = 1417524702514, value = 25000
Menghapus Data Menggunakan Java API
Anda dapat menghapus data dari tabel HBase menggunakan delete() metode dari HTablekelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk menghapus data dari tabel.
Langkah 1: Buat instance Kelas Konfigurasi
Configurationkelas menambahkan file konfigurasi HBase ke objeknya. Anda dapat membuat objek konfigurasi menggunakancreate() metode dari HbaseConfiguration kelas seperti yang ditunjukkan di bawah ini.
Configuration conf = HbaseConfiguration.create();
Langkah 2: Buat instance Kelas HTable
Anda memiliki kelas yang disebut HTable, implementasi Tabel di HBase. Kelas ini digunakan untuk berkomunikasi dengan tabel HBase tunggal. Saat membuat instance kelas ini, ia menerima objek konfigurasi dan nama tabel sebagai parameter. Anda dapat membuat instance kelas HTable seperti yang ditunjukkan di bawah ini.
HTable hTable = new HTable(conf, tableName);
Langkah 3: Buat Instansiasi Kelas Hapus
Instantiate Deletekelas dengan melewatkan rowid dari baris yang akan dihapus, dalam format array byte. Anda juga dapat meneruskan stempel waktu dan Rowlock ke konstruktor ini.
Delete delete = new Delete(toBytes("row1"));
Langkah 4: Pilih Data yang Akan Dihapus
Anda dapat menghapus data menggunakan metode delete dari Deletekelas. Kelas ini memiliki berbagai metode penghapusan. Pilih kolom atau kelompok kolom yang akan dihapus menggunakan metode tersebut. Lihatlah contoh berikut yang menunjukkan penggunaan metode kelas Hapus.
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
Langkah 5: Hapus Data
Hapus data yang dipilih dengan meneruskan delete misalnya ke delete() metode dari HTable kelas seperti yang ditunjukkan di bawah ini.
table.delete(delete);
Langkah 6: Tutup HTableInstance
Setelah menghapus data, tutup file HTable Contoh.
table.close();
Diberikan di bawah ini adalah program lengkap untuk menghapus data dari tabel HBase.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.util.Bytes;
public class DeleteData {
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(conf, "employee");
// Instantiating Delete class
Delete delete = new Delete(Bytes.toBytes("row1"));
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
// deleting the data
table.delete(delete);
// closing the HTable object
table.close();
System.out.println("data deleted.....");
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac Deletedata.java $java DeleteData
Outputnya adalah sebagai berikut:
data deleted
Memindai menggunakan HBase Shell
Itu scanperintah digunakan untuk melihat data di HTable. Dengan menggunakan perintah scan, Anda bisa mendapatkan data tabel. Sintaksnya adalah sebagai berikut:
scan ‘<table name>’
Contoh
Contoh berikut menunjukkan cara membaca data dari tabel menggunakan perintah scan. Di sini kita membacaemp meja.
hbase(main):010:0> scan 'emp'
ROW COLUMN + CELL
1 column = personal data:city, timestamp = 1417521848375, value = hyderabad
1 column = personal data:name, timestamp = 1417521785385, value = ramu
1 column = professional data:designation, timestamp = 1417585277,value = manager
1 column = professional data:salary, timestamp = 1417521903862, value = 50000
1 row(s) in 0.0370 seconds
Memindai Menggunakan Java API
Program lengkap untuk memindai seluruh data tabel menggunakan java API adalah sebagai berikut.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
public class ScanTable{
public static void main(String args[]) throws IOException{
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(config, "emp");
// Instantiating the Scan class
Scan scan = new Scan();
// Scanning the required columns
scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("city"));
// Getting the scan result
ResultScanner scanner = table.getScanner(scan);
// Reading values from scan result
for (Result result = scanner.next(); result != null; result = Scanner.next())
System.out.println("Found row : " + result);
//closing the scanner
scanner.close();
}
}
Kompilasi dan jalankan program di atas seperti yang ditunjukkan di bawah ini.
$javac ScanTable.java $java ScanTable
Outputnya adalah sebagai berikut:
Found row :
keyvalues={row1/personal:city/1418275612888/Put/vlen=5/mvcc=0,
row1/personal:name/1418035791555/Put/vlen=4/mvcc=0}
menghitung
Anda dapat menghitung jumlah baris tabel menggunakan countperintah. Sintaksnya adalah sebagai berikut:
count ‘<table name>’
Setelah menghapus baris pertama, tabel emp akan memiliki dua baris. Verifikasi seperti yang ditunjukkan di bawah ini.
hbase(main):023:0> count 'emp'
2 row(s) in 0.090 seconds
⇒ 2
memotong
Perintah ini menonaktifkan penurunan dan membuat ulang tabel. Sintaks daritruncate adalah sebagai berikut:
hbase> truncate 'table name'
Contoh
Diberikan di bawah ini adalah contoh perintah truncate. Di sini kami telah memotongemp meja.
hbase(main):011:0> truncate 'emp'
Truncating 'one' table (it may take a while):
- Disabling table...
- Truncating table...
0 row(s) in 1.5950 seconds
Setelah memotong tabel, gunakan perintah scan untuk memverifikasi. Anda akan mendapatkan tabel dengan baris nol.
hbase(main):017:0> scan ‘emp’
ROW COLUMN + CELL
0 row(s) in 0.3110 seconds
Kami dapat memberikan dan mencabut izin untuk pengguna di HBase. Ada tiga perintah untuk tujuan keamanan: berikan, cabut, dan izin_ pengguna.
hibah
Itu grantperintah memberikan hak tertentu seperti membaca, menulis, mengeksekusi, dan admin pada tabel untuk pengguna tertentu. Sintaks perintah hibah adalah sebagai berikut:
hbase> grant <user> <permissions> [<table> [<column family> [<column; qualifier>]]
Kami dapat memberikan nol atau lebih hak istimewa kepada pengguna dari himpunan RWXCA, di mana
- R - mewakili hak membaca.
- W - mewakili hak menulis.
- X - mewakili hak istimewa eksekusi.
- C - mewakili hak istimewa buat.
- A - mewakili hak istimewa admin.
Diberikan di bawah ini adalah contoh yang memberikan semua hak istimewa kepada pengguna bernama 'Tutorialspoint'.
hbase(main):018:0> grant 'Tutorialspoint', 'RWXCA'
mencabut
Itu revokeperintah digunakan untuk mencabut hak akses pengguna dari sebuah tabel. Sintaksnya adalah sebagai berikut:
hbase> revoke <user>
Kode berikut mencabut semua izin dari pengguna bernama 'Tutorialspoint'.
hbase(main):006:0> revoke 'Tutorialspoint'
user_permission
Perintah ini digunakan untuk mencantumkan semua izin untuk tabel tertentu. Sintaks dariuser_permission adalah sebagai berikut:
hbase>user_permission ‘tablename’
Kode berikut mencantumkan semua izin pengguna dari tabel 'emp'.
hbase(main):013:0> user_permission 'emp'