Skip to main content

CCD-410 Real Exam Questions

Cloudera Certified Developer for Apache Hadoop (CCDH)

60 questions available · Page 1 of 6

Updated Exam DumpsVerified AnswersPass Guarantee

Get Complete Exam Dumps
Question 1 Single choice

Workflows expressed in Oozie can contain:

  1. A

    Sequences of MapReduce and Pig. These sequences can be combined with other actions including forks, decision points, and path joins.

  2. B

    Sequences of MapReduce job only; on Pig on Hive tasks or jobs. These MapReduce sequences can
    be combined with forks and path joins.

  3. C

    Sequences of MapReduce and Pig jobs. These are limited to linear sequences of actions with exception handlers but no forks.

  4. D

    Iterntive repetition of MapReduce jobs until a desired answer or state is reached.

Show answer and explanation

Correct answer: A

Explanation

Oozie workflow is a collection of actions (i.e. Hadoop Map/Reduce jobs, Pig jobs) arranged in a control dependency DAG (Direct Acyclic Graph), specifying a sequence of actions execution. This graph is specified in hPDL (a XML Process Definition Language).

hPDL is a fairly compact language, using a limited amount of flow control and action nodes. Control nodes define the flow of execution and include beginning and end of a workflow (start, end and fail nodes) and mechanisms to control the workflow execution path ( decision, fork and join nodes).

Workflow definitions
Currently running workflow instances, including instance states and variables

References:
Introduction to Oozie
Note: Oozie is a Java Web-Application that runs in a Java servlet-container - Tomcat and uses a database to store:

Question 2 Single choice

Which project gives you a distributed, Scalable, data store that allows you random, realtime read/write access to hundreds of terabytes of data?

  1. A

    HBase

  2. B

    Hue

  3. C

    Pig

  4. D

    Hive

  5. E

    Oozie

  6. F

    Flume

  7. G

    Sqoop

Show answer and explanation

Correct answer: A

Explanation

Use Apache HBase when you need random, realtime read/write access to your Big Data. Note: This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google's Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.

Features

Linear and modular scalability.

Strictly consistent reads and writes.

Automatic and configurable sharding of tables

Automatic failover support between RegionServers.

Convenient base classes for backing Hadoop MapReduce jobs with Apache HBase tables.

Easy to use Java API for client access.

Block cache and Bloom Filters for real-time queries.

Query predicate push down via server side Filters

Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary data encoding options

Extensible jruby-based (JIRB) shell

Support for exporting metrics via the Hadoop metrics subsystem to files or Ganglia; or via JMX

References:
http://hbase.apache.org/
(when would I use HBase? First sentence)

Question 3 Single choice

Your client application submits a MapReduce job to your Hadoop cluster. Identify the Hadoop daemon on which the Hadoop framework will look for an available slot schedule a MapReduce operation.

  1. A

    TaskTracker

  2. B

    NameNode

  3. C

    DataNode

  4. D

    JobTracker

  5. E

    Secondary NameNode

Show answer and explanation

Correct answer: D

Explanation

JobTracker is the daemon service for submitting and tracking MapReduce jobs in Hadoop. There is only
One Job Tracker process run on any hadoop cluster. Job Tracker runs on its own JVM process. In a typical production cluster its run on a separate machine. Each slave node is configured with job tracker node location. The JobTracker is single point of failure for the Hadoop MapReduce service. If it goes down, all running jobs are halted. JobTracker in Hadoop performs following actions(from Hadoop Wiki:)

Client applications submit jobs to the Job tracker.

The JobTracker talks to the NameNode to determine the location of the data

The JobTracker locates TaskTracker nodes with available slots at or near the data

The JobTracker submits the work to the chosen TaskTracker nodes.

The TaskTracker nodes are monitored. If they do not submit heartbeat signals often enough, they are deemed to have failed and the work is scheduled on a different TaskTracker.

A TaskTracker will notify the JobTracker when a task fails. The JobTracker decides what to do then: it may resubmit the job elsewhere, it may mark that specific record as something to avoid, and it may may even blacklist the TaskTracker as unreliable.

When the work is completed, the JobTracker updates its status.

Client applications can poll the JobTracker for information.

References:
24 Interview Questions & Answers for Hadoop MapReduce developers, What is a JobTracker
in Hadoop? How many instances of JobTracker run on a Hadoop Cluster?

Question 4 Single choice

You need to create a job that does frequency analysis on input data. You will do this by writing a Mapper that uses TextInputFormat and splits each value (a line of text from an input file) into individual characters.
For each one of these characters, you will emit the character as a key and an InputWritable as the value.
As this will produce proportionally more intermediate data than input data, which two resources should you expect to be bottlenecks?

  1. A

    Processor and network I/O

  2. B

    Disk I/O and network I/O

  3. C

    Processor and RAM

  4. D

    Processor and disk I/O

Show answer and explanation

Correct answer: B

Question 5 Single choice

You have a directory named jobdata in HDFS that contains four files: _first.txt, second.txt, .third.txt and #data.txt.

How many files will be processed by the FileInputFormat.setInputPaths () command when it's given a path object representing this directory?

  1. A

    Four, all files will be processed

  2. B

    Three, the pound sign is an invalid character for HDFS file names

  3. C

    Two, file names with a leading period or underscore are ignored

  4. D

    None, the directory cannot be named jobdata

  5. E

    One, no special characters can prefix the name of an input file

