Bird
Raised Fist0
Hadoopdata

Sqoop for database imports in Hadoop - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Sqoop used for in Hadoop?
Sqoop is a tool that helps transfer data between Hadoop and relational databases. It is mainly used to import data from databases into Hadoop's HDFS and export data back.
Click to reveal answer
beginner
Which command imports a full table from a database into HDFS using Sqoop?
The command is <code>sqoop import --connect &lt;jdbc-connection-string&gt; --table &lt;table-name&gt; --username &lt;user&gt; --password &lt;password&gt; --target-dir &lt;hdfs-directory&gt;</code>. This imports the entire table into the specified HDFS directory.
Click to reveal answer
intermediate
What does the --split-by option do in Sqoop import?
The <code>--split-by</code> option tells Sqoop which column to use to split the data for parallel import. This helps speed up the import by dividing the work across multiple mappers.
Click to reveal answer
intermediate
How can you import only specific columns from a database table using Sqoop?
Use the --columns option with a comma-separated list of column names. For example, --columns "id,name,age" imports only those columns.
Click to reveal answer
intermediate
What is the role of the --where clause in Sqoop import?
The <code>--where</code> clause lets you filter rows during import by specifying a SQL condition. For example, <code>--where "age &gt; 30"</code> imports only rows where age is greater than 30.
Click to reveal answer
What does Sqoop primarily do?
AProcesses big data inside Hadoop
BTransfers data between Hadoop and relational databases
CVisualizes data in Hadoop
DManages Hadoop cluster nodes
Which option specifies the database table to import in Sqoop?
A--table
B--connect
C--target-dir
D--split-by
How does Sqoop speed up data import?
ABy using multiple mappers with --split-by
BBy compressing data
CBy importing only metadata
DBy exporting data instead
Which option filters rows during import?
A--columns
B--username
C--where
D--target-dir
To import only specific columns, which option do you use?
A--table
B--split-by
C--connect
D--columns
Explain how Sqoop imports data from a relational database into Hadoop.
Think about the steps and options needed to move data from a database to Hadoop.
You got /5 concepts.
    Describe how you can control which data Sqoop imports from a database table.
    Consider options that limit or organize the data imported.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of Sqoop in Hadoop?
      easy
      A. To process data inside Hadoop using MapReduce
      B. To export data from Hadoop to relational databases
      C. To import data from relational databases into Hadoop
      D. To visualize data stored in Hadoop

      Solution

      1. Step 1: Understand Sqoop's role

        Sqoop is designed to transfer data between relational databases and Hadoop.
      2. Step 2: Identify import function

        Its main use is importing data from databases into Hadoop's storage.
      3. Final Answer:

        To import data from relational databases into Hadoop -> Option C
      4. Quick Check:

        Sqoop imports data = A [OK]
      Hint: Remember Sqoop imports data into Hadoop from databases [OK]
      Common Mistakes:
      • Confusing import with export
      • Thinking Sqoop processes data inside Hadoop
      • Assuming Sqoop is for visualization
      2. Which of the following is the correct basic Sqoop import command syntax?
      easy
      A. sqoop export --connect jdbc:mysql://localhost/db --table mytable --target-dir /user/hadoop/mytable
      B. sqoop import --connect jdbc:mysql://localhost/db --table mytable --target-dir /user/hadoop/mytable
      C. sqoop import --table mytable --connect jdbc:mysql://localhost/db --output-dir /user/hadoop/mytable
      D. sqoop import --connect jdbc:mysql://localhost/db --table mytable --output-dir /user/hadoop/mytable

      Solution

      1. Step 1: Identify correct command type

        Import commands use 'sqoop import' with connection, table, and target directory.
      2. Step 2: Check option correctness

        sqoop import --connect jdbc:mysql://localhost/db --table mytable --target-dir /user/hadoop/mytable uses correct flags: --connect, --table, --target-dir.
      3. Final Answer:

        sqoop import --connect jdbc:mysql://localhost/db --table mytable --target-dir /user/hadoop/mytable -> Option B
      4. Quick Check:

        Correct import syntax = A [OK]
      Hint: Use --target-dir for import destination, not --output-dir [OK]
      Common Mistakes:
      • Using 'export' instead of 'import'
      • Mixing --output-dir with import command
      • Incorrect order of parameters
      3. What will be the effect of running this command?
      sqoop import --connect jdbc:mysql://localhost/db --table employees --split-by emp_id --num-mappers 4 --target-dir /user/hadoop/employees
      medium
      A. Imports employees table using 1 mapper ignoring split-by
      B. Fails because --split-by cannot be used with --num-mappers
      C. Exports employees table to MySQL using 4 mappers
      D. Imports employees table using 4 parallel mappers splitting by emp_id

      Solution

      1. Step 1: Analyze command options

        The command imports data from 'employees' table using 4 mappers and splits data by 'emp_id'.
      2. Step 2: Understand parallel import

        Using --split-by with --num-mappers enables parallel import for faster data transfer.
      3. Final Answer:

        Imports employees table using 4 parallel mappers splitting by emp_id -> Option D
      4. Quick Check:

        --split-by + --num-mappers = parallel import [OK]
      Hint: Use --split-by column to enable parallel import with multiple mappers [OK]
      Common Mistakes:
      • Thinking --split-by disables parallelism
      • Confusing import with export
      • Assuming default 1 mapper always used
      4. You run this Sqoop import command but get an error:
      sqoop import --connect jdbc:mysql://localhost/db --table sales --num-mappers 4 --target-dir /user/hadoop/sales

      What is the most likely cause?
      medium
      A. Missing --split-by column for parallel import
      B. Incorrect --target-dir path format
      C. Using --num-mappers with import is invalid
      D. Table 'sales' does not exist in database

      Solution

      1. Step 1: Check command parameters

        The command uses --num-mappers 4 but does not specify --split-by column.
      2. Step 2: Understand parallel import requirements

        Sqoop requires a --split-by column to divide data for multiple mappers; missing it causes error.
      3. Final Answer:

        Missing --split-by column for parallel import -> Option A
      4. Quick Check:

        Parallel import needs --split-by column [OK]
      Hint: Always specify --split-by when using multiple mappers [OK]
      Common Mistakes:
      • Assuming --num-mappers works without --split-by
      • Thinking --target-dir format causes error
      • Ignoring table existence check
      5. You want to import a large 'orders' table from MySQL into Hadoop quickly. The table has a numeric primary key 'order_id'. Which Sqoop command will best speed up the import?
      hard
      A. sqoop import --connect jdbc:mysql://localhost/db --table orders --split-by order_id --num-mappers 8 --target-dir /user/hadoop/orders
      B. sqoop import --connect jdbc:mysql://localhost/db --table orders --split-by order_date --num-mappers 8 --target-dir /user/hadoop/orders
      C. sqoop import --connect jdbc:mysql://localhost/db --table orders --num-mappers 8 --target-dir /user/hadoop/orders
      D. sqoop import --connect jdbc:mysql://localhost/db --table orders --target-dir /user/hadoop/orders

      Solution

      1. Step 1: Identify best split column

        Use the numeric primary key 'order_id' for --split-by to evenly divide data.
      2. Step 2: Use multiple mappers for parallel import

        Setting --num-mappers 8 enables 8 parallel tasks to speed up import.
      3. Step 3: Evaluate other options

        sqoop import --connect jdbc:mysql://localhost/db --table orders --target-dir /user/hadoop/orders uses single mapper (slow). sqoop import --connect jdbc:mysql://localhost/db --table orders --num-mappers 8 --target-dir /user/hadoop/orders misses --split-by (error). sqoop import --connect jdbc:mysql://localhost/db --table orders --split-by order_date --num-mappers 8 --target-dir /user/hadoop/orders splits by 'order_date' which may not be numeric or evenly distributed.
      4. Final Answer:

        sqoop import --connect jdbc:mysql://localhost/db --table orders --split-by order_id --num-mappers 8 --target-dir /user/hadoop/orders -> Option A
      5. Quick Check:

        Use numeric PK with --split-by and multiple mappers [OK]
      Hint: Split by numeric primary key and increase mappers for speed [OK]
      Common Mistakes:
      • Not specifying --split-by with multiple mappers
      • Choosing non-numeric or uneven split column
      • Using single mapper for large tables
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard