LAPORAN PRAKTIKUM 14
Apache Phoenix Bagian 1
Disusun oleh
Nama : Dhiya Fauziza
NIM : 3.34.17.1.09
Kelas : IK – 3B
DAFTAR ISI
DAFTAR ISI...................................................................................................................................1
I. Kompetensi Dasar.....................................................................................................................2
II. Teori..........................................................................................................................................2
2.1 Apa itu Apache Phoenix?..................................................................................................2
2.2 Posisi Apache Phoenix pada BigData Ecosystem.............................................................2
2.3 Fitur yang Ditawarkan Apache Phoenix...........................................................................3
2.4 Arsitektur Apache Phoenix...............................................................................................3
III. Praktikum..................................................................................................................................4
3.1 Instalasi Apache Phoenix Linux.......................................................................................4
3.2 Instalasi Apache Phoenix Docker.....................................................................................5
3.3 Membuat Tabel.................................................................................................................9
3.4 Melihat Daftar Tabel.........................................................................................................9
3.5 Melihat List Koneksi.........................................................................................................9
3.6 Mengisi Data ke Tabel......................................................................................................9
3.7 Menampilkan Data..........................................................................................................10
3.8 Menghapus Data.............................................................................................................10
IV. Tugas......................................................................................................................................11
1
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
I. Kompetensi Dasar
1. Mahasiswa mampu memahami fungsi dari Apache Phoenix
2. Mahasiswa mampu memahami posisi Apache Phoenix pada BigData Ecosystem
3. Mahasiswa mampu melakukan instalasi Apache Phoenix
II. Teori
2.1 Apa itu Apache Phoenix?
Awalnya, Apache Phoenix merupakan aplikasi internal yang dikembangkan oleh
Salesforce.com dan melepasnya sebagai aplikasi open source. Mei 2014, Apache Phoenix
menjadi salah satu top-level project Apache Foundation.
Apache Phoenix merupakan alat bantu query yang dipergunakan pada data yang
disimpan pada HBase. Apache Phoenix menyediakan syntax SQL yang familiar di dunia
RDBMS pada HBase. Sebagaimana kita ketahui pada bab tentang HBase, bahwa HBase
tidak menyediakan syntax SQL untuk bekerja dengan data yang disimpan padanya. Dalam
hal ini, Apache Phoenix menyediakan kemudahan bagi programmer atau DB Admin yang
datang dari dunia RDBMS tradisional untuk melakukan query pada HBase dengan bahasa
SQL yang umum.
2
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
Sebagaimana dapat dilihat pada gambar di atas, Apache Phoenix sampai saat ini secara
ekslusif hanya bekerja pada HBase data storage. Dibandingkan dengan Hive (karena Hive
juga bisa terhubung ke HBase), Apache Phoenix memiliki performa yang lebih bagus. Di
balik layar,
Apache Phoenix melakukan kompilasi terhadap SQL query yang dibuat oleh
programmer atau DB Admin menjadi perintah-perintah HBase native. Apache Phoenix
melakukan scanning dan planning terhadap query secara paralel untuk mendapatkan hasil
eksekusi yang optimum.
3
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
Apache Phoenix menyediakan library untuk client dan server. Pada sisi server, Phoenix
coprocessor untuk HBase menangani pekerjaan indexing, join, transaksi, skema dan
manajemen metadata. Pada sisi client, library Phoenix memiliki parser, komponen aljabar
relational dan perencanaan query yang digunakan untuk menerjemahkan query dan memilih
rencana eksekusi paling optimal berdasarkan optimasi berbasis biaya. Setelah rencana
eksekusi dipilih, secara internal, Phoenix akan melakukan konversi query menjadi
perintahperintah native HBase seperti SCAN, PUT dan DELETE. Hasil dari query akan
dipetakan ke dalam bentuk Java ResultSets.
III. Praktikum
3.1 Instalasi Apache Phoenix Linux
1. Sebelum melakukan Apache Phoenix, system operasi Anda harus sudah terinstall Java
8 dan environment variable JAVA_HOME telah benar disetting.
2. Anda perlu menginstall HBase terlebih dahulu. Silakan download dari sini:
https://downloads.apache.org/hbase/1.4.13/hbase-1.4.13-bin.tar.gz
3. Ekstrak file yang sudah Anda download tadi
4. Kemudian set environment variable HBASE_HOME ke dimana Anda ekstrak HBase
tadi. Berikut adalah perintah yang bisa dijalankan di *Nix system (Linux, MacOS):
4
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
export HBASE_HOME=/Users/admin/Downloads/hbase-1.4.13
Untuk Windows, silakan menyesuaikan (coba Google dengan kata kunci: Windows set
environment variable).
5. Download Apache Phoenix binary dari:
https://downloads.apache.org/phoenix/apache-phoenix-4.15.0-HBase-
1.4/bin/apache-phoenix-4.15.0-HBase-1.4-bin.tar.gz
6. Ekstrak file hasil download tadi.
7. Masuk ke dalam folder hasil ekstraksi tadi.
8. Salin file dengan nama phoenix-4.15.0-HBase-1.4-server.jar ke folder ‘lib’ pada lokasi
Anda melakukan ekstraksi untuk HBase (pada langkah 3)
9. Masuk ke dalam folder ‘bin’ pada HBase (hasil langkah 3)
10. Jalankan HBase secara standalone dengan perintah berikut:
/start-hbase.sh
11. Masuk ke folder dimana Anda melakukan ekstraksi Apache Phoenix kemudian masuk
ke folder ‘bin’.
12. Jalankan perintah berikut untuk memulai Apache Phoenix:
python sqlline.py localhost
Jika semua berhasil jalan, maka Anda akan mendapati prompt seperti ini:
0:jdbc:phoenix:localhost>
5
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
version: "2"
services:
zookeeper-1:
container_name: zookeeper-1
networks: ["vnet"]
hostname: zookeeper-1.vnet
image: smizy/zookeeper:latest
environment:
- SERVICE_2181_NAME=zookeeper
command: -server 1 1 vnet
namenode-1:
container_name: namenode-1
networks: ["vnet"]
hostname: namenode-1.vnet
image: smizy/hadoop-base:latest
expose: ["8020"]
ports: ["50070"]
environment:
- HADOOP_ZOOKEEPER_QUORUM=zookeeper-1.vnet:2181
- HADOOP_HEAPSIZE=1000
- HADOOP_NAMENODE_HA=
entrypoint: entrypoint.sh
command: namenode-1
datanode-1:
container_name: datanode-1
networks: ["vnet"]
hostname: datanode-1.vnet
image: smizy/hadoop-base:latest
expose: ["50010", "50020", "50075"]
environment:
- HADOOP_ZOOKEEPER_QUORUM=zookeeper-1.vnet:2181
- HADOOP_HEAPSIZE=1000
- HADOOP_NAMENODE_HA=
entrypoint: entrypoint.sh
command: datanode
hmaster-1:
container_name: hmaster-1
networks: ["vnet"]
hostname: hmaster-1.vnet
image: smizy/apache-phoenix:latest
expose: [16000]
ports: [16010]
depends_on: ["zookeeper-1"]
environment:
- HBASE_ZOOKEEPER_QUORUM=zookeeper-1.vnet:2181
volumes_from:
- namenode-1
command: hmaster-1
regionserver-1:
container_name: regionserver-1
networks: ["vnet"]
hostname: regionserver-1.vnet
6
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
image: smizy/apache-phoenix:latest
expose: [16020, 16030]
depends_on: ["zookeeper-1"]
environment:
- HBASE_ZOOKEEPER_QUORUM=zookeeper-1.vnet:2181
command: regionserver
queryserver-1:
container_name: queryserver-1
networks: ["vnet"]
hostname: queryserver-1.vnet
image: smizy/apache-phoenix:latest
expose: [8765]
depends_on: ["zookeeper-1"]
environment:
- HBASE_ZOOKEEPER_QUORUM=zookeeper-1.vnet:2181
command: bin/queryserver.py
networks:
vnet:
external:
name: vnet
3. Buka docker terminal kemudian jalankan docker machine dengan perintah docker-
machine start
7
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
6. Jalankan container Apache Phoenix yang baru kita buat dengan perintah
“docker-compose up -d”
8
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
Sebagaimana bisa dilihat syntax SQL pada Phoenix mirip dengan query pada MySQL.
9
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
Sebelum dihapus
10
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
Sesudah dihapus
IV. Tugas
1. Carilah perbedaan antara Apache Phoenix, Apache Hive dan Cloudera Impala!
Jawab :
a. Apache Phoenix
Apache Phoenix merupakan alat bantu query yang dipergunakan pada data yang
disimpan pada HBase. Apache Phoenix menyediakan syntax SQL yang familiar di
dunia RDBMS pada HBase. Sebagaimana kita ketahui pada bab tentang HBase,
bahwa HBase tidak menyediakan syntax SQL untuk bekerja dengan data yang
disimpan padanya. Dalam hal ini, Apache Phoenix menyediakan kemudahan bagi
programmer atau DB Admin yang datang dari dunia RDBMS tradisional untuk
melakukan query pada HBase dengan bahasa SQL yang umum.
b. Apache Hive
Apache Hive adalah proyek perangkat lunak data warehouse yang dibangun di atas
Apache Hadoop untuk menyediakan kueri dan analisis data. Hive memberikan
antarmuka seperti SQL untuk meminta data yang disimpan dalam berbagai basis
data dan sistem file yang berintegrasi dengan Hadoop. Kueri SQL tradisional harus
diterapkan di MapReduce Java API untuk menjalankan aplikasi SQL dan kueri atas
data yang didistribusikan. Hive menyediakan abstraksi SQL yang diperlukan untuk
mengintegrasikan SQL-like queries ( HiveQL ) ke dalam Java yang mendasarinya
tanpa perlu mengimplementasikan kueri di Java API tingkat rendah. Karena
sebagian besar aplikasi pergudangan data bekerja dengan bahasa query berbasis
SQL, Hive membantu portabilitas aplikasi berbasis SQL ke Hadoop.
11
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
c. Cloudera Impala
Impala adalah sebuah query engine yang berjalan di atas Hadoop. Impala
memberikan kemampuan untuk melakukan query SQL secara interaktif terhadap
data yang disimpan di HDFS atau HBase, dengan menggunakan metadata, SQL
syntax (HiveQL), ODBC driver dan user interface (Hue Beeswax) yang sama
dengan Apache Hive.
3. Cobalah isi tabel ‘user’ yang kita CREATE tadi dengan 10 nama temanmu!
Jawab :
a. Ketikkan perintah berikut ini
Upsert into user values(1, ‘Ahmad’, ‘Fauzi’)
Upsert into user values(2, ‘Arfiandi’, ‘Sujatmiko’)
Upsert into user values(3, ‘Bagus’, ‘Irawan’)
Upsert into user values(4, ‘Destira’, ‘Mercury’)
Upsert into user values(5, ‘Dhiya’, ‘Fauziza’)
Upsert into user values(6, ‘Hasna’, ‘Uji’)
Upsert into user values(7, ‘Ibnu’, ‘Naufal’)
Upsert into user values(8, ‘Julian’, ‘Shaden’)
Upsert into user values(9, ‘Khoirul’, ‘Anas’)
Upsert into user values(10, ‘Maulana’, ‘Ridwan’)
12
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.
13