Menu

Phoenix QueryServer Install

Please refer to the Apache Phoenix QueryServer documentation.

module.exports =  header: 'Phoenix QueryServer Install', handler: ({options}) ->

Register

  @registry.register 'hconfigure', 'ryba/lib/hconfigure'
  @registry.register 'hdp_select', 'ryba/lib/hdp_select'

Identities

  @system.group header: 'Group', options.group
  @system.user header: 'User', options.user

IPTables

ServicePortProtoParameter
Phoenix QueryServer8765HTTPphoenix.queryserver.http.port
  @tools.iptables
    header: 'IPTables'
    if: options.iptables
    rules: [
      { chain: 'INPUT', jump: 'ACCEPT', dport: options.phoenix_site['phoenix.queryserver.http.port'], protocol: 'tcp', state: 'NEW', comment: "Phoenix QueryServer port" }
    ]

Packages

  @service header: 'Packages', name: 'phoenix'
  @hdp_select name: 'phoenix-server'

Kerberos

We use the SPNEGO keytab, so we let hadoop/core handle principal & keytab

  # @krb5.addprinc krb5,
  #     header: 'Kerberos'
  #     if: phoenix.queryserver.site['hbase.security.authentication'] is 'kerberos'
  #     principal: phoenix.queryserver.site['phoenix.queryserver.kerberos.principal'].replace '_HOST', options.fqdn
  #     randkey: true
  #     keytab: phoenix.queryserver.site['phoenix.queryserver.keytab.file']
  #     uid: phoenix.user.name
  #     gid: phoenix.group.name

Layout

  @call header: 'Layout', ->
    @system.mkdir
      target: options.pid_dir
      uid: options.user.name
      gid: options.user.name
    @system.mkdir
      target: options.conf_dir
      uid: options.user.name
      gid: options.group.name
    @system.mkdir
      target: options.log_dir
      uid: options.user.name
      gid: options.group.name

Service

  @call header: 'Service', ->
    @service.init
      header: 'Init Script'
      target: '/etc/init.d/phoenix-queryserver'
      source: "#{__dirname}/../resources/phoenix-queryserver.j2"
      local: true
      context: options
      mode: 0o0755
    @system.tmpfs
      if_os: name: ['redhat','centos'], version: '7'
      mount: options.pid_dir
      uid: options.user.name
      gid: options.group.name
      perm: '0750'

HBase Site

  @hconfigure
    header: 'HBase Site'
    target: "#{options.conf_dir}/hbase-site.xml"
    source: "#{__dirname}/../../hbase/resources/hbase-site.xml"
    local: true
    properties: options.phoenix_site
    backup: true
    oef: true

Env

  @file.render
    header: 'Env'
    target: "#{options.conf_dir}/hbase-env.sh"
    source: "#{__dirname}/../resources/hbase-env.sh.j2"
    local: true
    context: options
    eof: true