Anda di halaman 1dari 14

PENGANTAR BIG DATA

LAPORAN PRAKTIKUM 14
Apache Phoenix Bagian 1

Disusun oleh
Nama : Dhiya Fauziza
NIM : 3.34.17.1.09
Kelas : IK – 3B

PROGRAM STUDI D3 – TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2020
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.

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.

Apache Phoenix Bagian 1

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.2 Posisi Apache Phoenix pada BigData Ecosystem


Apache Phoenix bisa disebut sebagai SQL Engine khusus untuk HBase sebagaimana
Cloudera Impala merupakan SQL Engine untuk Apache Kudu maupun Apache Hive. Untuk
lebih jelas mengenai posisi Apache Phoenix, silakan lihat pada gambar berikut:

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.

2.3 Fitur yang Ditawarkan Apache Phoenix


Dibandingkan dengan HBase SQL engine lainnya, Apache Phoenix menawarkan fitur-
fitur sebagai berikut:
• Mampu mengahindari full table scan dalam mengambil data query
• Mampu mengeksekusi pekerjaan secara parallel
• Menyediakan phoenix query server yang memisahkan antara layer aplikasi dengan
layer pemrosesan data
• Mendukung transaction
• Mendukung indeks sekunder pada tabel

3
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.

2.4 Arsitektur Apache Phoenix

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>

3.2 Instalasi Apache Phoenix Docker


1. Buat folder tertentu sesuai keinginan dimana kita akan membuat file
docker-compose.yml. Disini contoh (untuk Windows) di “d:\docker\apache_phoenix”

2. Buatlah file text dengan nama docker-compose.yml. Berikut peritahnya.


Disini kita akan mendownload 3 file :
- smizy/zookeeper:latest
- smizy/ hadoop-base:latest
- smizy/apache-phoenix:latest

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

4. Masuk ke folder dimana kita menyimpan file docker-compose.yml

5. Buat network dengan nama vnet dengan perintah berikut ini


docker network create vnet

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”

7. Koneksikan apache phoenix dengan perintah berikut ini


docker run -it --rm --net vnet smizy/apache-phoenix:latest sh

8. Kemudian ketikkan perintah bin/sqlline-thin.py http://queryserver-


1.vnet:8765 untuk connecting ke apache phoenix
Jika berhasil akan muncul 0:jdbc:phoenix:thin:url=http://queryserver-1

8
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.

3.3 Membuat Tabel


Masih di prompt sqlline, jalankan perintah berikut untuk membuat 1 tabel:
Create table user(id integer not null primary key, first_name varchar,
last_name varchar);

Sebagaimana bisa dilihat syntax SQL pada Phoenix mirip dengan query pada MySQL.

3.4 Melihat Daftar Tabel


Untuk melihat seluruh tabel pada server, dapat menggunakan perintah berikut (masih di
dalam shell/prompt sqlline):
!table

3.5 Melihat List Koneksi


Untuk melihat seluruh koneksi pada server dapat menggunakan perintah berikut
!list

9
Praktikum Big Data – Dr. Kurnianingsih, S.T., M.T.

3.6 Mengisi Data ke Tabel


Syntax untuk mengisi (INSERT) data pada tabel Apache Phoenix agak berbeda dengan
SQL pada umumnya:
Upsert into user values(1, ‘nama’, ‘saya’);
Upsert into user values(2, ‘nama’, ‘kamu’);
Sebagaimana dilihat, Apache Phoenix menggunakan syntax UPSERT melakukan
pengisian (INSERT) data.
Perlu dicatat bahwa syntax UPSERT ini digunakan juga untuk mengupdate data, jadi
untuk Apache Phoenix, INSERT dan UPDATE menjadi satu syntax yaitu UPSERT.

3.7 Menampilkan Data


Syntax SELECT sama dengan SQL pada RDBMS umumnya:
Select * from user;

3.8 Menghapus Data


Syntax untuk menghapus data adalah seperti umumnya RDBMS:
Delete from user where id=1;

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.

2. Carilah keunggulan Apache Phoenix dibandingkan SQL Engine yang lain!


Jawab :
- Mampu mengahindari full table scan dalam mengambil data query
- Mampu mengeksekusi pekerjaan secara parallel
- Menyediakan phoenix query server yang memisahkan antara layer aplikasi dengan
layer pemrosesan data
- Mendukung transaction
- Mendukung indeks sekunder pada tabel

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.

b. Cek dengan perintah


Select * from user;

13

Anda mungkin juga menyukai