HBase Client Install
Install the HBase client package and configure it with secured access.
module.exports = header: 'HBase Client Install', handler: ({options}) ->
Register
@registry.register 'hconfigure', 'ryba/lib/hconfigure'
@registry.register 'hdp_select', 'ryba/lib/hdp_select'
@registry.register ['file', 'jaas'], 'ryba/lib/file_jaas'
Identities
By default, the "hbase" package create the following entries:
cat /etc/passwd | grep hbase
hbase:x:492:492:HBase:/var/run/hbase:/bin/bash
cat /etc/group | grep hbase
hbase:x:492:
@system.group header: 'Group', options.group
@system.user header: 'User', options.user
Packages
@service
name: 'hbase'
@hdp_select
name: 'hbase-client'
Zookeeper JAAS
JAAS configuration files for zookeeper to be deployed on the HBase Master, RegionServer, and HBase client host machines.
@file.jaas
header: 'Zookeeper JAAS'
target: "#{options.conf_dir}/hbase-client.jaas"
content: Client:
useTicketCache: 'true'
uid: options.user.name
gid: options.group.name
mode: 0o644
Configure
Note, we left the permission mode as default, Master and RegionServer need to
@hconfigure
header: 'HBase Site'
target: "#{options.conf_dir}/hbase-site.xml"
source: "#{__dirname}/../resources/hbase-site.xml"
local: true
properties: options.hbase_site
mode: 0o0644
merge: false
backup: true
Opts
Environment passed to the Master before it starts.
@call header: 'HBase Env', ->
HBASE_OPTS = options.opts.base
HBASE_OPTS += " -D#{k}=#{v}" for k, v of options.opts.java_properties
HBASE_OPTS += " #{k}#{v}" for k, v of options.opts.jvm
@file.render
header: 'Env'
target: "#{options.conf_dir}/hbase-env.sh"
source: "#{__dirname}/../resources/hbase-env.sh.j2"
local: true
context:
HBASE_OPTS: HBASE_OPTS
JAVA_HOME: options.java_home
mode: 0o644
eof: true
# Fix mapreduce looking for "mapreduce.tar.gz"
# migration: wdavidw 170905, comment to see if it still apply
# write: [
# match: /^export HBASE_OPTS=\"(.*)\$\{HBASE_OPTS\} -Djava.security.auth.login.config(.*)$/m
# replace: "export HBASE_OPTS=\"${HBASE_OPTS} -Dhdp.version=$HDP_VERSION -Djava.security.auth.login.config=#{options.conf_dir}/hbase-client.jaas\" # HDP VERSION FIX RYBA, HBASE CLIENT ONLY"
# append: true
# ]
# migration: wdavidw 170905, added
write: for k, v of options.env
match: RegExp "export #{k}=.*", 'm'
replace: "export #{k}=\"#{v}\" # RYBA ENV, DONT OVERWRITE"
append: true