setup prestodb pada centos dan ubuntu

0
365

Halo sobat sekolahlinux kali ini saya akan coba memberikan sedikit tutorial tentang bagaimana instalasi atau setup prestodb pada centos dan ubuntu dan mengatur koneksinya ke db-db yang kita miliki, prestodb sendiri digunakan untuk keperluan query analytics, dan bisa digunakan ke db no-sql ataupun sql, misal seperti mongodb, cassandra, mysql dll, dengan satu bahasa query

pertama sebelum kita setup prestodb, kita diharuskan menginstall java 8 pada os linux yang kita miliki, pada tutorial kali ini kami beranggapan kalian sudah install java/openjdk pada os linux kalian, selanjutnya kalian bisa download file presto

wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.213/presto-server-0.213.tar.gz

selanjutnya extract file yg sudah didownload dan rubah nama folder hasil extract nya

tar xvf presto-server-0.213.tar.gz
mv presto-server-0.213 presto-server

pindahkan folder yg sudah di extract dan sudah di rename tadi ke folder /etc/

mv presto-server /etc/

masuk kedalam folder presto-server yang sudah di pindahkan

cd /etc/presto-server

buat folder etc didalamnya

mkdir etc

selanjutnya buat file dengan nama node.properties didalam folder etc yang tadi kita buat

vim /etc/node.properties

lalu isi file node.properties dengan paramater dibawah

node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/var/presto/data

oh iya perlu di ingat paramater node.id ini harus uniq disetiap node, jadi misalkan kalian ingin memisahkan antara cordinator dan worker, maka node.id harus berbeda, tidak boleh sama

selanjutnya buat folder untuk menampung data2 presto sesuai dengan yang ada di node.data-dir kalian bisa membuat foldernya dengan perintah seperti dibawah

/var/presto/data

jika sudah selanjutnya buat file dengan nama jvm.config didalam folder etc yang tadi dibuat

vim etc/jvm.config

lalu didalamnya diisikan dengan paramater dibawah

-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

selanjutnya kita akan membuat file dengan nama config.properties didalam folder etc yang tadi kita buat

vim etc/config.properties

untuk isi dari file config.properties sendiri ada 3 jenis tergantung mau digunakan sebagai apa prestodb yang kita setup, apakah akan digunakan menjadi cordinator atau mau menjadi worker ataukan mau menjadi ke 2 nya, yaitu menjadi cordinator dan worker secara bersamaan, berikut ini isi paramater config.properties dari masing2 type prestodb

cordinator

coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://ip_presto_cordinator:8080

workers

coordinator=false
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://ip_presto_cordinator:8080

perlu di perhatikan pada paramater discovery.uri di presto worker, value nya harus mengarah ke ip dari presto cordinator

cordinator & worker (single node)

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://ip_presto_cordinator:8080

pada tutorial kali ini saya menerapkan cordinator dan worker dalam 1 node yang sama atau bisa disebut single node

selanjutnya buat file log.properties didalam folder etc yang telah kita buat

vim etc/log.properties

lalu isi dengan paramater dibawah

com.facebook.presto=INFO

setelah itu buat folder catalog didalam folder etc yang telah kita buat

mkdir -p etc/catalog

didalam folder catalog ini nantikan akan berisi banyak file yang berisi koneksi kemasing-masing db, contoh sederhananya seperti dibawah

buat file jmx.properties didalam folder etc/catalog yang telah kita buat

vim etc/catalog/jmx.properties

didalamnya berisi paramater

connector.name=jmx

contoh lainnya misal kita ingin membuat koneksi kearah db cassandra, cukup buat file misal dengan nama sekolahlinuxcass.properties didalam folder etc/catalog

vim etc/catalog/sekolahlinuxcass.properties

lalu isikan dengan paramater dibawah

connector.name=cassandra
cassandra.contact-points=192.168.100.70
cassandra.native-protocol-port=9042
cassandra.username=sekolahlinux
cassandra.password=s3k0l4hl1nux

contoh lainnya misal kita ingin membuat koneksi kearah db mysql, cukup buat file misal dengan nama sekolahlinuxmysql.properties didalam folder etc/catalog

vim etc/catalog/sekolahlinuxmysql.properties

lalu isikan dengan paramater dibawah

connector.name=mysql
connection-url=jdbc:mysql://192.168.100.70:3306
connection-user=sekolahlinux
connection-password=s3k0l4hlinux

yang perlu di perhatikan dari pembuatan connection2 diatas adalah penamaan file nya, karena nama file nya seperti sekolahlinuxmysql atau sekolahlinuxcass itu akan digunakan untuk memanggil catalog dalam prestodb

jika sudah jalankan perintah dibawah dari dalam folder /etc/presto-server untuk menjadikan presto sebagai daemon di background

bin/launcher start

namun jika kalian ingin menjalankan presto di foreground jalankan perintah dibawah

bin/launcher run

jika kalian ingin melihat log nya kalian bisa ke /var/presto/data/var/log didalamnya ada 3 file log yang bisa kalian lihat

sekian tutorial kali ini 🙂 semoga bermanfaat ya