Sqoop Install
The only declared dependency is MySQL Client which install the MySQL JDBC driver used by Sqoop.
module.exports = header: 'Sqoop Install', handler: (options) ->
Register
@registry.register 'hconfigure', 'ryba/lib/hconfigure'
@registry.register 'hdp_select', 'ryba/lib/hdp_select'
Identities
By default, the "sqoop" package create the following entries:
cat /etc/passwd | grep sqoop
sqoop:x:491:502:Sqoop:/var/lib/sqoop:/bin/bash
cat /etc/group | grep hadoop
hadoop:x:502:yarn,mapred,hdfs,hue
@system.group header: 'Group', options.group.name
@system.user header: 'User', options.user
Environment
Upload the "sqoop-env.sh" file into the "/etc/sqoop/conf" folder.
@file
header:'Sqoop Environment'
target: "#{options.conf_dir}/sqoop-env.sh"
source: "#{__dirname}/resources/sqoop-env.sh"
local: true
write: [
match: /^export HADOOP_HOME=.*$/m # Sqoop default is "/usr/lib/hadoop"
replace: "export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client} # RYBA for HDP"
,
match: /^export HBASE_HOME=.*$/m # Sqoop default is "/usr/lib/hbase"
replace: "export HBASE_HOME=${HBASE_HOME:-/usr/hdp/current/hbase-client} # RYBA for HDP"
,
match: /^export HIVE_HOME=.*$/m # Sqoop default is "/usr/lib/hive"
replace: "export HIVE_HOME=${HIVE_HOME:-/usr/hdp/current/hive-client} # RYBA for HDP"
,
match: /^export ZOOCFGDIR=.*$/m # Sqoop default is "/etc/zookeeper/conf"
replace: "export ZOOCFGDIR=${ZOOCFGDIR:-/etc/zookeeper/conf} # RYBA for HDP"
]
uid: options.user.name
gid: options.group.name
mode: 0o755
backup: true
Configuration
Upload the "sqoop-site.xml" files into the "/etc/sqoop/conf" folder.
@hconfigure
header: 'Sqoop Site'
target: "#{options.conf_dir}/sqoop-site.xml"
source: "#{__dirname}/resources/sqoop-site.xml"
local: true
properties: options.sqoop_site
uid: options.user.name
gid: options.group.name
mode: 0o755
merge: true
Install
Install the Sqoop package following the HDP instructions.
@call header: 'Packages', ->
@service
name: 'sqoop'
@hdp_select
name: 'sqoop-client'
Mysql Connector
MySQL is by default usable by Sqoop. The driver installed after running the "masson/commons/mysql/client" is copied into the Sqoop library folder.
# @system.copy
# source: '/usr/share/java/mysql-connector-java.jar'
# target: '/usr/hdp/current/sqoop-client/lib/'
# , next
@system.link
header: 'MySQL Connector'
source: '/usr/share/java/mysql-connector-java.jar'
target: '/usr/hdp/current/sqoop-client/lib/mysql-connector-java.jar'
Libs
Upload all the drivers present in the hdp.sqoop.libs"
configuration property into
the Sqoop library folder.
@call
header: 'Database Connector'
if: options.libs.length
, ->
for lib in options.libs
@file.download
source: lib
target: "/usr/hdp/current/sqoop-client/lib/#{path.basename lib}"
Check
Make sure the sqoop client is available on this server, using the HDP validation command.
@system.execute
header: 'Check Version'
cmd: "sqoop version | grep 'Sqoop [0-9].*'"
Dependencies
path = require 'path'