blob: 59282a330c45d6594ad3596de9701addeddd4c8a [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.4">
<title>Provisioning Guide</title>
<style>
/**
* @@@ START COPYRIGHT @@@
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
* @@@ END COPYRIGHT @@@
*/
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove the comments around the @import statement below when using this as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif,serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
#map_canvas img,#map_canvas embed,#map_canvas object,.map_canvas img,.map_canvas embed,.map_canvas object{max-width:none!important}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
.antialiased,body{-webkit-font-smoothing:antialiased}
img{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#3188ac;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
/* Defines headings */
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-style:normal;color:#3188ac;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
/* Defines the `text` (passthru) format */
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:bold;color:#3188ac}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.no-bullet{list-style:none}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:1.0em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
/**:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}*/
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
.keyseq{color:rgba(51,51,51,.8)}
kbd{display:inline-block;color:rgba(0,0,0,.8);font-size:.75em;line-height:1.4;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:-.15em .15em 0 .15em;padding:.2em .6em .2em .5em;vertical-align:middle;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menu{color:rgba(0,0,0,.8)}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
/* #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} */
#header>h1:first-child{color:#3188ac;margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#3188ac;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
/* Controls width of panel */
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text,#footer_nav{color:rgba(255,255,255,.8);line-height:1.44}
#footer a{color: #990000}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#990000;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif,serif;font-size:1rem;font-weight:bold}
/* Here */
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.05em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.spread{width:100%}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1{padding-right:.75em;font-weight:bold}
td.hdlist1,td.hdlist2{vertical-align:top}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none}
span.footnote,span.footnoteref{vertical-align:super;font-size:.875em}
span.footnote a,span.footnoteref a{text-decoration:none}
span.footnote a:active,span.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em;line-height:1.3;font-size:.875em;margin-left:1.2em;text-indent:-1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
h1,h2{letter-spacing:-.01em}
dt,th.tableblock,td.content{text-rendering:optimizeLegibility}
p,td.content{letter-spacing:-.01em}
p strong,td.content strong{letter-spacing:-.005em}
p,blockquote,dt,td.content{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img{page-break-inside:avoid}
thead{display:table-header-group}
img{max-width:100%!important}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
div.paragraph.indented p {padding-left: 3em;}
div.paragraph.indented2 p {padding-left: 6em;}
div.paragraph.indented3 p {padding-left: 9em;}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
/*pre.CodeRay {background-color:#f7f7f8;}*/
.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
table.CodeRay td{vertical-align: top;line-height:1.45}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
table.CodeRay td.code{padding:0 0 0 .5em}
table.CodeRay td.code>pre{padding:0}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
</head>
<body class="book toc2 toc-left">
<div id="header">
<h1>Provisioning Guide</h1>
<div class="details">
<span id="revnumber">version 2.4.0</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_about_this_document">1. About This Document</a>
<ul class="sectlevel2">
<li><a href="#_intended_audience">1.1. Intended Audience</a></li>
<li><a href="#_new_and_changed_information">1.2. New and Changed Information</a></li>
<li><a href="#_notation_conventions">1.3. Notation Conventions</a></li>
<li><a href="#_comments_encouraged">1.4. Comments Encouraged</a></li>
</ul>
</li>
<li><a href="#quickstart">2. Quick Start</a>
<ul class="sectlevel2">
<li><a href="#_download_binaries">2.1. Download Binaries</a></li>
<li><a href="#quickstart-unpack-installer">2.2. Unpack Installer and Server package</a></li>
<li><a href="#quickstart-collect-information">2.3. Collect Information</a>
<ul class="sectlevel3">
<li><a href="#_java_location">2.3.1. Java Location</a></li>
<li><a href="#_data_nodes">2.3.2. Data Nodes</a></li>
<li><a href="#_distribution_manager_url">2.3.3. Distribution Manager URL</a></li>
</ul>
</li>
<li><a href="#quickstart-run-installer">2.4. Run Installer</a></li>
</ul>
</li>
<li><a href="#introduction">3. Introduction</a>
<ul class="sectlevel2">
<li><a href="#introduction-security-considerations">3.1. Security Considerations</a></li>
<li><a href="#introduction-provisioning-options">3.2. Provisioning Options</a></li>
<li><a href="#introduction-provisioning-activities">3.3. Provisioning Activities</a></li>
<li><a href="#introduction-provisioning-master-node">3.4. Provisioning Master Node</a></li>
<li><a href="#introduction-trafodion-installer">3.5. Trafodion Installer</a>
<ul class="sectlevel3">
<li><a href="#introduction-trafodion-installer-usage">3.5.1. Usage</a></li>
<li><a href="#introduction-trafodion-installer-install-vs-upgrade">3.5.2. Install vs. Upgrade</a></li>
<li><a href="#introduction-trafodion-installer-guided-setup">3.5.3. Guided Setup</a></li>
<li><a href="#introduction-trafodion-installer-automated-setup">3.5.4. Automated Setup</a></li>
</ul>
</li>
<li><a href="#introduction-trafodion-provisioning-directories">3.6. Trafodion Provisioning Directories</a></li>
</ul>
</li>
<li><a href="#requirements">4. Requirements</a>
<ul class="sectlevel2">
<li><a href="#requirements-general-cluster-and-os-requirements-and-recommendations">4.1. General Cluster and OS Requirements and Recommendations</a>
<ul class="sectlevel3">
<li><a href="#requirements-cluster-requirements-and-recommendations">4.1.1. Hardware Requirements and Recommendations</a></li>
<li><a href="#requirements-os-requirements-and-recommendations">4.1.2. OS Requirements and Recommendations</a></li>
<li><a href="#requirements-ip-ports">4.1.3. IP Ports</a></li>
</ul>
</li>
<li><a href="#requirements-prerequisite-software">4.2. Prerequisite Software</a>
<ul class="sectlevel3">
<li><a href="#requirements-hadoop-software">4.2.1. Hadoop Software</a></li>
<li><a href="#requirements-software-packages">4.2.2. Software Packages</a></li>
</ul>
</li>
<li><a href="#requirements-trafodion-user-ids-and-their-privileges">4.3. Trafodion User IDs and Their Privileges</a>
<ul class="sectlevel3">
<li><a href="#requirements-trafodion-runtime-user">4.3.1. Trafodion Runtime User</a></li>
<li><a href="#requirements-trafodion-provisioning-user">4.3.2. Trafodion Provisioning User</a></li>
</ul>
</li>
<li><a href="#_recommended_configuration_changes">4.4. Recommended Configuration Changes</a>
<ul class="sectlevel3">
<li><a href="#requirements-recommended-security-changes">4.4.1. Recommended Security Changes</a></li>
<li><a href="#requirements-recommended-hdfs-configuration-changes">4.4.2. Recommended HDFS Configuration Changes</a></li>
<li><a href="#requirements-recommended-hbase-configuration-changes">4.4.3. Recommended HBase Configuration Changes</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#prepare">5. Prepare</a>
<ul class="sectlevel2">
<li><a href="#prepare-install-optional-workstation-software">5.1. Install Optional Workstation Software</a></li>
<li><a href="#configure-installation-user-id">5.2. Configure Installation User ID</a></li>
<li><a href="#prepare-disable-requiretty">5.3. Disable requiretty</a></li>
<li><a href="#prepare-verify-os-requirements-and-recommendations">5.4. Verify OS Requirements and Recommendations</a></li>
<li><a href="#prepare-configure-kerberos">5.5. Configure Kerberos</a></li>
<li><a href="#prepare-configure-ldap-identity-store">5.6. Configure LDAP Identity Store</a></li>
<li><a href="#prepare-gather-configuration-information">5.7. Gather Configuration Information</a></li>
<li><a href="#prepare-install-required-software-packages">5.8. Install Required Software Packages</a>
<ul class="sectlevel3">
<li><a href="#prepare-download-and-install-packages">5.8.1. Download and Install Packages</a></li>
</ul>
</li>
<li><a href="#prepare-download-trafodion-binaries">5.9. Download Trafodion Binaries</a></li>
</ul>
</li>
<li><a href="#install-ambari">6. Install with Ambari</a>
<ul class="sectlevel2">
<li><a href="#_local_repository">6.1. Local Repository</a></li>
<li><a href="#_install_ambari_management_pack_for_trafodion">6.2. Install Ambari Management Pack for Trafodion</a></li>
<li><a href="#_install_trafodion">6.3. Install Trafodion</a>
<ul class="sectlevel3">
<li><a href="#_initial_cluster_creation">6.3.1. Initial Cluster Creation</a></li>
<li><a href="#_existing_cluster">6.3.2. Existing Cluster</a></li>
</ul>
</li>
<li><a href="#_initialize_meta_data">6.4. Initialize Meta-Data</a></li>
<li><a href="#_upgrade_from_prior_version">6.5. Upgrade from Prior Version</a>
<ul class="sectlevel3">
<li><a href="#_upgrade_entire_hdp_stack">6.5.1. Upgrade Entire HDP Stack</a></li>
<li><a href="#_upgrade_only_trafodion">6.5.2. Upgrade Only Trafodion</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#install">7. Install</a>
<ul class="sectlevel2">
<li><a href="#install-unpack-installer">7.1. Unpack Installer</a></li>
<li><a href="#install-guided-install">7.2. Guided Install</a></li>
<li><a href="#install-automated-install">7.3. Automated Install</a></li>
</ul>
</li>
<li><a href="#upgrade">8. Upgrade</a>
<ul class="sectlevel2">
<li><a href="#upgraded-download-updated-trafodion-binaries">8.1. Download Updated Trafodion Binaries</a></li>
<li><a href="#upgrade-unpack-installer">8.2. Unpack Installer</a></li>
<li><a href="#upgrade-stop-tradodion">8.3. Stop Trafodion</a></li>
<li><a href="#upgrade-guided-upgrade">8.4. Guided Upgrade</a></li>
<li><a href="#upgrade-automated-upgrade">8.5. Automated Upgrade</a></li>
</ul>
</li>
<li><a href="#activate">9. Activate</a>
<ul class="sectlevel2">
<li><a href="#activate-manage-trafodion">9.1. Manage Trafodion</a></li>
<li><a href="#activate-validate-trafodion-installation">9.2. Validate Trafodion Installation</a>
<ul class="sectlevel3">
<li><a href="#_smoke_test">9.2.1. Smoke Test</a></li>
</ul>
</li>
<li><a href="#activate-troubleshooting-tips">9.3. Troubleshooting Tips</a></li>
</ul>
</li>
<li><a href="#remove">10. Remove</a>
<ul class="sectlevel2">
<li><a href="#_stop_trafodion">10.1. Stop Trafodion</a></li>
<li><a href="#_run_code_db_uninstall_py_code">10.2. Run <code>db_uninstall.py</code></a></li>
</ul>
</li>
<li><a href="#enable-security">11. Enable Security</a>
<ul class="sectlevel2">
<li><a href="#enable-security-kerberos">11.1. Configuring Trafodion for Kerberos</a>
<ul class="sectlevel3">
<li><a href="#_kerberos_configuration_file">11.1.1. Kerberos configuration file</a></li>
<li><a href="#_ticket_management">11.1.2. Ticket Management</a></li>
<li><a href="#_kerberos_installation">11.1.3. Kerberos installation</a></li>
</ul>
</li>
<li><a href="#enable-security-ldap">11.2. Configuring LDAP</a>
<ul class="sectlevel3">
<li><a href="#enable-security-configuring-ldap-servers">11.2.1. Configuring LDAP Servers</a></li>
<li><a href="#enable-security-generate-trafodion-certificate">11.2.2. Generate Trafodion Certificate</a></li>
<li><a href="#enable-security-traf-authentication-config">11.2.3. Creating the LDAP configuration file</a></li>
<li><a href="#enable-security-ldapcheck">11.2.4. Verifying configuration and users through ldapcheck</a></li>
<li><a href="#enable-security-ldapconfigcheck">11.2.5. Verifying contents of configuration file through ldapconfigcheck</a></li>
</ul>
</li>
<li><a href="#enable-security-manage-users">11.3. Manage Users</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><strong>License Statement</strong></p>
</div>
<div class="paragraph">
<p>Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at <a href="http://www.apache.org/licenses/LICENSE-2.0" class="bare">http://www.apache.org/licenses/LICENSE-2.0</a></p>
</div>
<div class="paragraph">
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p><strong>Revision History</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Version</th>
<th class="tableblock halign-left valign-top">Date</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TBD</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.1.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">May 1, 2017</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">July 7, 2016</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">June 6, 2016</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1.3.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">January, 2016</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_about_this_document">1. About This Document</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This guide describes how to provision the end-user Trafodion binaries on top of an existing Hadoop environment. This install allows you to store and query data using Trafodion, either via Trafodion clients
(see <a href="http://trafodion.apache.org/docs/client_install/index.html">Trafodion Client Installation Guide</a>) or via application code you write.</p>
</div>
<div class="paragraph">
<p>If you want to install a Trafodion developer-build environment, then please refer to the
<a href="http://trafodion.apache.org/contributing-redirect.html">Trafodion Contributor Guide</a> for instructions.</p>
</div>
<div class="sect2">
<h3 id="_intended_audience">1.1. Intended Audience</h3>
<div class="paragraph">
<p>This guide assumes that you are well-versed in Linux and Hadoop administration. If you don&#8217;t have such experience, then
you should consider going through the steps required to install a Hadoop environment before attempting to install Trafodion.</p>
</div>
<div class="paragraph">
<p>The instructions contained herein apply to the following environments.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Single-Node Environments</strong>: Typically used when you want to evaluate Trafodion.</p>
</li>
<li>
<p><strong>Cluster (Multi-Node) Environments</strong>: Typically used when you deploy Trafodion for application usage.</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Trafodion can be provisioned on a single-node or multi-node environment. Unless specifically noted, the term <strong>cluster</strong> is used
to mean both single- and multi-node environments.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The provisioning instructions applies to a diverse set of platforms:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Virtual Machines</strong>: Often used for evaluations and Trafodion development.</p>
</li>
<li>
<p><strong>Cloud</strong>: Used for Product Environments as well as for Developer Environments.</p>
</li>
<li>
<p><strong>Bare Metal</strong>: Used for Product Environments as well as for Developer Environments.</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The term <strong>node</strong> is used to represent a computing platform on which operating system, Hadoop, and Trafodion software is running.
Unless specifically qualified (bare-metal node, virtual-machine node, or cloud-node), <strong>node</strong> represents a computing platform in your cluster
regardless of platform type.
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="_new_and_changed_information">1.2. New and Changed Information</h3>
<div class="paragraph">
<p>This guide has been updated to include Ambari installation.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect2">
<h3 id="_notation_conventions">1.3. Notation Conventions</h3>
<div class="paragraph">
<p>This list summarizes the notation conventions for syntax presentation in this manual.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>UPPERCASE LETTERS</p>
<div class="paragraph">
<p>Uppercase letters indicate keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">SELECT</code></pre>
</div>
</div>
</li>
<li>
<p>lowercase letters</p>
<div class="paragraph">
<p>Lowercase letters, regardless of font, indicate variable items that you supply. Items not enclosed in brackets are required.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">file-name</code></pre>
</div>
</div>
</li>
<li>
<p>&#91; &#93; Brackets</p>
<div class="paragraph">
<p>Brackets enclose optional syntax items.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DATETIME [start-field TO] end-field</code></pre>
</div>
</div>
<div class="paragraph">
<p>A group of items enclosed in brackets is a list from which you can choose one item or none.</p>
</div>
<div class="paragraph">
<p>The items in the list can be arranged either vertically, with aligned brackets on each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DROP SCHEMA schema [CASCADE]
DROP SCHEMA schema [ CASCADE | RESTRICT ]</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
<div class="ulist">
<ul>
<li>
<p>{ } Braces</p>
<div class="paragraph">
<p>Braces enclose required syntax items.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">FROM { grantee [, grantee ] ... }</code></pre>
</div>
</div>
<div class="paragraph">
<p>A group of items enclosed in braces is a list from which you are required to choose one item.</p>
</div>
<div class="paragraph">
<p>The items in the list can be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">INTERVAL { start-field TO end-field }
{ single-field }
INTERVAL { start-field TO end-field | single-field }</code></pre>
</div>
</div>
</li>
<li>
<p>| Vertical Line</p>
<div class="paragraph">
<p>A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">{expression | NULL}</code></pre>
</div>
</div>
</li>
<li>
<p>&#8230; Ellipsis</p>
<div class="paragraph">
<p>An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ATTRIBUTE[S] attribute [, attribute] ...
{, sql-expression } ...</code></pre>
</div>
</div>
<div class="paragraph">
<p>An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">expression-n ...</code></pre>
</div>
</div>
</li>
<li>
<p>Punctuation</p>
<div class="paragraph">
<p>Parentheses, commas, semicolons, and other symbols not previously described must be typed as shown.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DAY (datetime-expression)
@script-file</code></pre>
</div>
</div>
<div class="paragraph">
<p>Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must type as shown.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">&quot;{&quot; module-name [, module-name] ... &quot;}&quot;</code></pre>
</div>
</div>
</li>
<li>
<p>Item Spacing</p>
<div class="paragraph">
<p>Spaces shown between items are required unless one of the items is a punctuation symbol such as a parenthesis or a comma.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">DAY (datetime-expression) DAY(datetime-expression)</code></pre>
</div>
</div>
<div class="paragraph">
<p>If there is no space between two items, spaces are not permitted. In this example, no spaces are permitted between the period and any other items:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">myfile.sh</code></pre>
</div>
</div>
</li>
<li>
<p>Line Spacing</p>
<div class="paragraph">
<p>If the syntax of a command is too long to fit on a single line, each continuation line is indented three spaces and is separated from the preceding line by a blank line.</p>
</div>
<div class="paragraph">
<p>This spacing distinguishes items in a continuation line from items in a vertical list of selections.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">match-value [NOT] LIKE _pattern
[ESCAPE esc-char-expression]</code></pre>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_comments_encouraged">1.4. Comments Encouraged</h3>
<div class="paragraph">
<p>We encourage your comments concerning this document. We are committed to providing documentation that meets your
needs. Send any errors found, suggestions for improvement, or compliments to <a href="mailto:user@trafodion.apache.org">user@trafodion.apache.org</a>.</p>
</div>
<div class="paragraph">
<p>Include the document title and any comment, error found, or suggestion for improvement you have concerning this document.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="quickstart">2. Quick Start</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This chapter provides a quick start for how to use the command-line Trafodion Installer to install Trafodion.
<strong>If you prefer to intall on HDP distribution using Ambari, refer to the <a href="#install-ambari">Ambari Install</a> section.</strong></p>
</div>
<div class="paragraph">
<p>You need the following before using the information herein:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A supported and running Hadoop enviroment with HDFS, HBase, and Hive. Refer to the
<a href="http://trafodion.apache.org/release-notes.html">Release Notes</a> for information about supported versions.</p>
</li>
<li>
<p>A user ID with passwordless SSH among all the nodes in the cluster. This user ID must have sudo access.</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The Trafodion Installer modifies and restarts your Hadoop environment.
</td>
</tr>
</table>
</div>
<div class="sect2">
<h3 id="_download_binaries">2.1. Download Binaries</h3>
<div class="paragraph">
<p>You download the Trafodion binaries from the Trafodion <a href="http://trafodion.apache.org/download.html">Download</a> page.
Download the following packages:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Trafodion Installer (if planning to use the Trafodion Installer)</p>
</li>
<li>
<p>Trafodion Server</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
You can download and install the Trafodion Clients once you&#8217;ve installed and activated Trafodion. Refer to the
<a href="http://trafodion.apache.org/docs/client_install/index.html">Trafodion Client Install Guide</a> for instructions.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>Download the Trafodion Installer and Server binaries:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ mkdir $HOME/trafodion-download
$ cd $HOME/trafodion-download
$ # Download the Trafodion Installer binaries
$ wget http://apache.cs.utah.edu/trafodion/trafodion-2.2.0/apache-trafodion-pyinstaller-2.2.0.tar.gz
Resolving http://apache.cs.utah.edu... 192.168.1.56
Connecting to http://apache.cs.utah.edu|192.168.1.56|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 68813 (67K) [application/x-gzip]
Saving to: &quot;apache-trafodion-pyinstaller-2.2.0.tar.gz&quot;
100%[=====================================================================================================================&gt;] 68,813 124K/s in 0.5s
2016-02-14 04:19:42 (124 KB/s) - &quot;apache-trafodion-pyinstaller-2.2.0.tar.gz&quot; saved [68813/68813]
$ wget http://apache.cs.utah.edu/trafodion/trafodion-2.2.0/apache-trafodion_server-2.2.0-RH-x86_64.tar.gz
Resolving http://apache.cs.utah.edu... 192.168.1.56
Connecting to http://apache.cs.utah.edu|192.168.1.56|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 214508243 (205M) [application/x-gzip]
Saving to: &quot;apache-trafodion_server-2.2.0-RH-x86_64.tar.gz&quot;
100%[=====================================================================================================================&gt;] 214,508,243 3.90M/s in 55s
2016-02-14 04:22:14 (3.72 MB/s) - &quot;apache-trafodion_server-2.2.0-RH-x86_64.tar.gz&quot; saved [214508243/214508243]
$ ls -l
-rw-rw-r--. 1 centos centos 74237 Feb 13 14:53 apache-trafodion_pyinstaller-2.2.0.tar.gz
-rw-rw-r--. 1 centos centos 183114066 Feb 10 22:34 apache-trafodion_server-2.2.0-RH-x86_64.tar.gz
$</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quickstart-unpack-installer">2.2. Unpack Installer and Server package</h3>
<div class="paragraph">
<p>The first step in the installation process is to unpack the Trafodion Installer tar file.
Trafodion server package tar file can be auto detected by installer if put it in installer&#8217;s folder.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ mkdir $HOME/trafodion-installer
$ cd $HOME/trafodion-downloads
$ tar -zxf apache-trafodion-pyinstaller-2.2.0.tar.gz -C $HOME/trafodion-installer
$ cp -f apache-trafodion_server-2.2.0-RH-x86_64.tar.gz $HOME/trafodion-installer
$ ls $HOME/trafodion-installer/python-installer
apache-trafodion_server-2.2.0-RH-x86_64.tar.gz db_install.py LICENSE prettytable.py scripts
configs db_uninstall.py discovery.py NOTICE README.md
$</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="quickstart-collect-information">2.3. Collect Information</h3>
<div class="paragraph">
<p>Collect/decide the following information:</p>
</div>
<div class="sect3">
<h4 id="_java_location">2.3.1. Java Location</h4>
<div class="paragraph">
<p>Java location can be automatically detected by installer. You need to provide the java location only if installer cannot detect it.</p>
</div>
<div class="paragraph">
<p>How to detect java location manually:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Login to trafodion' node</p>
</li>
<li>
<p>Use <code>ps -ef | grep java | grep hadoop | grep hbase</code> to determine what version HBase is running.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">ps -ef | grep java | grep hadoop | grep hbase
hbase 17302 17288 1 20:35 ? 00:00:10 /usr/jdk64/jdk1.7.0_67/bin/java -Dproc_master -XX:OnOutOfMemoryError=kill -9 %p -Dhdp.version=2.3.6.0-3796 -XX:+UseConcMarkSweepGC -XX:ErrorFile=/var/log/hbase/hs_err_pid%p.log -Djava.io.tmpdir=/tmp -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/hbase/gc.log-201606302035 -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m -Dhbase.log.dir=/var/log/hbase -Dhbase.log.file=hbase-hbase-master-ip-172-31-56-238.log -Dhbase.home.dir=/usr/hdp/current/hbase-master/bin/.. -Dhbase.id.str=hbase -Dhbase.root.logger=INFO,RFA -Djava.library.path=:/usr/hdp/2.3.6.0-3796/hadoop/lib/native/Linux-amd64-64:/usr/hdp/2.3.6.0-3796/hadoop/lib/native -Dhbase.security.logger=INFO,RFAS org.apache.hadoop.hbase.master.HMaster start</code></pre>
</div>
</div>
<div class="paragraph">
<p>The Java location is: <code>/usr/jdk64/jdk1.7.0_67</code></p>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="_data_nodes">2.3.2. Data Nodes</h4>
<div class="paragraph">
<p>Trafodion is installed on all data nodes in your Hadoop cluster. Data nodes can be automatically detected by installer while installing on a HDP/CDH cluster.</p>
</div>
<div class="paragraph">
<p>You need to record hostname for each node when you install Trafodion on Apache Hadoop.
For example, refer to <code>/etc/hosts</code>.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.31.56.238 node-1.internal node-1
172.31.61.110 node-2.internal node-2</code></pre>
</div>
</div>
<div class="paragraph">
<p>Record the node names in a comma-separated list <code>node-1, node-2</code> or in regular expression mode <code>node-[1-2]</code></p>
</div>
</div>
<div class="sect3">
<h4 id="_distribution_manager_url">2.3.3. Distribution Manager URL</h4>
<div class="paragraph">
<p>The Installer interacts with the Distribution Manager (for example, Apache Ambari or Cloudera Manager) to modify the
Hadoop configuration.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="paragraph">
<p>Apache Ambari URL</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">http://myhost.com:8080</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect2">
<h3 id="quickstart-run-installer">2.4. Run Installer</h3>
<div class="paragraph">
<p>You run the Installer once you&#8217;ve collected the base information as described in
<a href="#quickstart-collect-information">Collect Information</a> above.</p>
</div>
<div class="paragraph">
<p>Please refer to <a href="#install-guided-install">Guided Install</a> for the <strong>example</strong> of installing Trafodion on a two-node Cloudera Hadoop cluster.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="introduction">3. Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Trafodion is a Hadoop add-on service that provides transactional SQL on top of HBase. Typically, you
use Trafodion as the database for applications that require Online Transaction Processing (OLTP),
Operational Data Store (ODS), and/or strong reporting capabilities. You access Trafodion using
standard JDBC and ODBC APIs.</p>
</div>
<div class="paragraph">
<p>You may choose whether to add Trafodion to an existing Hadoop environment or to create a standalone
Hadoop environment specifically for Hadoop.</p>
</div>
<div class="paragraph">
<p>This guide assumes that a Hadoop environment exists upon which your provisioning Trafodion. Refer to
<a href="#requirements-hadoop-software">Hadoop Software</a> for information about what Hadoop software is required
Trafodion.</p>
</div>
<div class="sect2">
<h3 id="introduction-security-considerations">3.1. Security Considerations</h3>
<div class="paragraph">
<p>The following users and principals need be considered for Trafodion:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Provisioning User</strong>: A Linux-level user that performs the Trafodion provisioning tasks. This user ID
requires <code>sudo</code> access and passwordless ssh among the nodes where Trafodion is installed. In addition,
this user ID requires access to Hadoop distribution, HDFS, and HBase administrative users to change
respective environment&#8217;s configuration settings per Trafodion requirements. Refer to
<a href="#requirements-trafodion-provisioning-user">Trafodion Provisioning User</a> for more information
about the requirements and usage associated with this user ID.</p>
</li>
<li>
<p><strong>Runtime User</strong>: A Linux-level user under which the Trafodion software runs, default name is <code>trafodion</code>. This user ID must be registered
as a user in the Hadoop Distributed File System (HDFS) to store and access objects in HDFS, HBase, and Hive.
In addition, this user ID requires passwordless access among the nodes where Trafodion is installed.
Refer to <a href="#requirements-trafodion-runtime-user">Trafodion Runtime User</a> for more information about this user ID.</p>
</li>
<li>
<p><strong>Trafodion Database Users</strong>: Trafodion users are managed by Trafodion security features (grant, revoke, etc.),
which can be integrated with LDAP if so desired. These users are referred to as <strong>database users</strong> and
do not have direct access to the operating system. Refer to <a href="#enable-security-ldap">LDAP</a> for
details on enabling LDAP for authenticating database users.
Refer to <a href="http://trafodion.apache.org/docs/sql_reference/index.html#register_user_statement">Register User</a>,
<a href="http://trafodion.apache.org/docs/sql_reference/index.html#grant_statement">Grant</a>, and other SQL statements
in the <a href="http://trafodion.apache.org/docs/sql_reference/index.html">Trafodion SQL Reference Manual</a> for
more information about managing Trafodion Database Users.
<br>
<br>
If your environment has been provisioned with Kerberos, then the following additional information is required.</p>
</li>
<li>
<p><strong>KDC admin principal</strong>: Trafodion requires administrator access to Kerberos to create principals
and keytabs for the <code>trafodion</code> user, and to look-up principal names for HDFS and HBase keytabs. Refer to
<a href="#enable-security-kerberos">Kerberos</a> for more information about the requirements and usage associated with this principal.</p>
</li>
<li>
<p><strong>HBase keytab location</strong>: Trafodion requires administrator access to HBase to grant required privileges to the <code>trafodion</code> user. Refer to
<a href="#enable-security-kerberos">Kerberos</a> for more information about the requirements and usage associated with this keytab.</p>
</li>
<li>
<p><strong>HDFS keytab location</strong>: Trafodion requires administrator access to HDFS to create directories that store files needed to perform SQL requests
such as data loads and backups. Refer to
<a href="#enable-security-kerberos">Kerberos</a> for more information about the requirements and usage associated with this keytab.
<br>
<br>
If your environment is using LDAP for authentication, then the following additional information is required.</p>
</li>
<li>
<p><strong>LDAP username for database root access</strong>: When Trafodion is installed, it creates a predefined database user referred to as the DB__ROOT user.
In order to connect to the database as database root, there must be a mapping between the database user DB__ROOT and an LDAP user. Refer to
<a href="#enable-security-ldap">LDAP</a> for more information about this option.</p>
</li>
<li>
<p><strong>LDAP search user name</strong>: Trafodion optionally requests an LDAP username and password in order to perform LDAP operations
such as LDAP search. Refer to
<a href="#enable-security-ldap">LDAP</a> for more information about this option.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="introduction-provisioning-options">3.2. Provisioning Options</h3>
<div class="paragraph">
<p>Trafodion includes two options for installation: a plug-in integration with Apache Ambari and command-line installation scripts.</p>
</div>
<div class="paragraph">
<p>The Ambari integration provides support for Hortonworks Hadoop distributions, while the command-line Trafodion Installer
supports Cloudera and Hortonworks Hadoop distributions, and for select vanilla Hadoop installations.</p>
</div>
<div class="paragraph">
<p>The Trafodion Installer supports Linux distributions SUSE and RedHat/CentOS. There are, however, some differences.
Prerequisite software packages are not installed automatically on SUSE.</p>
</div>
<div class="paragraph">
<p>The Trafodion Installer automates many of the tasks required to install/upgrade Trafodion, from downloading and
installing required software packages and making required configuration changes to your Hadoop environment via creating
the Trafodion runtime user ID to installing and starting Trafodion. It is, therefore, highly recommend that
you use the Trafodion Installer for initial installation and upgrades of Trafodion. These steps are referred to as
"Script-Based Provisioning" in this guide. Refer to <a href="#introduction-trafodion-installer">Trafodion Installer</a> that provides
usage information.</p>
</div>
</div>
<div class="sect2">
<h3 id="introduction-provisioning-activities">3.3. Provisioning Activities</h3>
<div class="paragraph">
<p>Trafodion provisioning is divided into the following main activities:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong><a href="#requirements">Requirements</a></strong>: Activities and documentation required to install the Trafodion software.
These activities include tasks such as understanding hardware and operating system requirements,
Hadoop requirements, what software packages that need to be downloaded, configuration settings that need to be changed,
and user ID requirements.</p>
</li>
<li>
<p><strong><a href="#prepare">Prepare</a></strong>: Activities to prepare the operating system and the Hadoop ecosystem to run
Trafodion. These activities include tasks such as installing required software packages, configure
the Trafodion Installation User, gather information about the Hadoop environment, and the modify configuration
for different Hadoop services.</p>
</li>
<li>
<p><strong><a href="#install">Install</a></strong>: Activities related to installing the Trafodion software. These activities
include tasks such as unpacking the Trafodion tar files, creating the Trafodion Runtime User,
creating Trafodion HDFS directories, installing the Trafodion software, and enabling security features.</p>
</li>
<li>
<p><strong><a href="#upgrade">Upgrade</a></strong>: Activities related to the upgrading the Trafodion software. These activities
include tasks such as shutting down Trafodion and installing a new version of the Trafodion software.
The upgrade tasks vary depending on the differences between the current and new release of
Trafodion. For example, an upgrade may or may not include an upgrade of the Trafodion metadata.</p>
</li>
<li>
<p><strong><a href="#activate">Activate</a></strong>: Activities related to starting the Trafodion software. These actives
include basic management tasks such as starting and checking the status of the Trafodion components and performing basic smoke tests.</p>
</li>
<li>
<p><strong><a href="#remove">Remove</a></strong>: Activities related to removing Trafodion from your Hadoop cluster.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="introduction-provisioning-master-node">3.4. Provisioning Master Node</h3>
<div class="paragraph">
<p>All provisioning tasks are performed from a single node in the cluster, which can be any node
as long as it has access to the Hadoop environment you&#8217;re adding Trafodion to.
This node is referred to as the "<strong>Provisioning Master Node</strong>" in this guide.</p>
</div>
<div class="paragraph">
<p>The Trafodion Provisioning User must have access to all other nodes from the Provisioning
Master Node in order to perform provisioning tasks on the cluster.</p>
</div>
</div>
<div class="sect2">
<h3 id="introduction-trafodion-installer">3.5. Trafodion Installer</h3>
<div class="paragraph">
<p>The Trafodion Installer is a set of scripts automates most of the tasks requires to install/upgrade Trafodion.
You download the Trafodion Installer tar file from the Trafodion <a href="http://trafodion.apache.org/download.html">download</a> page.
Next, you unpack the tar file.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ mkdir $HOME/trafodion-installer
$ cd $HOME/trafodion-downloads
$ tar -zxf apache-trafodion-pyinstaller-2.2.0.tar.gz -C $HOME/trafodion-installer
$</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>The Trafodion Installer supports two different modes:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p><strong>Guided Setup</strong>: Prompts for information as it works through the installation/upgrade process. This mode is recommended for new users.</p>
</li>
<li>
<p><strong>Automated Setup</strong>: Required information is provided in a pre-formatted ini configuration file, which is provided
via a command argument when running the Trafodion Installer thereby suppressing all prompts. This ini configuration file only exists
on the <strong>Provisioning Master Node</strong>, please secure this file or delete it after you installed Trafodion successfully.</p>
<div class="paragraph">
<p>A template of the configuration file is available here within the installer directory: <code>configs/db_config_default.ini</code>.
Make a copy of the file in your directory and populate the needed information.</p>
</div>
<div class="paragraph">
<p>Automated Setup is recommended since it allows you to record the required provisioning information ahead of time.
Refer to <a href="#introduction-trafodion-installer-automated-setup">Automated Setup</a> for information about how to
populate this file.</p>
</div>
</li>
</ol>
</div>
<div class="sect3">
<h4 id="introduction-trafodion-installer-usage">3.5.1. Usage</h4>
<div class="paragraph">
<p>The following shows help for the Trafodion Installer.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">$ ./db_install.py -h
**********************************
Trafodion Installation ToolKit
**********************************
Usage: db_install.py [options]
Trafodion install main script.
Options:
-h, --help show this help message and exit
-c FILE, --config-file=FILE
Json format file. If provided, all install prompts
will be taken from this file and not prompted for.
-u USER, --remote-user=USER
Specify ssh login user for remote server,
if not provided, use current login user as default.
-v, --verbose Verbose mode, will print commands.
--silent Do not ask user to confirm configuration result
--enable-pwd Prompt SSH login password for remote hosts.
If set, 'sshpass' tool is required.
--build Build the config file in guided mode only.
--reinstall Reinstall Trafodion without restarting Hadoop.
--apache-hadoop Install Trafodion on top of Apache Hadoop.
--offline Enable local repository for offline installing
Trafodion.</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
<div class="sect3">
<h4 id="introduction-trafodion-installer-install-vs-upgrade">3.5.2. Install vs. Upgrade</h4>
<div class="paragraph">
<p>The Trafodion Installer automatically detects whether you&#8217;re performing an install
or an upgrade by looking for the Trafodion Runtime User in the <code>/etc/passwd</code> file.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If the user ID doesn&#8217;t exist, then the Trafodion Installer runs in install mode.</p>
</li>
<li>
<p>If the user ID exists, then the Trafodion Installer runs in upgrade mode.</p>
</li>
<li>
<p>If <code>--reinstall</code> option is specified, then the Trafodion Installer will not restart Hadoop. It&#8217;s only available when
you reinstall the same release version, otherwise an error will be reported during installation.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="introduction-trafodion-installer-guided-setup">3.5.3. Guided Setup</h4>
<div class="paragraph">
<p>By default, the Trafodion Installer runs in Guided Setup mode, which means
that it prompts you for information during the install/upgrade process.</p>
</div>
<div class="paragraph">
<p>Refer to the following sections for examples:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#install-guided-install">Guided Install</a></p>
</li>
<li>
<p><a href="#upgrade-guided-upgrade">Guided Upgrade</a></p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="introduction-trafodion-installer-automated-setup">3.5.4. Automated Setup</h4>
<div class="paragraph">
<p>The <code>--config-file</code> option runs the Trafodion in Automated Setup mode.</p>
</div>
<div class="paragraph">
<p>Before running the Trafodion Installer with this option, you do the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Copy the <code>db_config_default.ini</code> file.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cp configs/db_config_default.ini my_config</code></pre>
</div>
</div>
</li>
<li>
<p>Edit the new file using information you collect in the
<a href="#prepare-gather-configuration-information">Gather Configuration Information</a>
section in the <a href="#prepare">Prepare</a> chapter.</p>
</li>
<li>
<p>Run the Trafodion Installer in Automated Setup Mode</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">./db_install.py --config-file my_config</code></pre>
</div>
</div>
</li>
</ol>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Your Trafodion Configuration File contains the password for the Trafodion Runtime User
and for the Distribution Manager. Therefore, we recommend that you secure the file in a manner
that matches the security policies of your organization.
</td>
</tr>
</table>
</div>
<div class="sect4">
<h5 id="_example_quick_start_using_a_trafodion_configuration_file">Example: Quick start using a Trafodion Configuration File</h5>
<div class="paragraph">
<p>The Trafodion Installer supports a minimum configuration to quick start your installation in two steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Copy Trafodion server binary file to your installer directory.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">cp /path/to/apache-trafodion_server-2.2.0-RH-x86_64.tar.gz python-installer/</code></pre>
</div>
</div>
</li>
<li>
<p>Modify configuration file <code>my_config</code>, add the Hadoop Distribution Manager URL in <code>mgr_url</code>.</p>
<div class="paragraph">
<p><strong>Example</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">mgr_url = 192.168.0.1:8080</code></pre>
</div>
</div>
<div class="paragraph">
<p>Once completed, run the Trafodion Installer with the --config-file option.</p>
</div>
</li>
</ol>
</div>
</div>
<div class="sect4">
<h5 id="_example_creating_a_trafodion_configuration_file">Example: Creating a Trafodion Configuration File</h5>
<div class="paragraph">
<p>Using the instructions in <a href="#prepare-gather-configuration-information">Gather Configuration Information</a>
in the <a href="#prepare">Prepare</a> chapter, record the information and edit <code>my_config</code> to contain the following:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="text">[dbconfigs]
# NOTICE: if you are using CDH/HDP hadoop distro,
# you can only specifiy management url address for a quick install
##################################
# Common Settings
##################################
# trafodion username and password
traf_user = trafodion
traf_pwd = traf123
# trafodion user's home directory
home_dir = /home
# the directory location of trafodion binary
# if not provided, the default value will be {package_name}-{version}
traf_dirname =
# trafodion used java(JDK) path on trafodion nodes
# if not provided, installer will auto detect installed JDK
java_home =
# cloudera/ambari management url(i.e. http://192.168.0.1:7180 or just 192.168.0.1)
# if 'http' or 'https' prefix is not provided, the default one is 'http'
# if port is not provided, the default port is cloudera port '7180'
mgr_url = 192.168.0.1:8080
# user name for cloudera/ambari management url
mgr_user = admin
# password for cloudera/ambari management url
mgr_pwd = admin
# set the cluster number if multiple clusters managed by one Cloudera manager
# ignore it if only one cluster being managed
cluster_no = 1
# trafodion tar package file location
# no need to provide it if the package can be found in current installer's directory
traf_package =
# the number of dcs servers on each node
dcs_cnt_per_node = 4
# scratch file location, seperated by comma if more than one
scratch_locs = $TRAF_VAR
# start trafodion instance after installation completed
traf_start = Y
##################################
# DCS HA configuration
##################################
# set it to 'Y' if enable DCS HA
dcs_ha = N
# if HA is enabled, provide floating ip, network interface and the hostname of backup dcs master nodes
dcs_floating_ip =
# network interface that dcs used
dcs_interface =
# backup dcs master nodes, seperated by comma if more than one
dcs_backup_nodes =
##################################
# Offline installation setting
##################################
# set offline mode to Y if no internet connection
offline_mode = N
# if offline mode is set, you must provide a local repository directory with all needed RPMs
local_repo_dir =
##################################
# LDAP security configuration
##################################
# set it to 'Y' if enable LDAP security
ldap_security = N
# LDAP user name and password to be assigned as DB admin privilege
db_admin_user = admin
db_admin_pwd = traf123
# LDAP user to be assigned DB root privileges (DB__ROOT)
db_root_user = trafodion
# if LDAP security is enabled, provide the following items
ldap_hosts =
# 389 for no encryption or TLS, 636 for SSL
ldap_port = 389
ldap_identifiers =
ldap_encrypt = 0
ldap_certpath =
# set to Y if user info is needed
ldap_userinfo = N
# provide if ldap_userinfo = Y
ladp_user =
ladp_pwd =
##################################
# Kerberos security configuration
##################################
# if kerberos is enabled in your hadoop system, provide below info
# KDC server address
kdc_server =
# include realm, i.e. admin/admin@EXAMPLE.COM
admin_principal =
# admin password for admin principal, it is used to create trafodion user's principal and keytab
kdcadmin_pwd =</code></pre>
</div>
</div>
<div class="paragraph">
<p>Once completed, run the Trafodion Installer with the <code>--config-file</code> option.</p>
</div>
<div class="paragraph">
<p>Refer to the following sections for examples:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#install-automated-install">Automated Install</a></p>
</li>
<li>
<p><a href="#upgrade-automated-upgrade">Automated Upgrade</a></p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="introduction-trafodion-provisioning-directories">3.6. Trafodion Provisioning Directories</h3>
<div class="paragraph">
<p>Trafodion stores its provisioning information in the following directories on each node in the cluster:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>/etc/trafodion</code>: Configuration information.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="requirements">4. Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Trafodion requires an x86 version of Linux.</p>
</div>
<div class="paragraph">
<p>The current release of Trafodion has been tested with:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>64-bit Red Hat Enterprise Linux (RHEL) or CentOS 6.5 - 6.8</p>
</li>
<li>
<p>Cloudera CDH 5.4 - 5.7</p>
</li>
<li>
<p>Hortonworks HDP 2.3 - 2.4</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Other OS releases may work, too. The Trafodion project is currently working on better support for more distribution and non-distribution versions of Hadoop.</p>
</div>
<div class="sect2">
<h3 id="requirements-general-cluster-and-os-requirements-and-recommendations">4.1. General Cluster and OS Requirements and Recommendations</h3>
<div class="paragraph">
<p>64-bit x86 instruction set running a Linux distribution is required. Further, Trafodion assumes an environment
based on the requirements of the tested Hadoop distributions/services.</p>
</div>
<div class="sect3">
<h4 id="requirements-cluster-requirements-and-recommendations">4.1.1. Hardware Requirements and Recommendations</h4>
<div class="sect4">
<h5 id="requirements-single-node-cluster">Single-Node Cluster</h5>
<div class="paragraph">
<p>It is possible to run Trafodion on a single-node sandbox environment. Typically, any sandbox running a Hadoop distribution
can be used. A typical single-node configuration uses 4-8 cores with 16 GB of memory, and 20 GB free disk space.</p>
</div>
</div>
<div class="sect4">
<h5 id="requirements-multi-node-cluster">Multi-Node Cluster</h5>
<div class="paragraph">
<p>For multi-node end-user clusters, your typical HBase environment should suffice for Trafodion.
Typically, memory configuration range between 64-128 GB per node with minimum requirement of 16 GB.
The cluster size can span from 1 to <em>n</em> nodes; a minimum of two nodes is recommended.
A minimum of two cores is required regardless of whether you&#8217;re deploying Trafodion on a bare-metal or virtual environment.</p>
</div>
<div style="page-break-after: always;"></div>
<div class="paragraph">
<p>Recommended configurations:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Attribute</th>
<th class="tableblock halign-left valign-top">Guidance</th>
</tr>
</thead>
<tbody>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Processors per Node</p></th>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; Small: 2 cores<br>
&#8226; Medium: 4 cores<br>
&#8226; Large: 8+ cores</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Memory per Node</p></th>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; Small: 16 GB<br>
&#8226; Medium: 64 GB<br>
&#8226; Large: 128 GB</p>
</div></div></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Concurrency:Nodes</p></th>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; Two Small Nodes: Four concurrent queries<br>
&#8226; Two Medium Nodes: 64 concurrent queries<br>
&#8226; Two Large Nodes: 256 concurrent queries</p>
</div></div></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect3">
<h4 id="requirements-os-requirements-and-recommendations">4.1.2. OS Requirements and Recommendations</h4>
<div class="paragraph">
<p>Please verify these requirements on each node you will install Trafodion on:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 20%;">
<col style="width: 40%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Function</th>
<th class="tableblock halign-left valign-top">Requirement</th>
<th class="tableblock halign-left valign-top">Verification Guidance</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Linux</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>64-bit version of Red Hat(RHEL) or CentOS 6.5 -6.8</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>cat /etc/redhat-release</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>sshd</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>The <code>ssh</code> daemon is running on each node in the cluster.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; <code>ps aux | grep sshd</code><br>
&#8226; <code>sudo netstat -plant | grep :22</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>ntpd</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>The <code>ntp</code> daemon is running and synchronizing time on each node in the cluster.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; <code>ps aux | grep ntp</code><br>
&#8226; <code>ntpq -p</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>FQDN</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; <code>/etc/hosts</code> is set up for fully-qualified node names (FQDN).<br>
&#8226; <code>/etc/resolv.conf</code> is configured to use a name server.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; <code>hostname --fqdn</code> shows the fully-qualified node name, if any.<br>
&#8226; The fully-qualified node name is part of the <code>/etc/hosts</code> file.<br>
&#8226; <code>host -T &lt;FQDN&gt;</code> (responds if using a DNS server, times out otherwise)<br>
&#8226; Simply ssh among nodes using <code>ssh &lt;FQDN&gt;</code>.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Port Availability</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>The Linux Kernel Firewall (<code>iptables</code>) has either been disabled or <a href="#ip-ports">ports required by Trafodion</a> have been opened.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>&#8226; <code>lsmod | grep ip_tables</code> checks whether <code>iptables</code> is loaded. If not, no further checking is needed.<br>
&#8226; <code>sudo iptables -nL | grep &lt;port&gt;</code> checks the configuration of a port. An empty response indicates no rule for the port, which often means
the port is <strong>not</strong> open.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>passwordless ssh</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>The user name used to provision Trafodion must have passwordless ssh access to all nodes.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>ssh to the nodes, ensure that no password prompt appears.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>sudo privileges</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>The user name used to provision Trafodion must sudo access to a number of root functions .</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>sudo echo "test"</code> on each node.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>bash</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available for shell-script execution.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>bash --version</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>java</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available to run the Trafodion software. Same version as HBase is using.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>java --version</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>perl</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available for script execution.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>perl --version</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>python</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available for script execution.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>python --version</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>yum</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available for installs, updates, and removal of software packages.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>yum --version</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>rpm</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available for installs, updates, and removal of software packages.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>rpm --version</code></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>scp</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>Available to copy files among nodes in the cluster.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p><code>scp --help</code></p>
</div></div></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="requirements-ip-ports">4.1.3. IP Ports</h4>
<div class="paragraph">
<p>The following table lists the default ports used by the different Trafodion components plus the configuration file and configuration attribute associated with each port setting.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 10%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 10%;">
<col style="width: 5%;">
<col style="width: 10%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Default Port</th>
<th class="tableblock halign-left valign-top">Configuration File</th>
<th class="tableblock halign-left valign-top">Configuration Entry</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Range</th>
<th class="tableblock halign-left valign-top">Protocol</th>
<th class="tableblock halign-left valign-top">Comment</th>
</tr>
</thead>
<tbody>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">4200</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>rest-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafodion.rest.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">REST</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion REST Server.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">4201</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>rest-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>trafodion.rest.https.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trafodion REST Server (HTTPS).</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">23400</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dcs-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dcs.master.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>n</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">binary</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Start of Trafodion DCS port range. (37800 for Trafodion 1.1)</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">24400</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dcs-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dcs.master.info.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">DCS master web GUI. (40010 for Trafodion 1.1)</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">24410</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dcs-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dcs.server.info.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Yes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>n</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Start of range for DCS server web GUIs. (40030 for Trafodion 1.1)</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">50030</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>mapred-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>mapred.job.tracker.http.address</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MapReduce Job Tracker web GUI.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">50070</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hdfs-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dfs.http.address</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HDFS Name Node web GUI.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">50075</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hdfs-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dfs.datanode.http.address</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HDFS Data Node web GUI.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">50090</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hdfs-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>dfs.secondary.http.address</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HDFS Secondary Name Node web GUI.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">60010</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hbase-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hbase.master.info.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HBase Master web GUI.</p></td>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">60030</p></th>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hbase-site.xml</pre></div></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>hbase.regionserver.info.port</pre></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">No</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTP</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HBase Region Server web GUI.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>There are two port ranges used by Trafodion.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>23400 is a range, to allow multiple mxosrvr processes on each node. Allow a range of a few ports,
enough to cover all the servers per node that are listed in the "servers" file in the DCS configuration directory.</p>
</li>
<li>
<p>24410 is a range as well, enough to cover the DCS servers per node, usually 1 or 2.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>On top of the ports identified above, you also need the ports required by your Hadoop distribution. For example:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cdh_ig_ports_cdh5.html"><em>Cloudera Ports</em></a></p>
</li>
<li>
<p><a href="http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0-Win/bk_HDP_Install_Win/content/ref-79239257-778e-42a9-9059-d982d0c08885.1.html"><em>Hortonworks Ports</em></a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If you have Kerberos or LDAP enabled, then ports required by these products need to be opened as well.</p>
</div>
<div class="paragraph">
<p>Although not all the ports will be used on every node of the cluster, you need to open most of them for all the nodes in the cluster that
have Trafodion, HBase, or HDFS servers on them.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="requirements-prerequisite-software">4.2. Prerequisite Software</h3>
<div class="sect3">
<h4 id="requirements-hadoop-software">4.2.1. Hadoop Software</h4>
<div class="paragraph">
<p>Trafodion runs as an add-on service on Hadoop distributions. The following Hadoop services and their dependencies must be installed and running
on the cluster where you intend to install Trafodion:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Hadoop Distributed File System (HDFS)</p>
</li>
<li>
<p>ZooKeeper</p>
</li>
<li>
<p>HBase</p>
</li>
<li>
<p>Hive</p>
</li>
<li>
<p>Apache Ambari (Hortonworks) or Cloudera Manager (Cloudera) with associated embedded databases.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="requirements-software-packages">4.2.2. Software Packages</h4>
<div class="paragraph">
<p>In addition to the software packages required to run different Hadoop services listed above (for example, <code>Java</code>),
Trafodion requires supplementary software to be installed on the cluster before it is installed. These are Linux
tools that are not typically packaged as part of the core Linux distribution.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For RedHat/CentOS, the Trafodion Installer automatically attempts get a subset of these packages over the Internet.
If the cluster&#8217;s access to the Internet is disabled, then you need to manually download the packages and make them available
for installation.
</td>
</tr>
</table>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 20%;">
<col style="width: 45%;">
<col style="width: 35%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Package</th>
<th class="tableblock halign-left valign-top">Usage</th>
<th class="tableblock halign-left valign-top">Installation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">EPEL</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Add-on packages to completed the Linux distribution.</p></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>Download
<a href="http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch">Fedora RPM</a></pre></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">pdsh</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Parallelize shell commands during install and Trafodion runtime utilities.</p></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>yum install pdsh</pre></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sqlite</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Internal configuration information managed by the Trafodion Foundation component.</p></td>
<td class="tableblock halign-left valign-top"><div class="literal"><pre>yum install sqlite</pre></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">expect</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not used?</p></td>