Show answer and explanation

Correct answer: C

Explanation

Files starting with '_' are considered 'hidden' like unix files starting with '.'.

# characters are allowed in HDFS file names.

Question 6 Single choice

Identify the MapReduce v2 (MRv2 / YARN) daemon responsible for launching application containers and monitoring application resource usage?

  1. A

    ResourceManager

  2. B

    NodeManager

  3. C

    ApplicationMaster

  4. D

    ApplicationMasterService

  5. E

    TaskTracker

  6. F

    JobTracker

Show answer and explanation

Correct answer: B

Explanation

References:
Apache Hadoop YARN Concepts & Applications

Question 7 Single choice

You have the following key-value pairs as output from your Map task:

(the, 1)
(fox, 1)
(faster, 1)
(than, 1)
(the, 1)
(dog, 1)

How many keys will be passed to the Reducer's reduce method?

  1. A

    Six

  2. B

    Five

  3. C

    Four

  4. D

    Two

  5. E

    One

  6. F

    Three

Show answer and explanation

Correct answer: B

Explanation

Only one key value pair will be passed from the two (the, 1) key value pairs.

Question 8 Single choice

You have written a Mapper which invokes the following five calls to the OutputColletor.collect method:

output.collect (new Text ("Apple"), new Text ("Red") ) ;
output.collect (new Text ("Banana"), new Text ("Yellow") ) ; output.collect (new Text ("Apple"), new Text
("Yellow") ) ; output.collect (new Text ("Cherry"), new Text ("Red") ) ;
output.collect (new Text ("Apple"), new Text ("Green") ) ;

How many times will the Reducer's reduce method be invoked?

  1. A

    6

  2. B

    3

  3. C

    1

  4. D

    0

  5. E

    5

Show answer and explanation

Correct answer: B

Explanation

reduce() gets called once for each [key, (list of values)] pair. To explain, let's say you called:
out.collect(new Text("Car"),new Text("Subaru"); out.collect(new Text("Car"),new Text("Honda");
out.collect(new Text("Car"),new Text("Ford"); out.collect(new Text("Truck"),new Text("Dodge");
out.collect(new Text("Truck"),new Text("Chevy"); Then reduce() would be called twice with the pairs
reduce(Car, <Subaru, Honda, Ford>)
reduce(Truck, <Dodge, Chevy>)

References:
Mapper output.collect()?

Question 9 Single choice

What types of algorithms are difficult to express in MapReduce v1 (MRv1)?

  1. A

    Algorithms that require applying the same mathematical function to large numbers of individual binary records.

  2. B

    Relational operations on large amounts of structured and semi-structured data.

  3. C

    Algorithms that require global, sharing states.

  4. D

    Large-scale graph algorithms that require one-step link traversal.

  5. E

    Text analysis algorithms on large collections of unstructured text (e.g, Web crawls).

Show answer and explanation

Correct answer: C

Explanation

See 3) below.

Limitations of Mapreduce where not to use Mapreduce While very powerful and applicable to a wide variety of problems, MapReduce is not the answer to every problem. Here are some problems I found where MapReudce is not suited and some papers that address the limitations of MapReuce.

1. Computation depends on previously computed values

If the computation of a value depends on previously computed values, then MapReduce cannot be used.
One good example is the Fibonacci series where each value is summation of the previous two values. i.e., f(k+2) = f(k+1) + f(k). Also, if the data set is small enough to be computed on a single machine, then it is better to do it as a single reduce(map(data)) operation rather than going through the entire map reduce process.

2. Full-text indexing or ad hoc searching

The index generated in the Map step is one dimensional, and the Reduce step must not generate a large amount of data or there will be a serious performance degradation. For example, CouchDB's MapReduce may not be a good fit for full-text indexing or ad hoc searching. This is a problem better suited for a tool such as Lucene.

3. Algorithms depend on shared global state

Solutions to many interesting problems in text processing do not require global synchronization. As a result, they can be expressed naturally in MapReduce, since map and reduce tasks run independently and in isolation. However, there are many examples of algorithms that depend crucially on the existence of shared global state during processing, making them difficult to implement in MapReduce (since the single opportunity for global synchronization in MapReduce is the barrier between the map and reduce phases of processing)

References:
Limitations of Mapreduce where not to use Mapreduce

Question 10 Multiple choice

MapReduce v2 (MRv2/YARN) splits which major functions of the JobTracker into separate daemons? Select two.

  1. A

    Heath states checks (heartbeats)

  2. B

    Resource management

  3. C

    Job scheduling/monitoring

  4. D

    Job coordination between the ResourceManager and NodeManager

  5. E

    Launching tasks

  6. F

    Managing file system metadata

  7. G

    MapReduce metric reporting

  8. H

    Managing tasks

Show answer and explanation

Correct answers: B, C

Explanation

The fundamental idea of MRv2 is to split up the two major functionalities of the JobTracker, resource management and job scheduling/monitoring, into separate daemons. The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM). An application is either a single job in the classical sense of Map-Reduce jobs or a DAG of jobs.

Note:
The central goal of YARN is to clearly separate two things that are unfortunately smushed together in current Hadoop, specifically in (mainly) JobTracker:

/ Monitoring the status of the cluster with respect to which nodes have which resources available.
Under YARN, this will be global.

/ Managing the parallelization execution of any specific job. Under YARN, this will be done separately for each job.

References:
Apache Hadoop YARN Concepts & Applications