Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{color:red}NOTE THAT the information mentioned on this page is still in progress and may not be fully implemented yet.{color}

{toc:style=outline|maxLevel=5}

h3. Building from sources

Checkout sources:
{noformat}
$ svn co https://svn.apache.org/repos/asf/sqoop/branches/sqoop2
{noformat}

Then, change to Sqoop2 source directory and build them:
{noformat}
$ cd sqoop2
$ mvn install
{noformat}

h3. Creating distribution

Now build and package Sqoop2 as distribution:
{noformat}
$ mvn package -Pdist
{noformat}

This process will create a directory and a tarball under _{{dist/target_}} directory.  The directory (named _{{sqoop-2.0.0-SNAPSHOT_}} as of this writing) contains necessary binaries to run Sqoop2, and its structure looks something like
{noformat}
--+ bin --+ sqoop
  | 
  + conf --+ sqoop_bootstrap.properties
  |        |
  |        +- sqoop.properties
  |
  + server --+ bin --+ setenv.sh
  |          |
  |          + webapps --+ sqoop.war
  |
  + sqoop-client.jar
  |
  + sqoop-common.jar
  |
  + ...
{noformat}

As part of this process, a copy of Tomcat server is also downloaded and put under the _{{server_}} directory in the above structure.

h3. Starting/Stopping Sqoop2 server

To start Sqoop2 server, change to Sqoop2 distribution directory and invoke the _{{sqoop_}} shell script:
{noformat}
cd dist/target/sqoop-2.0.0-SNAPSHOT
bin/sqoop server start
{noformat}

Similarly, to stop Sqoop2 server, do the following:
{noformat}
bin/sqoop server stop
{noformat}

h3. Starting/Running Sqoop2 client

To start an interactive shell,
{noformat}
bin/sqoop client
{noformat}

This will bring up an interactive client ready for input commands:
{noformat}
Sqoop Shell: Type 'help' or '\h' for help.

sqoop:000>
{noformat}

Alternatively, the shell client can be run in script mode.  For example, a command script can be created as
{noformat}
echo "set server --host localhost --port 8080 --webapp sqoop" > sqoop.script
echo "show version --all" >> sqoop.script
{noformat}

Then, the command script can be run with
{noformat}
bin/sqoop client sqoop.script
{noformat}

The command for the shell client looks something like *<command> <function> <options>*:

- set
-- set server
--- set server --host <host>
--- set server --port <port>
--- set server --webapp <webapp>

- show
-- show version
--- show version --all
--- show version --server
--- show version --client
--- show version --protocol
{hide-if:type=page}
-- show connector
-- show connection
-- show job

- create
-- create connection --id <connector id>  <more connection options>
-- create job --cid <connection id>  <more job options>

- start
-- start job --jid <job id>

- stop
-- stop job --jid <job id>
{hide-if}

h3. Modifying configuration

Both the default bootstrap configuration {{sqoop_bootstrap.properties}} and the main configuration {{sqoop.properties}} are located under the {{conf}} directory in the Sqoop2 distribution directory.

The bootstrap configuration {{sqoop_bootstrap.properties}} controls what the mechanism is to provide configuration:
{noformat}
sqoop.config.provider=org.apache.sqoop.core.PropertiesConfigurationProvider
{noformat}

The main configuration {{sqoop.properties}} controls what the mechanism is for repository, where the log files are, what the logging level is, etc.
{noformat}
# Log4J system
org.apache.sqoop.log4j.appender.file=org.apache.log4j.RollingFileAppender
org.apache.sqoop.log4j.appender.file.File=logs/sqoop.log
org.apache.sqoop.log4j.appender.file.MaxFileSize=25MB
org.apache.sqoop.log4j.appender.file.MaxBackupIndex=5
org.apache.sqoop.log4j.appender.file.layout=org.apache.log4j.PatternLayout
org.apache.sqoop.log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} [%l] %m%n
org.apache.sqoop.log4j.debug=true
org.apache.sqoop.log4j.rootCategory=WARN, file
org.apache.sqoop.log4j.category.org.apache.sqoop=DEBUG
org.apache.sqoop.log4j.category.org.apache.derby=INFO

# Repository
org.apache.sqoop.repository.provider=org.apache.sqoop.repository.JdbcRepositoryProvider
org.apache.sqoop.repository.jdbc.handler=org.apache.sqoop.repository.derby.DerbyRepositoryHandler
org.apache.sqoop.repository.jdbc.transaction.isolation=READ_COMMITTED
org.apache.sqoop.repository.jdbc.maximum.connections=10
org.apache.sqoop.repository.jdbc.url=jdbc:derby:repository/db;create=true
org.apache.sqoop.repository.jdbc.create.schema=true
org.apache.sqoop.repository.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
org.apache.sqoop.repository.jdbc.user=sa
org.apache.sqoop.repository.jdbc.password=
org.apache.sqoop.repository.sysprop.derby.stream.error.file=logs/derbyrepo.log
{noformat}