Memahami secara mendalam
Hadoop
Hadoop
adalah proyek open source dari Apache
yayasan. Ini adalah kerangka kerja yang ditulis Java
, awalnya dikembangkan oleh Doug Cutting pada tahun 2005. Ini dibuat untuk mendukung distribusi untuk Nutch
, mesin pencari teks. Hadoop
menggunakan Google Map Reduce
dan Teknologi Sistem File Google sebagai fondasinya.
Fitur Hadoop
- Ini dioptimalkan untuk menangani sejumlah besar data terstruktur, semi-terstruktur dan tidak terstruktur menggunakan perangkat keras komoditas.
- Ini tidak berbagi arsitektur apa pun.
- Ini mereplikasi datanya ke beberapa komputer sehingga jika salah satu turun, data masih dapat diproses dari mesin lain yang menyimpan replika.
Hadoop
untuk throughput tinggi daripada latensi rendah. Ini adalah operasi batch yang menangani sejumlah besar data; oleh karena itu waktu responsnya tidak langsung.
- Ini melengkapi Pemrosesan Transaksi Online dan Pemrosesan Analitik Daring. Namun, ini bukan pengganti untuk
RDBMS
.
- Itu tidak baik ketika pekerjaan tidak dapat diparalelkan atau ketika ada ketergantungan dalam data.
- Ini tidak baik untuk memproses file kecil. Ini bekerja paling baik dengan file data besar dan kumpulan data.
Versi Hadoop
Ada dua versi yang Hadoop
tersedia:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Ini memiliki dua bagian utama:
1. Kerangka Penyimpanan Data
Ini adalah sistem file tujuan umum yang disebut Sistem File Terdistribusi Hadoop ( HDFS
).
HDFS
skema-kurang
Ini hanya menyimpan file data dan file data ini bisa dalam format apa saja.
Idenya adalah untuk menyimpan file sedekat mungkin dengan bentuk aslinya.
Hal ini pada gilirannya memberikan keleluasaan dan kelincahan yang sangat dibutuhkan unit bisnis dan organisasi tanpa terlalu khawatir dengan apa yang dapat diimplementasikan.
2. Kerangka Pemrosesan Data
Ini adalah model pemrograman fungsional sederhana yang awalnya dipopulerkan oleh Google sebagai MapReduce
.
Ini pada dasarnya menggunakan dua fungsi: MAP
dan REDUCE
untuk memproses data.
"Pemeta" mengambil satu set pasangan nilai kunci dan menghasilkan data perantara (yang merupakan daftar pasangan nilai kunci lainnya).
"Pengecil" kemudian bertindak atas input ini untuk menghasilkan data output.
Kedua fungsi ini tampaknya bekerja secara terpisah satu sama lain, sehingga memungkinkan pemrosesan menjadi sangat terdistribusi dalam cara yang sangat paralel, toleransi kesalahan dan terukur.
Keterbatasan Hadoop 1.0
Keterbatasan pertama adalah persyaratan MapReduce
keahlian pemrograman.
Ini hanya mendukung pemrosesan batch yang walaupun cocok untuk tugas-tugas seperti analisis log, proyek penambangan data skala besar tetapi cukup banyak tidak cocok untuk jenis proyek lainnya.
Satu batasan utama adalah yang Hadoop 1.0
secara komputasional digabungkan dengan MapReduce
, yang berarti bahwa vendor manajemen data yang mapan meninggalkan dua pendapat:
Tulis ulang fungsionalitasnya MapReduce
sehingga dapat dieksekusi di Hadoop
atau
Mengekstrak data dari HDFS
atau memprosesnya di luar Hadoop
.
Tak satu pun dari opsi yang layak karena menyebabkan proses inefisiensi yang disebabkan oleh data yang dipindahkan masuk dan keluar dari Hadoop
cluster.
Hadoop 2.0
Dalam Hadoop 2.0
, HDFS
terus menjadi kerangka penyimpanan data.
Namun, kerangka kerja manajemen sumber daya baru dan terpisah disebut Y et Sebuah nother R eSource N egotiater ( BENANG ) telah ditambahkan.
Setiap aplikasi yang mampu membagi dirinya menjadi tugas-tugas paralel didukung oleh YARN.
YARN mengoordinasikan alokasi subtugas aplikasi yang diajukan, dengan demikian semakin meningkatkan fleksibilitas, skalabilitas, dan efisiensi aplikasi.
Ini bekerja dengan memiliki Master Aplikasi menggantikan Job Tracker , menjalankan aplikasi pada sumber daya yang diatur oleh Node Manager baru .
ApplicationMaster dapat menjalankan aplikasi apa pun dan bukan hanya MapReduce
.
Ini berarti tidak hanya mendukung pemrosesan batch tetapi juga pemrosesan waktu nyata. MapReduce
bukan lagi satu-satunya pilihan pemrosesan data.
Keuntungan dari Hadoop
Ini menyimpan data dalam bahasa aslinya dari. Tidak ada struktur yang dipaksakan saat memasukkan data atau menyimpan data. HDFS
skema kurang. Hanya kemudian ketika data perlu diproses bahwa struktur dikenakan pada data mentah.
Itu scalable. Hadoop
dapat menyimpan dan mendistribusikan dataset sangat besar di ratusan server murah yang beroperasi secara paralel.
Itu tangguh terhadap kegagalan. Hadoop
adalah toleransi kesalahan. Ini berlatih replikasi data dengan rajin yang berarti setiap kali data dikirim ke node apa pun, data yang sama juga akan direplikasi ke node lain di cluster, sehingga memastikan bahwa jika terjadi kegagalan node, akan selalu ada salinan data lain yang tersedia untuk digunakan.
Itu fleksibel. Salah satu keuntungan utama Hadoop
adalah dapat bekerja dengan semua jenis data: terstruktur, tidak terstruktur atau semi-terstruktur. Juga, pemrosesan sangat cepat Hadoop
karena paradigma "pindahkan kode ke data".
Ekosistem Hadoop
Berikut ini adalah komponen Hadoop
ekosistem:
HDFS : Hadoop
Sistem File Terdistribusi. Ini hanya menyimpan file data sedekat mungkin dengan bentuk aslinya.
HBase : Ini adalah basis data Hadoop dan membandingkannya dengan RDBMS
. Ini mendukung penyimpanan data terstruktur untuk tabel besar.
Hive : Ini memungkinkan analisis dataset besar menggunakan bahasa yang sangat mirip dengan standar ANSI SQL
, yang menyiratkan bahwa siapa pun yang familier SQL
harus dapat mengakses data pada sebuah Hadoop
cluster.
Babi : Ini adalah bahasa aliran data yang mudah dimengerti. Ini membantu dengan analisis dataset besar yang cukup sesuai Hadoop
. Pig
skrip secara otomatis dikonversi ke MapReduce
pekerjaan oleh Pig
penerjemah.
ZooKeeper : Ini adalah layanan koordinasi untuk aplikasi terdistribusi.
Oozie : Ini adalah schedular
sistem alur kerja untuk mengelola Hadoop
pekerjaan Apache .
Mahout : Ini adalah pembelajaran mesin dan data mining library yang dapat diukur.
Chukwa : Ini adalah sistem pengumpulan data untuk mengelola sistem terdistribusi besar.
Sqoop : Digunakan untuk mentransfer data massal antara Hadoop
dan penyimpanan data terstruktur seperti database relasional.
Ambari : Ini adalah alat berbasis web untuk penyediaan, pengelolaan, dan pemantauan Hadoop
cluster.
Sarang lebah
Hive
adalah alat infrastruktur data warehouse untuk memproses data terstruktur di Indonesia Hadoop
. Itu berada di atas Hadoop
untuk merangkum Big Data dan membuat kueri dan analisis mudah.
Sarang tidak
Database relasional
Desain untuk Pemrosesan Transaksi Online ( OLTP
).
Bahasa untuk kueri waktu-nyata dan pembaruan tingkat baris.
Fitur Hive
Ini menyimpan skema dalam database dan memproses data menjadi HDFS
.
Ini dirancang untuk OLAP
.
Ini menyediakan SQL
jenis bahasa untuk kueri yang disebut HiveQL
atau HQL
.
Itu lebih familier, cepat, terukur, dan dapat diperluas.
Arsitektur Sarang
Komponen-komponen berikut terkandung dalam Hive Architecture:
User Interface : Hive
adalah data warehouse
infrastruktur yang dapat membuat interaksi antara pengguna dan HDFS
. User Interfaces yang Hive
mendukung adalah Hive Web UI, Hive Command line dan Hive HD Insight (In Windows Server).
MetaStore : Hive
memilih masing database
servers
- masing untuk menyimpan skema atau Metadata
tabel, basis data, kolom dalam tabel, tipe data dan HDFS
pemetaannya.
Mesin Proses HiveQL : HiveQL
mirip dengan SQL
untuk menanyakan informasi skema di Internet Metastore
. Ini adalah salah satu pengganti pendekatan tradisional untuk MapReduce
program. Alih-alih menulis MapReduce
di Java
, kita dapat menulis permintaan untuk MapReduce
dan memprosesnya.
Exceution Engine : Bagian yang berhubungan dengan HiveQL
engine proses dan MapReduce
merupakan Hive
Execution Engine. Mesin eksekusi memproses kueri dan menghasilkan hasil yang sama dengan MapReduce results
. Ini menggunakan rasa MapReduce
.
HDFS atau HBase : Hadoop
Sistem File Terdistribusi atau HBase
teknik penyimpanan data untuk menyimpan data ke dalam sistem file.