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