danardono.staff.ugm.ac.iddanardono.staff.ugm.ac.id/matakuliah/bigdata/kel08 rha… · web...
TRANSCRIPT
MAKALAH BIG DATA
“ PENGENALAN R-Hadoop”
Disusun oleh :
Alya Puspitasari (13/348069/PA/15438)
Dian Rafi’ah (14/364232/PA/15959)
Isna Shofia (13/350100/PA/15617)
Luh Putu Arlin Sumartini (14/364188/PA/15940)
Dosen Pengampu :
Drs. Danardono, MPH., Ph.D.
Vemmie N.L., S.Si., M.Sc.
PROGRAM STUDI STATISTIKA DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2017
BAB I
PENDAHULUAN
1.1. Latar belakang
Bekerja dan menganalisis big data akan menjadi sangat sulit jika
menggunakan cara klasik seperti system manajemen basis data relasional atau
paket software desktop untuk statistic dan visualisasi data. Seharusnya big data
membutuhkan cluster yang sangat besar dengan ratusan atau bahkan ribuan
kodding komputasi. Salah satu software tools yang sukses digunakan untuk
memproses big data adalah Hadoop. Untuk mengoptimasikan fungsi Hadoop
ini bagi permasalahan pada bidang statistic, maka munculah Rhadoop yang
merupakan perpaduan dari alat pengolahan statistika, yaitu R dengan Hadoop.
1.2. Pengertian Hadoop
Hadoop merupakan framework software berbasis java dan open source yang
berfungsi untuk mengolah data yang memiliki ukuran besar secara terdistribusi.
Hadoop dikembangkan dengan tujuan untuk mendistribusikan proses dari data
set yang besar menggunakan beberapa cluster dari komoditas hardware.
Hadoop juga merupakan sebuah platform middleware yang mengatur sebuah
cluster dari beberapa computer yang dikembangkan pada platform Java, dimana
java merupakan bahasa pemrograman utama untuk Hadoop, bahasa lain yang
dapat juga digunakan untuk Hadoop adalah R, Python atau Ruby.
1.3. Pengertian R
R adalah sebuah free software untuk statistic dan visualisasi data. R ini
tersedia untuk UNIX, Windows, dan Mac OS. R berisi fasilitas untuk
mengontrol data, menyajikan prosedur dengan kinerja yang tinggi untuk
komputasi matrix, sebuah kumpulan tools yang besar untuk analisis, fungsi
grafis untuk visualisasi data dan sebuah bahasa pemrograman langsung. R
berisi sekitar 25 package standard dan banyak lagi package lainnya yang
tersedia di CRAN. Disamping official statistic, R digunakan untuk banyak
sektor lainnya, seperti sektor keuangan, manufaktur, riset akademik, dll.
1.4. Pengertian R-Hadoop
Rhadoop adalah kumpulan dari 3 R package yang memungkin kan pengguna
mengelola dan menganalisa data dengan Hadoop. R-Hadoop juga merupakan
proyek open source yang dikembangkan oleh Revolution Analytics yang
menyediakan integrasi client-side R dan hadoop. Hal ini memungkinkan untuk
menjalankan MapReduce dalam R seperti Rhipe.
BAB II
PEMBAHASAN
2.1. Package RHadoop
RHadoop merupakan proyek open source yang dikembangkan oleh Revolution
Analytics (Http://www.revolutionanalytics.com/) yang menyediakan integrasi
client-side R dan Hadoop. Hal ini memungkinkan untuk menjalankan
MapReduce dalam R seperti Rhipe.
Terdapat 3 package dari RHadoop yaitu :
Package Deskripsi
Rmr Analisis Statistik menggunakan R, melalui MapReduce pada Cluster Hadoop
Rhdfs Konektivitas ke Hadoop Distributed File System (HDFS). Program R dapat melihat, membaca, menulis, dan memodifikasi file yang tersimpan dalam HDFS
Rhbase Konektivitas ke database terdistribusi HBase. Program R dapat melihat, membaca, menulis, dan memodifikasi tabel yang tersimpan dalam HBase
Berikut deskripsi dari 3 package dari RHadoop :
rmr
- rmr merupakan kumpulan fungsi yang menyediakan dan mengintegrasikan
R dan model penghitungan melalui MapReduce.
- rmr adalah R interface yang menyediakan Hadoop Fasilitas MapReduce di
dalam lingkungan R.
- Jadi, program R hanya perlu membagi logika aplikasi ke dalam peta dan
mengurangi fase serta submit menggunakan metode rmr.
- Setelah itu, rmr memanggil Hadoop streaming MapReduce API dengan
beberapa parameter sebagai direktori input, direktori output, mapper,
reducer, dan seterusnya, untuk melakukan R MapReduce Pekerjaan di atas
cluster Hadoop.
rhdfs
- Sebagai program Hadoop MapReduce gunakan HDFS untuk Mengambil
input dan menulis hasilnya, itu diperlukan untuk mengaksesnya dari R
console.
- Program R dapat dengan mudah melakukan pembacaan dan Menulis
operasi pada file data terdistribusi.
- Pada dasarnya, rhdfs package memanggil HDFS API di backend untuk
mengoperasikan sumber data yang tersimpan di HDFS.
rhbase
- R interface untuk mengoperasikan data Hadoop Hbase yang tersimpan
pada jaringan terdistribusi melalui thrift server. rhbase package dirancang
dengan beberapa metode untuk inisialisasi, baca/tulis dan Operasi
manipulasi tabel.
2.2. Implementasi Package Rhadoop
Berikut ini akan diberikan pseudo code mengenai penggunaan package
Rhadoop dan perbandingannya tanpa menggunakan package Rhadoop. Contoh
yang digunakan kali ini adalah perhitungan kata (Word Count), dan regresi
logistik pada data set yang terdapat di R yaitu data Iris.
a. Word Count with Rhadoop
library(rmr2)
library(rhdfs)
hdfs.init()
rmr.options(backend = "local")
# Download File
dir.create("data")
ebookLocal <- "data/ullyses.txt"
if(!file.exists(ebookLocal)) {
download.file(url = "http://www.gutenberg.org/ebooks/4300.txt.utf-
8",destfile = ebookLocal)
}
file.exists(ebookLocal)
readLines(ebookLocal, n = 50)
# Copy file to HDFS
ebookHadoop <- dirname(ebookLocal)
hdfs.dircreate(ebookHadoop)
hdfs.ls(ebookHadoop)
hdfs.put(src = ebookLocal, dest = ebookHadoop)
hdfs.ls(ebookHadoop)
============ word count algorithm ============
library(rmr2)
library(rhdfs)
hdfs.init()
rmr.options(backend = "local")
# Script to perform word count
ebookLocation <- "data/ullyses.txt"
dat <- readLines(ebookLocation, n = 100)
words <- unlist(strsplit(dat, split = "[[:space:][:punct:]]"))
words <- tolower(words)
words <- gsub("[0-9]", "", words)
words <- words[words != ""]
wordcount <- table(words)
keyval(
key = names(wordcount),
val = as.numeric(wordcount)
)
# Function to do word count
wordcount <- function(location, n = -1L){
dat <- readLines(location, n = n)
words <- unlist(strsplit(dat, split = "[[:space:][:punct:]]"))
words <- tolower(words)
words <- gsub("[0-9]", "", words)
words <- words[words != ""]
words <- words[!is.na(words)]
x <- table(words)
keyval(
key = names(x),
val = as.numeric(x)
)
}
x <- wordcount("data/ullyses.txt", n = -1)
lapply(x, head, 10)
lapply(x, tail, 10)
============ word count mapreduce ============
library(rmr2)
library(rhdfs)
hdfs.init()
rmr.options(backend = "local")
# Word count
ebookLocation <- "data/ullyses.txt"
m <- mapreduce(input = ebookLocation,
input.format = "text",
map = function(k, v){
words <- unlist(strsplit(v, split = "[[:space:][:punct:]]"))
words <- tolower(words)
words <- gsub("[0-9]", "", words)
words <- words[words != ""]
wordcount <- table(words)
keyval(
key = names(wordcount),
val = as.numeric(wordcount)
)
}
reduce = function(k, counts){
keyval(key = k,
val = sum(counts))
}
)
# Retrieve results and prepare to plot
x <- from.dfs(m)
dat <- data.frame(
word = keys(x),
count = values(x)
)
dat <- dat[order(dat$count, decreasing=TRUE), ]
head(dat, 50)
with(head(dat, 25), plot(count, names = word))
b. Logit regression data iris
# Create design matrix
iris2 <- transform(iris,
Virginica = Species == "virginica",
Species = NULL
)
dat <- cbind(Virginica = iris2$Virginica * 2 - 1,
model.matrix(Virginica ~ ., iris2)
)
str(dat)
head(dat)
# Send design matrix to dfs
hdp.iris2 <- to.dfs(dat)
hdp.iris2()
from.dfs(hdp.iris2)
model <- logistic.regression(hdp.iris2, dims = 5, iterations = 5, alpha = 0.1)
model
#Inspect confusion matrix
table(iris2$Virginica,
as.logical(round(
predict(model, iris2, type = "response")
, 2))
)
============ logit regression data Iris ============
iris2 <- transform(iris,
Setosa = Species == "virginica",
Species = NULL
)
model <- glm(Setosa ~ ., data = iris2, family = binomial)
table(iris2$Setosa,
as.logical(round(
predict(model, iris2, type = "response")
, 2))
)
gdescent <- function(input, iterations, dims, alpha){
plane = t(rep(0, dims))
M <- input
for (i in 1:iterations) {
# map
Y <- M[, 1]
X <- M[, -1]
map <- Y * X * plogis(-Y * as.numeric(X %*% t(plane)))
# reduce
gradient <- colSums(map)
plane <- plane + alpha * gradient
}
plane
}
library(ggplot2)
mean(diamonds$price)
quantile(diamonds$price)
glm(price > 5324 ~ ., data = diamonds, family = binomial)
iris2 <- transform(iris,
Virginica = Species == "versicolor",
Species = NULL
)
str(iris2)
dat <- cbind(Virginica = iris2$Virginica * 2 - 1,
model.matrix(Virginica ~ ., iris2)
)
gdescent(dat, dims = 5, iterations = 1000, alpha = 0.01)
coef(glm(Virginica ~ ., data = iris2, family = binomial))
============ logit regression mapreduce ============
library(ggplot2)
mean(diamonds$price)
quantile(diamonds$price)
glm(price > 5324 ~ ., data = diamonds, family = binomial)
iris2 <- transform(iris,
Virginica = Species == "versicolor",
Species = NULL
)
str(iris2)
dat <- cbind(Virginica = iris2$Virginica * 2 - 1,
model.matrix(Virginica ~ ., iris2)
)
gdescent(dat, dims = 5, iterations = 1000, alpha = 0.01)
coef(glm(Virginica ~ ., data = iris2, family = binomial))
library(rmr2)
rmr.options(backend = "local")
logistic.regression <- function(input, iterations, dims, alpha){
plane <- t(rep(0, dims))
g <- function(z) 1 / (1 + exp(-z))
lr.map <- function(., M) {
Y <- M[,1]
X <- M[,-1]
keyval(
1,
Y * X * g(-Y * as.numeric(X %*% t(plane)))
)
}
lr.reduce <- function(k, Z){
keyval(k, t(as.matrix(apply(Z, 2, sum))))
}
for (i in 1:iterations) {
x <- mapreduce(
input,
map = lr.map,
reduce = lr.reduce,
combine = TRUE
)
gradient <- values(from.dfs(x))
plane <- plane + alpha * gradient
}
plane
}
BAB III
PENUTUP
1. Rhadoop adalah kumpulan dari 3 R package yang memungkin kan pengguna
mengelola dan menganalisa data dengan Hadoop. R-Hadoop juga merupakan
proyek open source yang dikembangkan oleh Revolution Analytics yang
menyediakan integrasi client-side R dan hadoop. Hal ini memungkinkan
untuk menjalankan MapReduce dalam R seperti Rhipe.
2. Package Rhadoop ada 3 yaitu:
- rmr
- rhdfs
- rhbase
3. Kelebihan Rhadoop :
Untuk bisa memaksimalkan pengolahanbig data seperti yang ada saat ini, kita
dapat memanfaatkan aplikasi teknologi bernama R Hadoop. Walaupun R dan
Hadoop bukan teman alami namun dengan munculnya paket baru seperti
Rhadoop, RHIVE, dan RHIPE - dua teknologi yang tampaknya berbeda,
saling melengkapi untuk analisis data dan visualisasi yang besar. Hadoop
adalah teknologi big data untuk menyimpan data dengan jumlah besar dengan
biaya ekonomis dan bahasa pemrograman R adalah alat untuk analisis data
statistik dan visualisasi. R dan Hadoop digabungkan bersama-sama terbukti
menjadi alat yang penting dan tak ada bandingannya untuk beberapa analisis
big data bidang bisnis.
4. Kekurangan Rhadoop :
- Penggunaanya rumit karena harus terhubung dengan server.
- Bisa digunakan hanya dengan sistem operasi linux.
DAFTAR PUSTAKA
Virgillito Antonino 2016. Implementing MapReduce programs:RHadoop.
Avalaible at https://circabc.europa.eu/sd/a/6e9bc4ea-502b-4747-a82c-
9391fce49c4f/Day%203-01 RHadoop.pd f di akses tanggal 7 Mei 2017
Anonim 2013. Rhadoop Installation Guide for Red Hat Enterprise Linux. Avalaible at
https://s3.amazonaws.com/RHadoop/RHadoop2.0.2u2_Installation_Configura
tion_for_RedHat.pd f di akses tanggal 7 Mei 2017
Bogdan 2014. Intergrating R and Hadoop for Big Data Analysis. Avalaible at
http://www.revistadestatistica.ro/wp-content/uploads/2014/07/RRS_2_2014_a
08.pd f di akses tanggal 7 Mei 2017
Nemschoff Michele 2014. Installation Guide for Rhadoop on MAPR Now
Available. Avalaible at https://mapr.com/blog/installation-guide-rhadoop-
mapr-now-available/ di akses tanggal 7 Mei 2017
Anonim 2014. RHadoop – A Perfect Match for Big Data. Avalaible at
https://www.dezyre.com/article/r-hadoop-a-perfect-match-for-big-data/292 di
akses tanggal 7 Mei 2017
Anonim 2016. Index Of Docs. Avalaible at https://had oop.apache.org/docs/ di akses
tanggal 7 Mei 2017