Professional Documents
Culture Documents
100s of
? TBs of
millions of
GPS
enabled
devices
sold
annually
Data Volume
44x increase from 2009 2020
From 0.8 zettabytes to 35zb
Data volume is increasing exponentially
Exponential increase in
collected/generated data
Mobile devices
(tracking all objects all the time)
The progress and innovation is no longer hindered by the ability to collect data
But, by the ability to manage, analyze, summarize, visualize, and discover
knowledge from the collected data in a timely manner and in a scalable fashion
Product
Recommendations Learning why Customers
Influence
that are Relevant Behavior Switch to competitors
& Compelling and their offers; in
time to Counter
Friend Invitations
Improving the Customer to join a
Marketing Game or Activity
Effectiveness of a that expands
Promotion while it business
is still in Play
Preventing Fraud
as it is Occurring
& preventing more
proactively
Streaming Data
You can only scan the data once
Language evolution
Data availability
Sampling processes
Changes in characteristics of the data source
Old Model: Few companies are generating data, all others are consuming data
New Model: all of us are generating data, and all of us are consuming data
Each row can have its own set of column values. NoSQL
gives better performance in storing massive amount of
data.
A new approach is, we can keep all the data that we have, and we
can take that data and analyze it in new interesting ways. We can
do something that's called schema and read style.
And we can actually allow new analysis. We can bring more data
into simple algorithms, which has shown that with more
granularity, you can actually achieve often better results in taking
a small amount of data and then some really complex analytics on
it.
Big Data Computing Vu Pham Big Data Hadoop Stack
Apache Hadoop Framework
& its Basic Modules
Two major pieces of Hadoop are: Hadoop Distribute the File System and the
MapReduce, a parallel processing framework that will map and reduce data.
These are both open source and inspired by the technologies developed at
Google.
If we talk about this high level infrastructure, we start talking about things like
TaskTrackers and JobTrackers, the NameNodes and DataNodes.
Big Data Computing Vu Pham Big Data Hadoop Stack
HDFS
Hadoop distributed file system
The typical MapReduce engine will consist of a job tracker, to which client
applications can submit MapReduce jobs, and this job tracker typically pushes
work out to all the available task trackers, now it's in the cluster. Struggling to
keep the word as close to the data as possible, as balanced as possible.
Hadoop 2.0 provides a more general processing platform, that is not constraining to this
map and reduce kinds of processes.
The fundamental idea behind the MapReduce 2.0 is to split up two major functionalities
of the job tracker, resource management, and the job scheduling and monitoring, and
to do two separate units. The idea is to have a global resource manager, and per
application master manager.
Big Data Computing Vu Pham Big Data Hadoop Stack
What is Yarn ?
Yarn enhances the power of the Hadoop compute cluster, without
being limited by the map produce kind of framework.
It's scalability's great. The processing power and data centers
continue to grow quickly, because the YARN research manager
focuses exclusively on scheduling. It can manage those very large
clusters quite quickly and easily.
YARN is completely compatible with the MapReduce. Existing
MapReduce application end users can run on top of the Yarn without
disrupting any of their existing processes.
It does have a Improved cluster utilization as well. The resource
manager is a pure schedule or they just optimize this cluster
utilization according to the criteria such as capacity, guarantees,
fairness, how to be fair, maybe different SLA's or service level
agreements.
Scalability MapReduce Compatibility Improved cluster utilization
Had their original MapReduce, and they were storing and processing
large amounts of data.
Like to be able to access that data and access it in a SQL like
language. So they built the SQL gateway to adjust the data into the
MapReduce cluster and be able to query some of that data as well.
B1 B2 … Bn
Data replication:
Helps to handle hardware failures.
Try to spread the data, same piece of data on different nodes.
Basic Functions:
Manage the storage on the DataNode.
Read and write requests on the clients
Block creation, deletion, and replication is all based on instructions from
the NameNode.
Benefits:
Increase namespace scalability
Performance
Isolation
Heterogeneous Storage
and Archival Storage
ARCHIVE, DISK, SSD, RAM_DISK
So, if you remember the original design you have one name space and a bunch of
data nodes. So, the structure looks similar.
You have a bunch of NameNodes, instead of one NameNode. And each of those
NameNodes is essentially right into these pools, but the pools are spread out over the
data nodes just like before. This is where the data is spread out. You can gloss over
the different data nodes. So, the block pool is essentially the main thing that's
different.
Big Data Computing Vu Pham Big Data Enabling Technologies
HDFS Performance Measures
B1 B2 … Bn
B1 B2 … Bn
The other impact of this is the map tasks, each time they spin up
and spin down, there's a latency involved with that because you
are starting up Java processes and stopping them.
Solution:
Merge/Concatenate files
Sequence files
HBase, HIVE configuration
CombineFileInputFormat
Tuning parameters
Default replication is 3.
Parameter: dfs.replication
Tradeoffs:
Examples:
Dfs.datanode.handler.count (10): Sets the number of server
threads on each datanode
Dfs.namenode.fs-limits.max-blocks-per-file: Maximum number
of blocks per file.
Full List:
http://hadoop.apache.org/docs/current/hadoop-project-
dist/hadoop-hdfs/hdfs-default.xml
Mark the data. And any new I/O that comes up is not going to be sent to
that data node. Also remember that NameNode has information on all
the replication information for the files on the file system. So, if it knows
that a datanode fails which blocks will follow that replication factor.
Now this replication factor is set for the entire system and also you could
set it for particular file when you're writing the file. Either way, the
NameNode knows which blocks fall below replication factor. And it will
restart the process to re-replicate.
Task Tracker
Master node
Also known as Name Nodes in HDFS
Stores metadata
Might be replicated
Key Value
Welcome 1
Welcome Everyone Everyone 1
Hello Everyone Hello 1
Everyone 1
Input <filename, file text>
MAP TASK 1
Welcome 1
Welcome Everyone
Everyone 1
Hello Everyone
Hello 1
Everyone 1
Input <filename, file text>
MAP TASK 2
Welcome 1
Welcome Everyone
Everyone 1
Hello Everyone
Hello 1
Why are you here
I am also here Everyone 1
They are also here Why 1
Yes, it’s THEM!
Are 1
The same people we were thinking of
You 1
…….
Here 1
…….
Key Value
Welcome 1
Everyone 2
Everyone 1
Hello 1
Hello 1
Welcome 1
Everyone 1
map(key, value):
// key: document name; value: text of document
for each word w in value:
emit(w, 1)
reduce(key, values):
// key: a word; values: an iterator over counts
result = 0
for each count v in values:
result += v
emit(key, result)
Sort
Input: Series of (key, value) pairs
Output: Sorted <value>s
map(key, value):
// key: document name; value: text of document
for each word w in value:
emit(w, 1)
reduce(key, values):
// key: a word; values: an iterator over counts
result = 0
for each count v in values:
result += v
emit(key, result)
map(key=url, val=contents):
For each word w in contents, emit (w, “1”)
reduce(key=word, values=uniq_counts):
Sum all “1”s in values list
Emit result “(word, sum)”
see 1 bob 1
see bob run
bob 1 run 1
see spot throw
run 1 see 2
see 1 spot 1
spot 1 throw 1
throw 1
3:3
4:3
5:2
8:2
A -> B C D
B -> A C D E
C -> A B D E
D -> A B C E
E -> B C D
(A C) -> A B D E
(B C) -> A B D E And finally for map(E -> B C D):
(C D) -> A B D E
(C E) -> A B D E (B E) -> B C D
(C E) -> B C D
For map(D -> A B C E) :
(D E) -> B C D
(A D) -> A B C E
(B D) -> A B C E
(C D) -> A B C E
(D E) -> A B C E
(A B) -> (A C D E) (B C D)
(A C) -> (A B D E) (B C D)
(A D) -> (A B C E) (B C D)
(B C) -> (A B D E) (A C D E)
(B D) -> (A B C E) (A C D E)
(B E) -> (A C D E) (B C D)
(C D) -> (A B C E) (A B D E)
(C E) -> (A B D E) (B C D)
(D E) -> (A B C E) (B C D)
http://labs.google.com/papers/mapreduce.html
Overview of Spark
Fundamentals of Scala & functional programming
Spark concepts
Spark operations
Job execution
Statically typed
Comparable in speed to Java
But often no need to write types due to type inference
Factory method
Can’t hold primitive types
println(lst(5)) System.out.println(lst.get(5));
Action
messages.filter(lambda s: “foo” in s).count() Cache 2
Worker
messages.filter(lambda s: “bar” in s).count()
Cache 3
. . . Block 2
Worker
Result:
Result:
full-text
scaled
search
to 1 of
TBWikipedia
data in 5-7insec
<1 sec Block 3
(vs
(vs170
20 sec
secfor
foron-disk
on-diskdata)
data)
100 81
57 56 58 58 57 59 57 59
50
0
1 2 3 4 5 6 7 8 9 10
Iteration
“to” (to, 1)
(be, 2)
“to be or” “be” (be, 1)
(not, 1)
“or” (or, 1)
“not” (not, 1)
“not to be” (or, 1)
“to” (to, 1)
(to, 2)
“be” (be, 1)
words.reduceByKey(lambda x, y: x + y, 5)
words.groupByKey(5)
visits.join(pageViews, 5)
Some caveats:
Each task gets a new copy (updates aren’t sent back)
Variable must be Serializable (Java/Scala) or Pickle-able
(Python)
Don’t use fields of an outer object (ships all of it!)
where possible C: D: E:
Cache-aware data
join
reuse & locality
Stage 2 map filter Stage 3
Partitioning-aware to
avoid shuffles = RDD = cached partition
Scala resources:
www.artima.com/scalazine/articles/steps.html
(First Steps to Scala)
www.artima.com/pins1ed (free book)
Spark documentation: www.spark-
project.org/documentation.html
import spark.SparkContext
Scala
import spark.SparkContext._
import spark.SparkContext
import spark.SparkContext._
object WordCount {
def main(args: Array[String]) {
val sc = new SparkContext(“local”, “WordCount”, args(0), Seq(args(1)))
val lines = sc.textFile(args(2))
lines.flatMap(_.split(“ ”))
.map(word => (word, 1))
.reduceByKey(_ + _)
.saveAsTextFile(args(3))
}
}
import sys
from pyspark import SparkContext
if __name__ == "__main__":
sc = SparkContext( “local”, “WordCount”, sys.argv[0], None)
lines = sc.textFile(sys.argv[1])
1.0 1.0
1.0
0.5
0.5
1.0
0.58 1.0
0.58
0.5
0.29
0.58
0.39 1.72
...
0.58
0.46 1.37
0.73
ranks.saveAsTextFile(...)
http://spark.apache.org/
https://amplab.cs.berkeley.edu/
Input Output
Read
HDFS
Read Cache
Map Reduce
Big Data Computing Vu Pham Introduction to Spark
Solution: Resilient Distributed Datasets (RDDs)
Fault Recovery?
Lineage!
Log the coarse grained operation applied to a
partitioned dataset
Simply recompute the lost partition if failure occurs!
No cost if no failure
Read
HDFS
Read Cache
Map Reduce
Introduction to Spark
Read
Map Reduce
Control
Partitioning: Spark also gives you control over how you can
partition your RDDs.
https://spark.apache.org/
Action!
log:
HadoopRDD
path = hdfs://...
errors:
FilteredRDD
func = _.contains(…)
shouldCache = true
Task 1 Task 2 ...
source: https://cwiki.apache.org/confluence/display/SPARK/Spark+Internals
source: https://cwiki.apache.org/confluence/display/SPARK/Spark+Internals
script
http://cern.ch/kacper/spark.txt
or python interpreter
$ pyspark
Spark’s generality +
support“ for multiple
languages make it“
suitable to offer this
From Hive:
c = HiveContext(sc)
rows = c.sql(“select text, year from hivetable”)
rows.filter(lambda r: r.year > 2013).collect()
From JSON:
c.jsonFile(“tweets.json”).registerAsTable(“tweets”)
c.sql(“select text, user.name from tweets”)
But distributed.
Joins infrequent
Tables
“Column families” in Cassandra, “Table” in HBase,
“Collection” in MongoDB
Like RDBMS tables, but …
May be unstructured: May not have schemas
• Some columns may be missing from some rows
Don’t always support joins or have foreign keys
Can have index tables, just like RDBMSs
N80 N45
Client Coordinator
Backup replicas for
key K13
Cassandra uses a Ring-based DHT but without
finger tables or routing
Key→server mapping is the “Partitioner”
Big Data Computing Vu Pham Design of Key-Value Stores
Data Placement Strategies
Cassandra
Eventual (weak) consistency, Availability, Partition-
tolerance
Traditional RDBMSs
Strong consistency over availability under a partition
Red-Blue
Causal Probabilistic
Red-Blue
Causal Probabilistic
Red-Blue
Causal Probabilistic
https://zookeeper.apache.org/
Big Data Computing Vu Pham Design of Zookeeper
ZooKeeper, why do we need it?
Coordination is important
Most of the system like HDFS have one Master and couple of
slave nodes and these slave nodes report to the master.
Big Data Computing Vu Pham Design of Zookeeper
Fault Tolerant Distributed System
Person B
Person A
Bank
Process 1 Process 2
The servers
• Know each other
•Keep in-memory image of State
•Transaction Logs & Snapshots - persistent
The number:
Reflects the order of transactions.
used implement higher-level abstractions, such as
synchronization primitives.
Ephemeral
Ephermal node gets deleted if the session in which the
node was created has disconnected. Though it is tied to
client's session but it is visible to the other users.
(i) Standalone:
In standalone mode, it is just running on one machine and
for practical purposes we do not use stanalone mode.
This is only for testing purposes.
It doesn't have high availability.
(ii) Replicated:
Run on a cluster of machines called an ensemble.
High availability
Tolerates as long as majority.
Big Data Computing Vu Pham Design of Zookeeper
Architecture: Phase 1
Phase 1: Leader election (Paxos
Algorithm) Ensemble
The machines elect a distinguished
member - leader.
The others are termed followers.
This phase is finished when majority
sync their state with leader.
If leader fails, the remaining
machines hold election. takes
200ms.
If the majority of the machines
aren't available at any point of time,
the leader automatically steps
down.
Big Data Computing Vu Pham Design of Zookeeper
Architecture: Phase 2
Phase 2: Atomic broadcast 3 out of 4
have saved
All write requests are forwarded to
the leader,
Client
Leader broadcasts the update to
the followers Write Write
When a majority have persisted the Successful
change:
Leader
The leader commits the up-date
The client gets success
response.
The protocol for achieving
consensus is atomic like two-phase Follower Follower
commit.
Machines write to disk before in- Follower Follower
memory
Big Data Computing Vu Pham Design of Zookeeper
Election in Zookeeper
Centralized service for maintaining configuration
information
Reference: http://zookeeper.apache.org/
Master
N80 N3
Each process monitors its next-
higher id process
if that successor was the N32
Monitors
leader and it has failed N5
• Become the new leader
else
• wait for a timeout, and check N12 N6
your successor again.
Yes. Either B or C.
Z
Servers o Clients
o
k
e
e
p
e
r
Big Data Computing Vu Pham Design of Zookeeper
Use Case: Many Servers How do they Coordinate?
From time to time some of the servers will keep going
down. How can all of the clients can keep track of the
available servers?
Z
Servers o Clients
o
k
e
e
p
e
r
Big Data Computing Vu Pham Design of Zookeeper
Use Case: Many Servers How do they Coordinate?
It is very easy using zookeeper as a centeral agency. Each
server will create their own ephermal znode under a particular
znode say "/servers". The clients would simply query
zookeeper for the most recent list of servers.
Available Servers ?
Z
Servers o Clients
o
k
e
e
p
e
r
Big Data Computing Vu Pham Design of Zookeeper
Use Case: Many Servers How do they Coordinate?
Lets take a case of two servers
and a client. The two server
duck and cow created their
ephermal nodes under
"/servers" znode. The client
would simply discover the alive
servers cow and duck using
command ls /servers.
Say, a server called "duck" is
down, the ephermal node will
disappear from /servers znode
and hence next time the client
comes and queries it would only
get "cow". So, the coordinations
has been made heavily
simplified and made efficient
because of ZooKeeper.
Big Data Computing Vu Pham Design of Zookeeper
Guarantees
Sequential consistency
Updates from any particular client are applied in the order
Atomicity
Updates either succeed or fail.
Single system image
A client will see the same view of the system, The new server will
not accept the connection until it has caught up.
Durability
Once an update has succeeded, it will persist and will not be
undone.
Timeliness
Rather than allow a client to see very stale data, a server will shut
down,
OPERATION DESCRIPTION
create Creates a znode (parent znode must exist)
delete Deletes a znode (mustn’t have children)
exists/ls Tests whether a znode exists & gets metadata
getACL, Gets/sets the ACL for a znode
setACL getChildren/ls Gets a list of the children of a znode
getData/get, Gets/sets the data associated with a znode
setData
sync Synchronizes a client’s view of a znode with
ZooKeeper
Synch:
Public Stat exists (String path, Watcher watcher) throws KeeperException,
InterruptedException
Asynch:
Public void exists (String path, Watcher watcher, StatCallback cb, Object ctx
WATCH OF …ARE
WHEN ZNODE IS…
TRIGGERED
exists created, deleted, or its data updated.
getData deleted or has its data updated.
deleted, or its any of the child is created or
getChildren
deleted
Authentication Scheme
digest - The client is authenticated by a username & password.
sasl - The client is authenticated using Kerberos.
ip - The client is authenticated by its IP address.
See: https://zookeeper.apache.org/
What is HBase?
HBase Architecture
HBase Components
Data model
HBase Storage Hierarchy
Cross-Datacenter Replication
Auto Sharding and Distribution
Bloom Filter and Fold, Store, and Shift
Big Data Computing Vu Pham Design of HBase
HBase is:
An opensource NOSQL database.
A distributed column-oriented data store that can scale
horizontally to 1,000s of commodity servers and petabytes
of indexed storage.
Designed to operate on top of the Hadoop distributed file
system (HDFS) for scalability, fault tolerance, and high
availability.
Hbase is actually an implementation of the BigTable
storage architecture, which is a distributed storage system
developed by Google.
Works with structured, unstructured and semi-structured
data.
Tables are divided into sequences of rows, by key range, called regions.
These regions are then assigned to the data nodes in the cluster called
“RegionServers.”
HDFS
HFile
SSTable from Google’s BigTable
Big Data Computing Vu Pham Design of HBase
HFile
Key Value Row Row Col Family Col Family Col Timestamp Key Value
length length length length Qualifier type
HBase Key
HLog
Write to HLog before writing to MemStore
Helps recover from failure by replaying Hlog.
Website monitoring
Fraud detection
Ad monetization
- Website statistics
- etc.
Website monitoring
Scales Fraud
to hundreds
detectionof nodes
Ad monetization
Achieves second-scale latencies
Stream Processing
Ability to ingest, process and analyze data in-motion in real- or near-
real-time
Event or micro-batch driven, continuous evaluation and long-lived
processing
Enabler for real-time Prospective, Proactive and Predictive Analytics
for Next Best Action
Stream Processing + Batch Processing = All Data Analytics
real-time (now) historical (past)
Storm
Replays record if not processed by a node
Processes each record at least once
May update mutable state twice!
Mutable state can be lost due to failure!
tweets DStream
new DStream transformation: modify data in one DStream to create another DStream
tweets DStream
hashTags Dstream
…
[#cat, #dog, … ] new RDDs created
for every batch
every batch
saved to HDFS
Scala
val tweets = ssc.twitterStream()
val hashTags = tweets.flatMap(status => getTags(status))
hashTags.saveAsHadoopFiles("hdfs://...")
Java
JavaDStream<Status> tweets = ssc.twitterStream()
JavaDstream<String> hashTags = tweets.flatMap(new Function<...> { })
hashTags.saveAsHadoopFiles("hdfs://...")
Function object
replicated in memory of
multiple worker nodes, hashTags
lost partitions
RDD
therefore fault-tolerant recomputed on
other workers
…
reduceByKey reduceByKey reduceByKey
tagCounts
[(#cat, 10), (#dog, 25), ... ]
sliding window
window length sliding interval
operation
window length
DStream of data
sliding interval
countByValue
tagCounts count over all
the data in the
window
moods = tweetsByUser.updateStateByKey(updateMood _)
tweets.transform(tweetsRDD => {
tweetsRDD.join(spamHDFSFile).filter(...)
})
CEP-style processing
window-based operations (reduceByWindow, etc.)
flatMap
7 3.5
WordCount
Cluster Thhroughput (GB/s)
Grep WordCount
60 30
Spark
(MB/s)
Spark
(MB/s)
40 20
20 10 Storm
Storm
0 0
100 1000 100 1000
Record Size (bytes) Record Size (bytes)
2000
▪ Markov-chain Monte Carlo
observations 1200
800
▪ Very CPU intensive, requires
400
dozens of machines for useful
computation 0
0 20 40 60 80
# Nodes in Cluster
▪ Scales linearly with cluster size
realtime processing }
For (2) specifying a window spec, there are three components: partition by, order by, and
frame.
1. “Partition by” defines how the data is grouped; in the above example, it was by
customer. You have to specify a reasonable grouping because all data within a group will
be collected to the same machine. Ideally, the DataFrame has already been partitioned by
the desired grouping.
2. “Order by” defines how rows are ordered within a group; in the above example, it
was by date.
3. “Frame” defines the boundaries of the window with respect to the current row; in
the above example, the window ranged between the previous row and the next row.
https://spark.apache.org/streaming/
https://databricks.com/speaker/tathagata-das
Define Kafka
Kafka architecture
Importance of brokers
Big Data Computing Vu Pham Introduction to Kafka
Batch vs. Streaming
Batch Streaming
Brokers are the Kafka processes that process the messages in Kafka.
We will also discuss tools and algorithms that you can use to
create machine learning models that learn from data, and to scale
those models up to big data problems.
Sentiment analysis
Climate monitoring
Classification
Regression
Cluster Analysis
Association Analysis
For example, during the prepare step, we may find some data
quality issues that may require us to go back to the acquire
step to address some issues with data collection or to get
additional data that we didn't include in the first go around.
Prepare
Analyze
Report
Act
After you've identified your data and data sources, the next step is to
collect the data and integrate data from the different sources. This
may require conversion, as data can come in different formats. And it
may also require aligning the data, as data from different sources
may have different time or spatial resolutions. Once you’ve collected
and integrated your data, you now have a coherent data set for your
analysis.
For example, if the range of the values for age in your data includes
negative numbers, or a number much greater than a hundred,
there's something suspicious in the data that needs to be examined
Big Data Computing Vu Pham Big Data Machine Learning
Visualize Your Data
Visualization techniques also provide
quick and effective ways to explore your
data. Some examples are, a histogram,
such as the plot shown here, shows the
distribution of the data and can show
skewness or unusual dispersion in
outliers.
A line plot, like the one in the lower left,
can be used to look at trends in the data,
such as, the change in the price of a
stock. A heat map can give you an idea of
where the hot spots are.
A scatter plot effectively shows
correlation between two variables.
Overall, there are many types of plots to
visualize data. They are very useful in
helping you understand the data you
have.
Big Data Computing Vu Pham Big Data Machine Learning
Step-2-B: Pre-Process
The second part of the prepare step is preprocess. So, after
we've explored the data, we need to preprocess the data to
prepare it for analysis.
The goal here is to create the data that will be used for
analysis.
The main activities on this part are to clean the data, select the
appropriate variables to use and transform the data as needed.
The analyze steps starts with this determining the type of problem
you have. You begin by selecting appropriate machine learning
techniques to analyze the data.
Then you construct the model using the data that you've prepared.
Once the model is built, you will want to apply it to new data
samples to evaluate how well the model performs. Thus data analysis
involves selecting the appropriate technique for your problem,
building the model, then evaluating the results.
Big Data Computing Vu Pham Big Data Machine Learning
Step-4: Report
The next step in the machine learning process is reporting results from your
analysis. In reporting your results, it is important to communicate your
insights and make a case for what actions should follow.
In reporting your results, you will want to think about what to present, as
well as how to present. In deciding what to present, you should consider
what the main results are, what insights were gained from your analysis,
and what added value do these insights bring to the application.
Keep in mind that even negative results are valuable lessons learned, and
suggest further avenues for additional analysis. Remember that all findings
must be presented so that informs decisions can be made for next steps.
In deciding how to present, remember that visualization is an important
tool in presenting your results.
Plots and summary statistics discussing the explore step can be used
effectively here as well. You should also have tables with details from your
analysis as backup, if someone wants to take a deeper dive into the results.
In summary, you want to report your findings by presenting your results and
the value added with graphs using visualization tools.
Big Data Computing Vu Pham Big Data Machine Learning
Step-5: Act
The final step in the machine loading process is to determine what action
should be taken based on the insights gained.
What action should be taken based on the results of your analysis? Should
you market certain products to a specific customer segment to increase
sales? What inefficiency is can be removed from your process? What
incentives would be effective in attracting new customers?
Once a specific action has been determined, the next step is to implement
the action. Things to consider here include, how can the action be added to
your application? How will end users be affected?
Since the test error indicates how well your model generalizes
to new data, note that the test error is also called
generalization error.
This means that the model has learned to model the noise in
the training data, instead of learning the underlying structure
of the data.
A classifier that performs well on just the training data set will
not be very useful. So it is essential that the goal of good
generalization performance is kept in mind when building a
model.
The training set is used to train the model as before and the
validation set is used to determine when to stop training the
model to avoid overfitting, in order to get the best
generalization performance.
Holdout method
Random subsampling
Leave-one-out cross-validation
Here, for each iteration the validation set has exactly one sample. So
the model is trained to using N minus one samples and is validated
on the remaining sample.
The rest of the process works the same way as regular k-fold cross-
validation.
The training dataset is used to train the model, that is to adjust the
parameters of the model to learn the input to output mapping.
The test data set is used to evaluate the performance of the model
on new data.
non-fiction
children’s
Label of closest
cluster used to
classify new sample
Label of closest
cluster used to
classify new sample
Repeat
Assign each sample to closest centroid
Calculate mean of cluster to determine new centroid
Solution:
Run k-means multiple times with different random
initial centroids, and choose best results
Caveats:
Does not mean that cluster set 1 is more ‘correct’ than
cluster set 2
• Data-Driven: There are also data-driven method for determining the value
of k. These methods calculate symmetric for different values of k to determine the
best selections of k. One such method is the elbow method.
Big Data Computing Vu Pham Machine Learning Classification Algorithm
Elbow Method for Choosing k
“Elbow” suggests
value for k should be 3
The elbow method for determining the value of k is shown on this plot. As we saw in the
previous slide, WSSE, or within-cluster sum of squared error, measures how much data
samples deviate from their respective centroids in a set of clustering results. If we plot WSSE
for different values for k, we can see how this error measure changes as a value of k changes
as seen in the plot. The bend in this error curve indicates a drop in gain by adding more
clusters. So this elbow in the curve provides a suggestion for a good value of k.
Note that the elbow can not always be unambiguously determined, especially for complex
data. And in many cases, the error curve will not have a clear suggestion for one value, but
for multiple values. This can be used as a guideline for the range of values to try for k.
Big Data Computing Vu Pham Machine Learning Classification Algorithm
Stopping Criteria
When to stop iterating ?
• No changes to centroids: How do you know when to stop
iterating when using k-means? One obviously stopping criterion is when
there are no changes to the centroids. This means that no samples would
change cluster assignments. And recalculating the centroids will not result
in any changes. So additional iterations will not bring about any more
changes to the cluster results.
• Number of samples changing clusters is below
threshold: The stopping criterion can be relaxed to the second
stopping criterion: which is when the number of sample changing clusters
is below a certain threshold, say 1% for example. At this point, the
clusters are changing by only a few samples, resulting in only minimal
changes to the final cluster results. So the algorithm can be stopped here.
Average Ratings
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Decision Trees
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Predict if Sachin will play cricket
Consider the following data set
our task is to predict if Sachin is
going to play cricket on a given day.
We have observed Sachin over a
number of days and recorded
various things that might influence
his decision to play cricket so we
looked at what kind of weather it is.
Is it sunny or is it raining humidity
is it high as normal is it windy
So this is our training set and these
are the examples that we are going
to build a classifier from.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Predict if Sachin will play cricket
So on day 15 if it's raining the
humidity is high it's not very windy
so is Sachin going to play or not
and just by looking at the data it's
kind of hard to it's it's kind of hard
to decide right because it's you
know some days when it's raining
Sachin is playing other days Sachin
is not playing sometimes he plays
with strong winds sometimes he
doesn't play with strong winds and
with weak winds life so what do
you do how do you predict it and
the basic idea behind decision
trees is try to at some level
understand why Sachin plays.
so this is the only classifier that
that will cover that tries to predict
Sachin playing in this way.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Predict if Sachin will play cricket
Hard to guess
Try to understand
when Sachin plays
Divide & conquer:
Split into subsets
Are they pure ?
(all yes of all no)
If yes: stop
If not: repeat
See which subset
new data falls into
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
ID3 Algorithm
In decision tree learning, ID3 (Iterative Dichotomiser 3) is an algorithm
invented by Ross Quinlan used to generate a decision tree from a
dataset. ID3 is the precursor to the C4.5 algorithm, and is typically used
in the machine learning and natural language processing domains.
Split (node, {examples}):
1. A the best attribute for splitting the {examples}
2. Decision attribute for this node A
3. For each value of A, create new child node
4. Split training {examples} to child nodes
5. For each child node / subset:
• if subset is pure: STOP
• else: Split (child_node, {subset})
Ross Quinlan (ID3: 1986), (C4.5:1993)
Breimanetal (CaRT:1984) from statistics
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Which attribute to split on ?
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Entropy
Entropy: H(S)= - p(+) log2 p(+) - p(-) log2 p(-) bits
S … subset of training examples
p(+) / p(-)…% of positive/negative examples in S
Interpretation: assume item X belongs to S
How many bits need to tell if X positive or negative
Impure (3 yes / 3 no):
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Information Gain
Want many items in pure sets
Expected drop in entropy after split:
Mutual Information
-between attribute A
and class labels of S
Gain (S, Wind)
= H(S) - 8/14 * H(Sweak) - 6/14 * H(Sstrong)
= 0.94- 8/14 * 0.81 - 6/14 * 1.0
= 0.049
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Decision Trees for Regression
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
How to grow a decision tree
The tree is built greedily from top to bottom
Each split is selected to maximize information
gain (IG)
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Decision Tree for Regression
Given a training set: Z= {(x1,y1),…,(xn,yn)}
yi-real values
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
How to find the best split
A tree is built from top to
bottom. And at each step, you
should find the best split in
the internal node. You get a
test dataset Z. And here is a
splitting criteria xk less than t
or xk is greater or equal than
a threshold t. The problem is
how to find k, the number of
feature and the threshold t.
And also you need to find
values in leaves aL and aR.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
What happens without a split?
What happens without a split?
Without a split, the best you can do
is to predict one number, ‘a’. It
makes sense to select such a
number ‘a’ to minimize the squared
error.
It is very easy to prove that such
variable a equals an average of all
yi.
Thus you need to calculate the
average value of all the targets.
Here ā (a-hat)denotes the average
value.
Impurity z equals the mean squared
error if we use ā (a-hat) as a
prediction.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Find the best split (xk < t)
What happens if you make some
split by a condition xk < t? For some
part of training objects ZL, you have
x_k < t. For other part ZR holds
xk ≥ t.
The error consists of two parts for
ZL and ZR respectively. So here we
need to find simultaneously k, t, aL
and aR.
We can calculate the optimal aL and
aR exactly the same way as we did
for the case without a split. We can
easily prove that the optimal aL
equals an average of all targets
which are the targets of objects
which get to the leaf. And we will
denote these values by a-hat L and
a-hat R respectively.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Find the best split
After this step we only
need to find optimal
k and t. We have formulas
for impurity, for objects
which get to the left
branch of our splitting
condition and to the
right. Then you can find
the best splitting criteria
which maximizes the
information gain. This
procedure is done
iteratively from top to
bottom.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Stopping rule
The node depth is equal to the maxDepth training
parameter.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Summary: Decision Trees
Automatically handling interactions of features: The benefits of decision
tree is that this algorithm can automatically handle interactions or
features because it can combine several different features in a single
decision tree. It can build complex functions involving multiple splitting
criteria.
Interpretability: You can visualize the decision tree and analyze this
splitting criteria in nodes, the values in leaves, and so one. Sometimes it
might be helpful.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Building a tree using
MapReduce
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Problem: Building a tree
Given a large dataset with FindBestSplit
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
MapReduce
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
PLANET
Parallel Learner for Assembling Numerous
Ensemble Trees [Panda et al., VLDB ‘09]
A sequence of MapReduce jobs that build a
decision tree
Setting:
Hundreds of numerical (discrete & continuous)
attributes
Target (class) is numerical: Regression
Splits are binary: Xj < v
Decision tree is small enough for each
Mapper to keep it in memory
Data too large to keep in memory
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
A
PLANET Architecture B
D
C
E
F G H I
Master
Model Attribute
metadata
Intermediate
results
Input
data
FindBestSplit
InMemoryGrow
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
A
PLANET Overview B
D
C
E
F G H I
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
A
PLANET Overview B
D
C
E
F G H I
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
A
PLANET: Components B
D
C
E
F G H I
Master
Monitors everything (runs multiple MapReduce jobs)
Three types of MapReduce jobs:
(1) MapReduce Initialization (run once first)
For each attribute identify values to be considered for splits
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Example: Medical Application
using a Decision Tree in Spark
ML
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Create SparkContext and SparkSession
This example will be about using Spark ML for doing classification and
regression with decision trees, and in samples of decision trees.
First of all, you are going to create SparkContext and SparkSession, and
here it is.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Download a dataset
Now you are downloading a dataset which is
about breast cancer diagnosis, here it is.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Exploring the Dataset
Let's explore this dataset a little bit. The first column is ID of observation. The
second column is the diagnosis, and other columns are features which are
comma separated. So these features are results of some analysis and
measurements. There are total 569 examples in this dataset. And if the
second column is M, it means that it is cancer. If B, means that there is no
cancer in a particular woman.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Exploring the Dataset
First of all you need to transform the label, which is either M or B from the second
column. You should transform it from a string to a number. We use a StringIndexer
object for this purpose, and first of all you need to load all these datasets. Then you
create a Spark DataFrame, which is stored in the distributed manner on cluster.
Vu Pham
Exploring the Dataset
inputDF DataFrame has two columns, label and features. Okay, you use an object
vector for creating a vector column in this dataset, and then you can do string
indexing. So Spark now enumerates all the possible labels in a string form, and
transforms them to the label indexes. And now label M is equivalent 1, and B label is
equivalent 0.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Train/Test Split
We can start doing the machine learning right now. First of all, you make training test
splitting in the proportion 70% to 30%. And the first model you are going to evaluate is
one single decision tree.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Train/Test Split
We are making import DecisionTreeClassifier object. We create a class which is
responsible for training, and we call the method fit to the training data, and obtain a
decision tree model.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Train/Test Split
Number of nodes and depths of decision tree, feature importances, total number of
features used in this decision tree, and so on.
We can even visualize this decision tree and explore it, and here is a structure of this
decision tree. Here are splitting conditions If and Else, which predict values and leaves
of our decision trees.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Train/Test Split
Now we are applying a decision tree model to the test data, and obtain predictions.
And you can explore these predictions. The predictions are in the last column.
And in this particular case, our model always predicts zero class.
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Predictions
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Predictions
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Accuracy
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Conclusion
Big Data Computing Vu Pham Decision Trees for Big Data Analytics
Big Data Predictive Analytics
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
3 1
1 2 3 4 5
3 1 5
1 2 3 4 5
3 1 5 5
1 2 3 4 5
3 1 5 5 2
1 2 3 4 5
Original Dataset
3 1 5 5 2
Bootstrap Dataset
Most of situations with any machine learning method in the core, the
quality of such aggregated predictions will be better than of any
single prediction.
In the real situation, the training data set may be a user behavior in
Internet, for example, web browsing, using search engine, doing
clicks on advertisement, and so on.
If you can repeat the same experiment in the same conditions, the
measurements actually will be different because of the noise in
measurements, and since user behavior is essentially stochastic and
not exactly predictable. Now, you understand that the training data
set itself is random.
Big Data Computing Vu Pham Predictive Analytics
Why does Bagging work ?
Boosting-Minimization in
the functional space
n=8 1 2 3 4 5 6 7 8
k=4 7 3 1 3
Abstractions
Scalable Systems
Algorithms
Abstractions
Hadoop & GraphLab, Bosen, DMTK,
Spark Tensorflow ParameterServer.org
Vu Pham
ML Systems Landscape
Shared Memory
Dataflow Systems Graph Systems Systems
Model
Implemented
with Parameter
Server
Worker Server
Machines Machines
Worker Server
Machines Machines
w1 w2 w3 w4 w5 w6 w7 w8 w9
w1 w2 w3 w4 w5 w6 w7 w8 w9
Model
2. add(key, delta)
Model Model
Big Data Computing Vu Pham Parameter Servers
Iteration in Map-Reduce (IPM)
Initial Learned
Model Map Reduce Model
w(0)
w(1)
Training
Data
w(2)
w(3)
Big Data Computing Vu Pham Parameter Servers
Cost of Iteration in Map-Reduce
Initial Learned
Model Map Reduce Model
w(0)
w(1)
Training
Data
Repeatedly
Read 2 w(2)
load same data
w(3)
Big Data Computing Vu Pham Parameter Servers
Cost of Iteration in Map-Reduce
Initial Learned
Model Map Reduce Model
w(0)
w(1)
Training
Redundantly save
Data
w(3)
Big Data Computing Vu Pham Parameter Servers
Parameter Servers
Stale Synchronous Parallel Model
Worker Server
Machines Machines
Model
Data Worker Parameters
get(key)
add(key, delta)
Worker Server
Machines Machines
Data
Data Data
Server
Data Data
Data
Sparse Changes
to Model Data
Data Data
Server
Data Data
Data
Data
Data Data
Server
Data Data
Data
Barrier Barrier
[Smola et al 2010]
Big Data Computing Vu Pham Parameter Servers
Asynchronous Execution
Problem:
Async lacks theoretical guarantee as distributed
environment can have arbitrary delays from
network & stragglers
But….
• τ controls “staleness”
Bounded
Asynchronous
0 1 2 3 4 5 6 7 Clock
[Ho et al 2013]
Big Data Computing Vu Pham Parameter Servers
Conclusion
Human connectome.
Gerhard et al., Frontiers in
Neuroinformatics 5(3), 2011
Big Data Computing Vu Pham Page Rank
What is PageRank?
Why is Page Importance Rating important?
New challenges for information retrieval on the World Wide Web.
• Huge number of web pages: 150 million by1998
1000 billion by 2008
• Diversity of web pages: different topics, different quality, etc.
What is PageRank?
• A method for rating the importance of web pages objectively and
mechanically using the link structure of the web.
• History:
– PageRank was developed by Larry Page (hence the name Page-Rank) and
Sergey Brin.
– It is first as part of a research project about a new kind of search engine.
That project started in 1995 and led to a functional prototype in 1998.
Big Data Computing Vu Pham Page Rank
PageRank of E denotes by PR (E)
Title PR
Raw Text
Wikipedia Table
Title Body
Term-Doc Topic Model
<</ />> Graph (LDA)
</> Word Topics
XML
Word Topic
Rank of
user i Weighted sum of
neighbors’ ranks
Model / Alg.
State
Scatter information to
neighboring vertices
Big Data Computing Vu Pham GraphX
Many Graph-Parallel Algorithms
Collaborative Filtering Community Detection
Alternating Least Squares Triangle-Counting
Stochastic Gradient Descent K-core Decomposition
Tensor Factorization K-Truss
Structured Prediction Graph Analytics
Loopy Belief Propagation PageRank
Max-Product Linear Personalized PageRank
Programs Shortest Path
Gibbs Sampling Graph Coloring
Semi-supervised ML Classification
Graph SSL Neural Networks
CoEM
oogle
oogle
Mahout/Hadoop 1340
GraphLab 22
Title PR
Raw Text
Wikipedia Table
Title Body
Term-Doc Topic Model
<</ />> Graph (LDA)
</> Word Topics
XML
Word Topic
Row
Result
Row
Row
<</ />>
</>
XML
A A B
B A C A C
C B C B C
D C D C D
mapF( A B ) A1
A
mapF( A C ) A2
D E
reduceF( A1 , A2 ) A
.vertices
D 19 E 75
F
16
Part. 1
A B
A A 1 2
B C A C
B B 1 B C
A D C D
A
2D Vertex Cut Heuristic
D C C 1
A D
A E
D D 1 2
A F
E E
F E
2
E D
Part. 2 F F 2 E F
Big Data Computing Vu Pham
Caching for Iterative mrTriplets
Vertex Table Edge Table
(RDD) (RDD)
Mirror A B
Cache
AA
A A C
B
BB B C
C
D C D
C
C
Mirror
Cache
A E
D
D
A A F
EE D
E E D
FF F E F
Vu Pham
Incremental Updates for Iterative mrTriplets
Vertex Table Edge Table
(RDD) (RDD)
Mirror A B
Cache
Change A
A A C
B
B B C
C
D C D
C
Mirror
Cache
A E
D
A A F
Scan
Change E D
E E D
F F E F
Vu Pham
Aggregation for Iterative mrTriplets
Vertex Table Edge Table
(RDD) (RDD)
Mirror A B
Cache
Change A
A A C
Local
B
Change B Aggregate B C
C
D C D
Change C
Mirror
Cache
A E
Change D
A A F
Local
Scan
Change E D
Aggregate
E E D
Change F F E F
Vu Pham
Reduction in Communication Due to Cached Updates
1000
100
10
Most vertices are within 8 hops
1
of all vertices in their comp.
0.1
0 2 4 6 8 10 12 14 16
Iteration
Indexed
20
15 Scan All Edges
10
Index of “Active” Edges
5
0
0 2 4 6 8 10 12 14 16
Iteration
10000
5000
Mahout/Hadoop 1340
Naïve Spark 354
Giraph 207
GraphX 68
GraphLab 22
GraphX 451
Graph… 203
<</ />>
</>
XML
HDFS HDFS
Spark 1492
Giraph + Spark 605
GraphX 342
GraphLab + Spark 375
GraphX (3575)
Spark
8
10
100000
10000
1000
100
10
1
0 10 20 30 40 50 60 70
Number of Updates
Big Data Computing Vu Pham GraphX
Graphs are Essential to Data Mining and
Machine Learning
Find communities
f(j)
≈ Users
Iterate:
Liberal ? ? Conservative
?
?
? ?
?
? Post
Post
?
?
Post Post
? Post Post
? Post
Post
Post Post ?
?
Post
? ?
? ?
? Post Post ?
? ? ? ?
? ? ?
Belief Propagation
?
2 3
1
4
</>
</>
</>
XML
Raw
ETL Slice Compute Analyze
Data
Initial Subgraph PageRank Top
Graph Users
Repeat GraphX
Big Data Computing Vu Pham
References
Xin, R., Crankshaw, D., Dave, A., Gonzalez, J., Franklin, M.J.,
& Stoica, I. (2014). GraphX: Unifying Data-Parallel and
Graph-Parallel Analytics. CoRR, abs/1402.2394.
http://spark.apache.org/graphx
Big Data Computing Vu Pham GraphX
Conclusion
The growing scale and importance of graph data has driven the
development of specialized graph computation engines
capable of inferring complex recursive properties of graph-
structured data.
graph.edges.filter {
case (Edge(org_id, dest_id, distance)) => distance > 1000
}.take(5).foreach(println)
___________________________________________________________________________
A. Hadoop Common
B. Hadoop Distributed File System (HDFS)
C. Hadoop YARN
D. Hadoop MapReduce
Explanation:
Hadoop Common: It contains libraries and utilities needed by other Hadoop modules.
Hadoop Distributed File System (HDFS): It is a distributed file system that stores data on a
commodity machine. Providing very high aggregate bandwidth across the entire cluster.
Hadoop MapReduce: It is a programming model that scales data across a lot of different
processes.
Q. 2 Which of the following tool is designed for efficiently transferring bulk data between
Apache Hadoop and structured datastores such as relational databases ?
A. Pig
B. Mahout
C. Apache Sqoop
D. Flume
Explanation: Apache Sqoop is a tool designed for efficiently transferring bulk data between
Apache Hadoop and structured datastores such as relational databases
Q. 3 _________________is a distributed, reliable, and available service for efficiently
collecting, aggregating, and moving large amounts of log data.
A. Flume
B. Apache Sqoop
C. Pig
D. Mahout
Answer: A) Flume
Explanation: Flume is a distributed, reliable, and available service for efficiently collecting,
aggregating, and moving large amounts of log data. It has a simple and very flexible
architecture based on streaming data flows. It's quite robust and fall tolerant, and it's really
tunable to enhance the reliability mechanisms, fail over, recovery, and all the other
mechanisms that keep the cluster safe and reliable. It uses simple extensible data model that
allows us to apply all kinds of online analytic applications.
A. Value
B. Veracity
C. Velocity
D. Valence
Answer: D) Valence
Explanation: Valence refers to the connectedness of big data. Such as in the form of graph
networks
Statement 1: Volatility refers to the data velocity relative to timescale of event being studied
Statement 2: Viscosity refers to the rate of data loss and stable lifetime of data
Statement 1: Viscosity refers to the data velocity relative to timescale of event being studied
Statement 2: Volatility refers to the rate of data loss and stable lifetime of data
Q. 6 ________________refers to the biases, noise and abnormality in data, trustworthiness
of data.
A. Value
B. Veracity
C. Velocity
D. Volume
Answer: B) Veracity
Explanation: Veracity refers to the biases ,noise and abnormality in data, trustworthiness of
data.
A. Apache Sqoop
B. Mahout
C. Flume
D. Impala
Answer: D) Impala
Explanation: Cloudera, Impala was designed specifically at Cloudera, and it's a query engine
that runs on top of the Apache Hadoop. The project was officially announced at the end of
2012, and became a publicly available, open source distribution. Impala brings scalable
parallel database technology to Hadoop and allows users to submit low latencies queries to
the data that's stored within the HDFS or the Hbase without acquiring a ton of data movement
and manipulation.
Q. 8 True or False ?
NoSQL databases store unstructured data with no particular schema
A. True
B. False
Answer: A) True
Explanation: While the traditional SQL can be effectively used to handle large amount of
structured data, we need NoSQL (Not Only SQL) to handle unstructured data. NoSQL
databases store unstructured data with no particular schema
Q. 9 ____________is a highly reliable distributed coordination kernel , which can be used for
distributed locking, configuration management, leadership election, and work queues etc.
A. Apache Sqoop
B. Mahout
C. ZooKeeper
D. Flume
Answer: C) ZooKeeper
Explanation: ZooKeeper is a central store of key value using which distributed systems can
coordinate. Since it needs to be able to handle the load, Zookeeper itself runs on many
machines.
Q. 10 True or False ?
MapReduce is a programming model and an associated implementation for processing and
generating large data sets.
A. True
B. False
Answer: A) True
___________________________________________________________________________
Quiz Assignment-II Solutions: Big Data Computing (Week-2)
___________________________________________________________________________
Statement 1: The Job Tracker is hosted inside the master and it receives the job execution
request from the client.
Statement 2: Task tracker is the MapReduce component on the slave machine as there are
multiple slave machines.
Q. 2 ________ is the slave/worker node and holds the user data in the form of Data Blocks.
A. NameNode
B. Data block
C. Replication
D. DataNode
Answer: D) DataNode
Explanation: NameNode works as a master server that manages the file system namespace
and basically regulates access to these files from clients, and it also keeps track of where the
data is on the DataNodes and where the blocks are distributed essentially. On the other
hand DataNode is the slave/worker node and holds the user data in the form of Data Blocks.
A. Name Node
B. Data block
C. Replication
D. Data Node
Explanation: Name Node works as a master server that manages the file system namespace
and basically regulates access to these files from clients, and it also keeps track of where the
data is on the Data Nodes and where the blocks are distributed essentially. On the other
hand Data Node is the slave/worker node and holds the user data in the form of Data
Blocks.
Q. 4 The number of maps in MapReduce is usually driven by the total size of____________
A. Inputs
B. Outputs
C. Tasks
D. None of the mentioned
Answer: A) Inputs
Explanation: Map, written by the user, takes an input pair and produces a set of
intermediate key/value pairs. The MapReduce library groups together all intermediate
values associated with the same intermediate key ‘I’ and passes them to the Reduce
function.
Q. 5 True or False ?
The main duties of task tracker are to break down the receive job that is big computations in
small parts, allocate the partial computations that is tasks to the slave nodes monitoring the
progress and report of task execution from the slave.
A. True
B. False
Answer: B) False
Explanation: The task tracker will communicate the progress and report the results to the
job tracker.
Q. 7 Consider the pseudo-code for MapReduce's WordCount example (not shown here).
Let's now assume that you want to determine the frequency of phrases consisting of 3
words each instead of determining the frequency of single words. Which part of the
(pseudo-)code do you need to adapt?
A. Only map()
B. Only reduce()
C. map() and reduce()
D. The code does not have to be changed
Explanation: The map function takes a value and outputs key:value pairs.
For instance, if we define a map function that takes a string and outputs the length of the
word as the key and the word itself as the value then
Q. 8 The namenode knows that the datanode is active using a mechanism known as
A. Heartbeats
B. Datapulse
C. h-signal
D. Active-pulse
Answer: A) heartbeats
Explanation: In Hadoop Name node and data node do communicate using Heartbeat.
Therefore Heartbeat is the signal that is sent by the datanode to the namenode after the
regular interval to time to indicate its presence, i.e. to indicate that it is alive.
Q. 9 True or False ?
A. True
B. False
Answer: True
Explanation: Once the data is written in HDFS it is immediately replicated along the cluster,
so that different copies of data will be stored on different data nodes. Normally the
Replication factor is 3 as due to this the data does not remain over replicated nor it is less.
Q. 10 _______________function processes a key/value pair to generate a set of
intermediate key/value pairs.
A. Map
B. Reduce
C. Both Map and Reduce
D. None of the mentioned
Answer: A) Map
Explanation: Maps are the individual tasks that transform input records into intermediate
records and reduce processes and merges all intermediate values associated per key.
Quiz Assignment-III Solutions: Big Data Computing (Week-3)
___________________________________________________________________________
A. Spark Streaming
B. FlatMap
C. Driver
D. Resilient Distributed Dataset (RDD)
Q. 2 Given the following definition about the join transformation in Apache Spark:
def join[W](other: RDD[(K, W)]): RDD[(K, (V, W))]
Where join operation is used for joining two datasets. When it is called on datasets of
type (K, V) and (K, W), it returns a dataset of (K, (V, W)) pairs with all pairs of
elements for each key.
Output the result of joinrdd, when the following code is run.
Explanation: join() is transformation which returns an RDD containing all pairs of elements
with matching keys in this and other. Each pair of elements will be returned as a (k, (v1, v2))
tuple, where (k, v1) is in this and (k, v2) is in other.
Statement 2: Spark improves usability through high-level APIs in Java, Scala, Python and
also provides an interactive shell.
Q. 4 True or False ?
A. True
B. False
Answer: True
A. HBase
B. Cassandra
C. SQL Server
D. None of the mentioned
Q. 6 True or False ?
Apache Spark potentially run batch-processing programs up to 100 times faster than Hadoop
MapReduce in memory, or 10 times faster on disk.
A. True
B. False
Answer: True
Explanation: The biggest claim from Spark regarding speed is that it is able to "run
programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk."
Spark could make this claim because it does the processing in the main memory of the
worker nodes and prevents the unnecessary I/O operations with the disks. The other
advantage Spark offers is the ability to chain the tasks even at an application programming
level without writing onto the disks at all or minimizing the number of writes to the disks.
A. MLlib
B. Spark Streaming
C. GraphX
D. RDDs
A. MLlib
B. Spark streaming
C. GraphX
D. All of the mentioned
Answer: C) GraphX
Explanation: GraphX is Apache Spark's API for graphs and graph-parallel computation. It is
a distributed graph processing framework on top of Spark.
Statement 1: Scale out means grow your cluster capacity by replacing with more powerful
machines.
Statement 2: Scale up means incrementally grow your cluster capacity by adding more
COTS machines (Components Off the Shelf).
Scale out = incrementally grow your cluster capacity by adding more COTS machines
(Components Off the Shelf)
__________________________________________________________________________
Quiz Assignment-IV Solutions: Big Data Computing (Week-4)
___________________________________________________________________________
P: The system allows operations all the time, and operations return quickly
Q: All nodes see same data at any time, or reads return latest written value by any client
R: The system continues to work in spite of network partitions
Explanation:
CAP Theorem states following properties:
Consistency: All nodes see same data at any time, or reads return latest written value by any
client.
Availability: The system allows operations all the time, and operations return quickly.
Partition-tolerance: The system continues to work in spite of network partitions.
A. Key-value
B. Memtable
C. Heartbeat
D. Gossip
Answer: D) Gossip
Explanation: Cassandra uses a protocol called gossip to discover location and state
information about the other nodes participating in a Cassandra cluster. Gossip is a peer-to-
peer communication protocol in which nodes periodically exchange state information about
themselves and about other nodes they know about.
Q. 3 In Cassandra, ____________________ is used to specify data centers and the number of
replicas to place within each data center. It attempts to place replicas on distinct racks to avoid
the node failure and to ensure data availability.
A. Simple strategy
B. Quorum strategy
C. Network topology strategy
D. None of the mentioned
Explanation: Network topology strategy is used to specify data centers and the number of
replicas to place within each data center. It attempts to place replicas on distinct racks to avoid
the node failure and to ensure data availability. In network topology strategy, the two most
common ways to configure multiple data center clusters are: Two replicas in each data center,
and Three replicas in each data center.
Q. 4 True or False ?
A Snitch determines which data centers and racks nodes belong to. Snitches inform Cassandra
about the network topology so that requests are routed efficiently and allows Cassandra to
distribute replicas by grouping machines into data centers and racks.
A. True
B. False
Answer: True
Explanation: A Snitch determines which data centers and racks nodes belong to. Snitches
inform Cassandra about the network topology so that requests are routed efficiently and allows
Cassandra to distribute replicas by grouping machines into data centers and racks. Specifically,
the replication strategy places the replicas based on the information provided by the new snitch.
All nodes must return to the same rack and data center. Cassandra does its best not to have
more than one replica on the same rack (which is not necessarily a physical location).
Statement 1: In Cassandra, during a write operation, when hinted handoff is enabled and If
any replica is down, the coordinator writes to all other replicas, and keeps the write locally until
down replica comes back up.
Explanation: Cassandra uses a protocol called gossip to discover location and state
information about the other nodes participating in a Cassandra cluster. Gossip is a peer-to-peer
communication protocol in which nodes periodically exchange state information about
themselves and about other nodes they know about.
Answer: B) If writes stop, all reads will return the same value after a while
Explanation: Cassandra offers Eventual Consistency. Is says that If writes to a key stop, all
replicas of key will converge automatically.
Statement 1: When two processes are competing with each other causing data corruption, it is
called deadlock
Statement 2: When two processes are waiting for each other directly or indirectly, it is called
race condition
Statement 1: When two processes are competing with each other causing data corruption, it is
called Race Condition
Statement 2: When two processes are waiting for each other directly or indirectly, it is called
deadlock.
Q. 8 ZooKeeper allows distributed processes to coordinate with each other through registers,
known as ___________________
A. znodes
B. hnodes
C. vnodes
D. rnodes
Answer: A) znodes
Explanation: Every znode is identified by a path, with path elements separated by a slash.
Q. 9 In Zookeeper, when a _______ is triggered the client receives a packet saying that the
znode has changed.
A. Event
B. Row
C. Watch
D. Value
Answer: C) Watch
Explanation: ZooKeeper supports the concept of watches. Clients can set a watch on a znodes.
1 1943 10 1 14.1
2 1943 10 2 16.4
21223 2001 11 7 16
Alter table temperature_details to add a new column called “seasons” using map of type
<varint, text> represented as <month, season>. Season can have the following values
season={spring, summer, autumn, winter}.
Update table temperature_details where columns daynum, year, month, date contain the
following values- 4317,1955,7,26 respectively.
Use the select statement to output the row after updation.
Note: A map relates one item to another with a key-value pair. For each key, only one value
may exist, and duplicates cannot be stored. Both the key and the value are designated with a
data type.
A)
cqlsh:day3> alter table temperature_details add hours1 set<varint>;
cqlsh:day3> update temperature_details set hours1={1,5,9,13,5,9} where daynum=4317;
cqlsh:day3> select * from temperature_details where daynum=4317;
B)
cqlsh:day3> alter table temperature_details add seasons map<varint,text>;
cqlsh:day3> update temperature_details set seasons = seasons + {7:'spring'} where
daynum=4317 and year =1955 and month = 7 and date=26;
cqlsh:day3> select * from temperature_details where daynum=4317 and year=1955 and
month=7 and date=26;
C)
cqlsh:day3>alter table temperature_details add hours1 list<varint>;
cqlsh:day3> update temperature_details set hours1=[1,5,9,13,5,9] where daynum=4317 and
year = 1955 and month = 7 and date=26;
cqlsh:day3> select * from temperature_details where daynum=4317 and year=1955 and
month=7 and date=26;
Explanation:
The correct steps are:
___________________________________________________________________________
Quiz Assignment-V Solutions: Big Data Computing (Week-5)
___________________________________________________________________________
A. Column group
B. Column list
C. Column base
D. Column families
Explanation: An HBase table is made of column families which are the logical and physical
grouping of columns. The columns in one family are stored separately from the columns in
another family.
Q. 2 HBase is a distributed ________ database built on top of the Hadoop file system.
A. Row-oriented
B. Tuple-oriented
C. Column-oriented
D. None of the mentioned
Answer: C) Column-oriented
Explanation: A distributed column-oriented data store that can scale horizontally to 1,000s
of commodity servers and petabytes of indexed storage.
Q. 3 A small chunk of data residing in one machine which is part of a cluster of machines
holding one HBase table is known as__________________
A. Region
B. Split
C. Rowarea
D. Tablearea
Answer : A) Region
Explanation: In Hbase, table Split into regions and served by region servers.
A. Cell
B. Stores
C. HMaster
D. Region Server
Answer: A) Cell
Explanation: Data is stored in HBASE tables Cells and Cell is a combination of row, column
family, column qualifier and contains a value and a timestamp.
2. Region Server: HBase Tables are divided horizontally by row key range into Regions.
Regions are the basic building elements of HBase cluster that consists of the distribution of
tables and are comprised of Column families. Region Server runs on HDFS DataNode which
is present in Hadoop cluster.
A. cTakes
B. Chunks
C. Broker
D. None of the mentioned
Answer: C) Broker
Explanation: A Kafka broker allows consumers to fetch messages by topic, partition and
offset. Kafka broker can create a Kafka cluster by sharing information between each other
directly or indirectly using Zookeeper. A Kafka cluster has exactly one broker that acts as the
Controller.
Q. 8 True or False ?
Statement 1: Batch Processing provides ability to process and analyze data at-rest (stored
data)
Statement 2: Stream Processing provides ability to ingest, process and analyze data in-
motion in real or near-real-time.
Q. 9 ________________is a central hub to transport and store event streams in real time.
A. Kafka Core
B. Kafka Connect
C. Kafka Streams
D. None of the mentioned
Explanation:
Following parameters are used to specify window operation:
i) Window length: duration of the window
(ii) Sliding interval: interval at which the window operation is performed
Both the parameters must be a multiple of the batch interval
Q. 11 Consider the following dataset Customers:
Using the Customers table answer the following using spark streaming fundamentals:
Using the following pseudo code, find the rank of each customer visiting the supermarket
A)
Name Date AmountSpent (In Rs.) Rank
Alice 2020-05-01 50 1
Bob 2020-05-04 29 1
Bob 2020-05-01 25 1
Alice 2020-05-04 55 2
Alice 2020-05-03 45 2
Bob 2020-05-06 27 2
B)
C)
Answer: D)
Name Date AmountSpent (In Rs.) Rank
Alice 2020-05-01 50 1
Alice 2020-05-03 45 2
Alice 2020-05-04 55 3
Bob 2020-05-01 25 1
Bob 2020-05-04 29 2
Bob 2020-05-06 27 3
Explanation:
In this question, we want to know the order of a customer’s visit (whether this is their first,
second, or third visit).
In this window spec, the data is partitioned by customer. Each customer’s data is ordered by
date.
___________________________________________________________________________
Quiz Assignment-VI Solutions: Big Data Computing (Week-6)
___________________________________________________________________________
Explanation: Credit card transactions can be clustered into fraud transactions using
unsupervised learning.
Q. 4 Identify the correct method for choosing the value of ‘k’ in k-means algorithm ?
A. Dimensionality reduction
B. Elbow method
C. Both Dimensionality reduction and Elbow method
D. Data partitioning
Statement I: The idea of Pre-pruning is to stop tree induction before a fully grown tree is
built, that perfectly fits the training data.
Statement II: The idea of Post-pruning is to grow a tree to its maximum size and then
remove the nodes using a top-bottom approach.
Explanation: With pre-pruning, the idea is to stop tree induction before a fully grown tree is
built that perfectly fits the training data.
In post-pruning, the tree is grown to its maximum size, then the tree is pruned by removing
nodes using a bottom up approach.
1. Increase in K will result in higher time required to cross validate the result.
2. Higher values of K will result in higher confidence on the cross-validation result as
compared to lower value of K.
3. If K=N, then it is called Leave one out cross validation, where N is the number of
observations.
A. 1 and 2
B. 2 and 3
C. 1 and 3
D. 1, 2 and 3
Explanation: Larger k value means less bias towards overestimating the true expected error
(as training folds will be closer to the total dataset) and higher running time (as you are
getting closer to the limit case: Leave-One-Out CV). We also need to consider the variance
between the k folds accuracy while selecting the k.
Q. 7 Imagine you are working on a project which is a binary classification problem. You
trained a model on training dataset and get the below confusion matrix on validation dataset.
Based on the above confusion matrix, choose which option(s) below will give you correct
predictions ?
1. Accuracy is ~0.91
2. Misclassification rate is ~ 0.91
3. False positive rate is ~0.95
4. True positive rate is ~0.95
A. 1 and 3
B. 2 and 4
C. 2 and 3
D. 1 and 4
Answer: D) 1 and 4
Explanation:
The true Positive Rate is how many times you are predicting positive class correctly so true
positive rate would be 100/105 = 0.95 also known as “Sensitivity” or “Recall”
Statement I: In supervised approaches, the target that the model is predicting is unknown or
unavailable. This means that you have unlabeled data.
Statement II: In unsupervised approaches the target, which is what the model is predicting,
is provided. This is referred to as having labeled data because the target is labeled for every
sample that you have in your data set.
___________________________________________________________________________
Q. 1 Suppose you are using a bagging based algorithm say a Random Forest in model
building. Which of the following can be true?
A. Only 1
B. Only 2
C. Both 1 and 2
D. None of these
Answer: A) Only 1
Explanation: Since Random Forest aggregate the result of different weak learners, If It is
possible we would want more number of trees in model building. Random Forest is a black
box model you will lose interpretability after using it.
Q. 2 To apply bagging to regression trees which of the following is/are true in such case?
A. 1 and 2
B. 2 and 3
C. 1 and 3
D. 1,2 and 3
Q. 3 In which of the following scenario a gain ratio is preferred over Information Gain?
Explanation: When high cardinality problems, gain ratio is preferred over Information Gain
technique.
Q. 4 Which of the following is/are true about Random Forest and Gradient Boosting
ensemble methods?
A. 1 and 2
B. 2 and 3
C. 2 and 4
D. 1 and 4
Answer: D) 1 and 4
Explanation: Both algorithms are design for classification as well as regression task.
Q. 5 Given an attribute table shown below, which stores the basic information of attribute a,
including the row identifier of instance row_id , values of attribute values (a) and class labels
of instances c.
Attribute Table
Which of the following attribute will first provide the pure subset ?
A. Humidity
B. Wind
C. Outlook
D. None of the mentioned
Answer: C) Outlook
Where X is the resulting split, n is the number of different target values in the subset,
and pi is the proportion of the ith target value in the subset.
For example, the entropy will be the following. The log is base 2.
Entropy (Sunny) = -2/5 * log(2/5) – 3/5 log(3/5) =0.159+0.133= 0.292 (Impure subset)
Bagging provides an averaging over a set of possible datasets, removing noisy and non-stable
parts of models.
A. True
B. False
Answer: A) True
Q. 7 Hundreds of trees can be aggregated to form a Random forest model. Which of the
following is true about any individual tree in Random Forest?
A. 1 and 3
B. 1 and 4
C. 2 and 3
D. 2 and 4
Answer: A) 1 and 3
Explanation: Random forest is based on bagging concept, that consider faction of sample
and faction of feature for building the individual trees.
Q. 8 Boosting any algorithm takes into consideration the weak learners. Which of the
following is the main reason behind using weak learners?
A. Reason I
B. Reason II
C. Both Reason I and Reason II
D. None of the Reasons
Answer: A) Reason I
Explanation: To prevent overfitting, since the complexity of the overall learner increases at
each step. Starting with weak learners implies the final classifier will be less likely to overfit.
___________________________________________________________________________
Quiz Assignment-VIII Solutions: Big Data Computing (Week-8)
___________________________________________________________________________
Q. 1 Which of the following are provided by spark API for graph parallel computations:
i. joinVertices
ii. subgraph
iii. aggregateMessages
A. Only (i)
B. Only (i) and (ii)
C. Only (ii) and (iii)
D. All of the mentioned
Q. 2 Which of the following statement(s) is/are true in the context of Apache Spark GraphX
operators ?
S1: Property operators modify the vertex or edge properties using a user defined map
function and produces a new graph.
S2: Structural operators operate on the structure of an input graph and produces a new graph.
S3: Join operators add data to graphs and produces a new graphs.
A. Only S1 is true
B. Only S2 is true
C. Only S3 is true
D. All of the mentioned
Q. 3 True or False ?
The outerJoinVertices() operator joins the input RDD data with vertices and returns a new
graph. The vertex properties are obtained by applying the user defined map() function to the
all vertices, and includes ones that are not present in the input RDD.
A. True
B. False
Answer: A) True
Q. 4 Which of the following statements are true ?
S1: Apache Spark GraphX provides the following property operators - mapVertices(),
mapEdges(), mapTriplets()
S2: The RDDs in Spark, depend on one or more other RDDs. The representation of
dependencies in between RDDs is known as the lineage graph. Lineage graph information is
used to compute each RDD on demand, so that whenever a part of persistent RDD is lost, the
data that is lost can be recovered using the lineage graph information.
A. Only S1 is true
B. Only S2 is true
C. Both S1 and S2 are true
D. None of the mentioned
Q. 5 GraphX provides an API for expressing graph computation that can model the
__________ abstraction.
A. GaAdt
B. Pregel
C. Spark Core
D. None of the mentioned
Answer: B) Pregel
A. A:ii, B: i, C: iii
B. A:iii, B: i, C: ii
C. A:ii, B: iii, C: i
D. A:iii, B: ii, C: i
Answer: B) A:iii, B: i, C: ii
Q. 7 Which of the following statement(s) is/are true in context of Parameter Servers.
A. Only S1 is true
B. Only S2 is true
C. Only S3 is true
D. All of the mentioned
Q. 8
What is the PageRank score of vertex B after the second iteration? (Without damping factor)
A. 1/6
B. 1.5/12
C. 2.5/12
D. 1/3
Answer: A) 1/6
Explanation: The Page Rank score of all vertex is calculated as follows: