Atlas Hive Bridge Install
module.exports = header: 'Atlas Hive Bride Plugin', handler: (options) ->
Registry
@registry.register 'hdp_select', 'ryba/lib/hdp_select'
Packages
@service 'atlas-metadata*hive-plugin*'
@hdp_select 'atlas-client' #needed by hive server2 aux jars
Oozie ShareLib
Populates the Oozie directory with the Atlas server JAR files.
# Server: import certificates, private and public keys to hosts with a server
@call
if: options.oozie
, ->
sharelib = ''
@system.execute
header: 'Discover Oozie Sharelib latest version'
cmd: mkcmd.hdfs @, """
hdfs dfs -ls '/user/oozie/share/lib' | awk '{ print $8 }' | tail -n1
"""
, (err, executed, stdout, stderr) ->
throw err if err
sharelib = stdout.trim()
throw Error 'No Oozie Sharelib installed' if (sharelib.length is 0)
return
@call header: 'Upload Atlas Jars to Oozie ShareLib', (_, callback) ->
ssh = @ssh options.ssh
fs.readdir ssh, '/usr/hdp/current/atlas-client/hook/hive/atlas-hive-plugin-impl/', (err, files) =>
throw err if err
@each files, (opt) =>
@system.execute
retry: 2
cmd: mkcmd.hdfs @, """
hdfs dfs -put /usr/hdp/current/atlas-client/hook/hive/atlas-hive-plugin-impl/#{opt.key} \
#{sharelib}/hive/
"""
unless_exec: mkcmd.hdfs @, "hdfs dfs -stat #{sharelib}/hive/#{opt.key}"
@system.execute
retry: 2
if: -> @status -1
cmd: mkcmd.hdfs @, """
hdfs dfs -chown #{options.oozie_user.name}:#{options.oozie_user.name} #{sharelib}/hive/#{opt.key}
hdfs dfs -chmod 755 #{sharelib}/hive/#{opt.key}
"""
@next callback
Kafka Topics ACL
Wait for topics to exists.
@system.execute
header: 'KafKa Topic ACL Hive User (Simple)'
if: options.hive_bridge_enabled
cmd: mkcmd.kafka @, """
/usr/hdp/current/kafka-broker/bin/kafka-acls.sh --authorizer-properties zookeeper.connect=#{zoo_connect} \
--add --allow-principal User:#{hive_ctx.config.ryba.hive.user.name} --group #{group_id} \
--operation All --topic #{topic}
"""
unless_exec: mkcmd.kafka @, """
/usr/hdp/current/kafka-broker/bin/kafka-acls.sh --list \
--authorizer-properties zookeeper.connect=#{zoo_connect} \
--topic #{topic} | grep 'User:#{hive_ctx.config.ryba.hive.user.name} has Allow permission for operations: Write from hosts: *'
"""