What Is Apache Pig
What Is Apache Pig
What Is Apache Pig
To write data analysis programs, Pig provides a high-level language known as Pig Latin. This
language provides various operators using which programmers can develop their own functions
for reading, writing, and processing data.
To analyze data using Apache Pig, programmers need to write scripts using Pig Latin language.
All these scripts are internally converted to Map and Reduce tasks. Apache Pig has a component
known as Pig Engine that accepts the Pig Latin scripts as input and converts those scripts into
MapReduce jobs.
Programmers who are not so good at Java normally used to struggle working with Hadoop,
especially while performing any MapReduce tasks. Apache Pig is a boon for all such
programmers.
Using Pig Latin, programmers can perform MapReduce tasks easily without having to
type complex codes in Java.
Apache Pig uses multi-query approach, thereby reducing the length of codes. For
example, an operation that would require you to type 200 lines of code (LoC) in Java can
be easily done by typing as less as just 10 LoC in Apache Pig. Ultimately Apache Pig
reduces the development time by almost 16 times.
Pig Latin is SQL-like language and it is easy to learn Apache Pig when you are familiar
with SQL.
Apache Pig provides many built-in operators to support data operations like joins, filters,
ordering, etc. In addition, it also provides nested data types like tuples, bags, and maps that
are missing from MapReduce.
Features of Pig
Apache Pig comes with the following features −
Rich set of operators − It provides many operators to perform operations like join, sort,
filer, etc.
Ease of programming − Pig Latin is similar to SQL and it is easy to write a Pig script if
you are good at SQL.
Optimization opportunities − The tasks in Apache Pig optimize their execution
automatically, so the programmers need to focus only on semantics of the language.
Extensibility − Using the existing operators, users can develop their own functions to read,
process, and write data.
UDF’s − Pig provides the facility to create User-defined Functions in other programming
languages such as Java and invoke or embed them in Pig Scripts.
Handles all kinds of data − Apache Pig analyzes all kinds of data, both structured as well
as unstructured. It stores the results in HDFS.
Apache Pig Vs MapReduce
Listed below are the major differences between Apache Pig and MapReduce.
Listed below are the major differences between Apache Pig and SQL.
Pig SQL
The data model in Apache Pig is nested The data model used in SQL is
relational. flat relational.
Both Apache Pig and Hive are used to create MapReduce jobs. And in some cases, Hive operates
on HDFS in a similar way Apache Pig does. In the following table, we have listed a few
significant points that set Apache Pig apart from Hive.
Apache Pig Hive
Apache Pig uses a language called Pig Hive uses a language called HiveQL.
Latin. It was originally created It was originally created at Facebook.
at Yahoo.
Apache Pig can handle structured, Hive is mostly for structured data.
unstructured, and semi-structured data.
Apache Pig is generally used by data scientists for performing tasks involving ad-hoc processing
and quick prototyping. Apache Pig is used −
In 2006, Apache Pig was developed as a research project at Yahoo, especially to create and
execute MapReduce jobs on every dataset. In 2007, Apache Pig was open sourced via Apache
incubator. In 2008, the first release of Apache Pig came out. In 2010, Apache Pig graduated as
an Apache top-level project.
What is Hive
Hive is a data warehouse infrastructure tool to process structured data in Hadoop. It resides on
top of Hadoop to summarize Big Data, and makes querying and analyzing easy.
Initially Hive was developed by Facebook, later the Apache Software Foundation took it up and
developed it further as an open source under the name Apache Hive. It is used by different
companies. For example, Amazon uses it in Amazon Elastic MapReduce.
Hive is not
A relational database
Features of Hive
Architecture of Hive
HBase is a distributed column-oriented database built on top of the Hadoop file system. It is an
open-source project and is horizontally scalable.
HBase is a data model that is similar to Google’s big table designed to provide quick random
access to huge amounts of structured data. It leverages the fault tolerance provided by the
Hadoop File System (HDFS).
It is a part of the Hadoop ecosystem that provides random real-time read/write access to data in
the Hadoop File System.
One can store the data in HDFS either directly or through HBase. Data consumer reads/accesses
the data in HDFS randomly using HBase. HBase sits on top of the Hadoop File System and
provides read and write access.
HDFS HBase
HDFS is a distributed file system HBase is a database built on top of the HDFS.
suitable for storing large files.
HDFS does not support fast individual HBase provides fast lookups for larger tables.
record lookups.
It provides high latency batch It provides low latency access to single rows from billions of
processing; no concept of batch records (Random access).
processing.
It provides only sequential access of HBase internally uses Hash tables and provides random access,
data. and it stores the data in indexed HDFS files for faster lookups.
Cassandra has become so popular because of its outstanding technical features. Given below are
some of the features of Cassandra: