Tez Install
module.exports = header: 'Tez Install', handler: ({options}) ->
Register
@registry.register 'hconfigure', 'ryba/lib/hconfigure'
@registry.register 'hdfs_upload', 'ryba/lib/hdfs_upload'
Packages
@service
header: 'Tez Packages'
name: 'tez'
HDFS Tarballs
Upload the Tez tarball inside the "/hdp/apps/$version/tez" HDFS directory. Note, the parent directories are created by the "ryba/hadoop/hdfs_dn/layout" module.
@hdfs_upload
header: 'HDFS Layout'
source: '/usr/hdp/current/tez-client/lib/tez.tar.gz'
target: '/hdp/apps/$version/tez/tez.tar.gz'
lock: '/tmp/ryba-tez.lock'
krb5_user: options.hdfs_krb5_user
Configuration
@hconfigure
header: 'Tez Site'
target: "#{options.env['TEZ_CONF_DIR']}/tez-site.xml"
source: "#{__dirname}/resources/tez-site.xml"
local: true
properties: options.tez_site
merge: true
Environment
Environment passed to Hadoop.
env = for k, v of options.env
"export #{k}=#{v}"
classpath = "#{options.env['TEZ_CONF_DIR']}:#{options.env['TEZ_JARS']}"
@file
header: 'Environment'
target: '/etc/profile.d/tez.sh'
content: env.join '\n'
mode: 0o0644
eof: true
# .write
# target: "#{hadoop_conf_dir}/hadoop-env.sh"
# match: /^export HADOOP_CLASSPATH="(.*):\$\{HADOOP_CLASSPATH\}" # RYBA TEZ CLASSPATH, DONT OVERWRITE/mg
# replace: "export HADOOP_CLASSPATH=\"#{classpath}:${HADOOP_CLASSPATH}\" # RYBA TEZ CLASSPATH, DONT OVERWRITE"
# place_before: /^export HADOOP_CLASSPATH=.*$/mg
# backup: true
Tez UI
Tez UI will be untared in the tez.ui.html_path directory. A WebServer must be configured to serve this directory.
@call header: 'UI', if: options.ui.enabled, ->
@system.mkdir
header: 'Layout'
target: options.ui.html_path
@system.execute
header: 'Web Files'
cmd: """
target_file=`ls /usr/hdp/current/tez-client/ui/tez-ui*.war | sed 's/^.*tez/tez/g'`
cd #{options.ui.html_path}
ls ${target_file} >/dev/null 2>&1
if [ $? -ne 0 ]; then
rm -rf *
cp /usr/hdp/current/tez-client/ui/tez-ui*.war .
jar xf tez-ui*.war
else
exit 3
fi
"""
code_skipped: 3
@file
header: 'Env'
target: "#{options.ui.html_path}/config/configs.env"
content: "ENV = #{JSON.stringify options.ui.env, null, ' '};"
backup: true
eof: true
@file
header: 'Fix HTTPS'
target: "#{options.ui.html_path}/assets/tez-ui.js"
write: [
match: " url = this.correctProtocol(url);"
replace: " //url = this.correctProtocol(url);"
]
backup: true