http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-server/src/test/python/stacks/2.1/configs/default-storm-start.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.1/configs/default-storm-start.json b/ambari-server/src/test/python/stacks/2.1/configs/default-storm-start.json new file mode 100644 index 0000000..f90f7e2 --- /dev/null +++ b/ambari-server/src/test/python/stacks/2.1/configs/default-storm-start.json @@ -0,0 +1,356 @@ +{ + "configuration_attributes": { + "storm-site": {}, + "hdfs-site": { + "final": { + "dfs.support.append": "true", + "dfs.namenode.http-address": "true" + } + }, + "storm-env": {}, + "core-site": { + "final": { + "fs.defaultFS": "true" + } + }, + "hadoop-policy": {}, + "hdfs-log4j": {}, + "hadoop-env": {}, + "zookeeper-env": {}, + "zookeeper-log4j": {}, + "cluster-env": {} + }, + "commandParams": { + "command_timeout": "600", + "script": "scripts/nimbus.py", + "script_type": "PYTHON", + "service_package_folder": "HDP/2.1/services/STORM/package", + "hooks_folder": "HDP/2.0.6/hooks" + }, + "roleCommand": "START", + "clusterName": "pacan", + "hostname": "c6402.ambari.apache.org", + "hostLevelParams": { + "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", + "ambari_db_rca_password": "mapred", + "java_home": "/usr/jdk64/jdk1.7.0_45", + "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", + "jce_name": "UnlimitedJCEPolicyJDK7.zip", + "oracle_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//ojdbc6.jar", + "repo_info": "[{\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.2.0.0\",\"osType\":\"redhat6\",\"repoId\":\"HDP-2.2\",\"repoName\":\"HDP\",\"defaultBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.2.0.0\",\"latestBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.2.0.0\"},{\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"osType\":\"redhat6\",\"repoId\":\"HDP-UTILS-1.1.0.20\",\"repoName\":\"HDP-UTILS\",\"defaultBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"latestBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\"}]", + "group_list": "[\"hadoop\",\"users\"]", + "package_list": "[{\"name\":\"storm_2_2_0_0_*\"}]", + "stack_version": "2.2", + "stack_name": "HDP", + "db_name": "ambari", + "ambari_db_rca_driver": "org.postgresql.Driver", + "jdk_name": "jdk-7u45-linux-x64.tar.gz", + "ambari_db_rca_username": "mapred", + "db_driver_filename": "mysql-connector-java.jar", + "user_list": "[\"ambari-qa\",\"zookeeper\",\"hdfs\",\"storm\"]", + "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar" + }, + "commandType": "EXECUTION_COMMAND", + "roleParams": {}, + "serviceName": "STORM", + "role": "NIMBUS", + "forceRefreshConfigTags": [], + "taskId": 24, + "public_hostname": "c6402.ambari.apache.org", + "configurations": { + "storm-site": { + "topology.tuple.serializer": "backtype.storm.serialization.types.ListDelegateSerializer", + "topology.workers": "1", + "drpc.worker.threads": "64", + "storm.zookeeper.servers": "['c6402.ambari.apache.org']", + "supervisor.heartbeat.frequency.secs": "5", + "topology.executor.send.buffer.size": "1024", + "drpc.childopts": "-Xmx768m", + "nimbus.thrift.port": "6627", + "storm.zookeeper.retry.intervalceiling.millis": "30000", + "storm.local.dir": "/hadoop/storm", + "topology.receiver.buffer.size": "8", + "storm.messaging.netty.client_worker_threads": "1", + "transactional.zookeeper.root": "/transactional", + "topology.skip.missing.kryo.registrations": "false", + "worker.heartbeat.frequency.secs": "1", + "zmq.hwm": "0", + "storm.zookeeper.connection.timeout": "15000", + "_storm.thrift.secure.transport": "SECURED_TRANSPORT_CLASS", + "storm.messaging.netty.server_worker_threads": "1", + "supervisor.worker.start.timeout.secs": "120", + "zmq.threads": "1", + "topology.acker.executors": "null", + "storm.local.mode.zmq": "false", + "topology.max.task.parallelism": "null", + "topology.max.error.report.per.interval": "5", + "storm.zookeeper.port": "2181", + "drpc.queue.size": "128", + "worker.childopts": "-Xmx768m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM", + "nimbus.childopts": "-Xmx1024m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM", + "storm.zookeeper.retry.times": "5", + "nimbus.monitor.freq.secs": "10", + "storm.cluster.mode": "distributed", + "dev.zookeeper.path": "/tmp/dev-storm-zookeeper", + "drpc.invocations.port": "3773", + "_storm.thrift.nonsecure.transport": "NON_SECURED_TRANSPORT_CLASS", + "storm.zookeeper.root": "/storm", + "logviewer.childopts": "-Xmx128m", + "transactional.zookeeper.port": "null", + "topology.worker.childopts": "null", + "topology.max.spout.pending": "null", + "nimbus.cleanup.inbox.freq.secs": "600", + "storm.messaging.netty.min_wait_ms": "100", + "nimbus.task.timeout.secs": "30", + "nimbus.thrift.max_buffer_size": "1048576", + "topology.sleep.spout.wait.strategy.time.ms": "1", + "topology.optimize": "true", + "nimbus.reassign": "true", + "storm.messaging.transport": "backtype.storm.messaging.netty.Context", + "logviewer.appender.name": "A1", + "nimbus.host": "c6402.ambari.apache.org", + "ui.port": "8744", + "supervisor.slots.ports": "[6700, 6701]", + "nimbus.file.copy.expiration.secs": "600", + "supervisor.monitor.frequency.secs": "3", + "ui.childopts": "-Xmx768m _JAAS_PLACEHOLDER", + "transactional.zookeeper.servers": "null", + "zmq.linger.millis": "5000", + "topology.error.throttle.interval.secs": "10", + "topology.worker.shared.thread.pool.size": "4", + "java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib:/usr/hdp/current/storm/lib", + "topology.spout.wait.strategy": "backtype.storm.spout.SleepSpoutWaitStrategy", + "task.heartbeat.frequency.secs": "3", + "topology.transfer.buffer.size": "1024", + "storm.zookeeper.session.timeout": "20000", + "topology.executor.receive.buffer.size": "1024", + "topology.stats.sample.rate": "0.05", + "topology.fall.back.on.java.serialization": "true", + "supervisor.childopts": "-Xmx256m _JAAS_PLACEHOLDER -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/hdp/current/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM", + "topology.enable.message.timeouts": "true", + "storm.messaging.netty.max_wait_ms": "1000", + "nimbus.topology.validator": "backtype.storm.nimbus.DefaultTopologyValidator", + "nimbus.supervisor.timeout.secs": "60", + "topology.disruptor.wait.strategy": "com.lmax.disruptor.BlockingWaitStrategy", + "nimbus.inbox.jar.expiration.secs": "3600", + "drpc.port": "3772", + "topology.kryo.factory": "backtype.storm.serialization.DefaultKryoFactory", + "storm.zookeeper.retry.interval": "1000", + "storm.messaging.netty.max_retries": "30", + "topology.tick.tuple.freq.secs": "null", + "drpc.request.timeout.secs": "600", + "nimbus.task.launch.secs": "120", + "task.refresh.poll.secs": "10", + "topology.message.timeout.secs": "30", + "storm.messaging.netty.buffer_size": "5242880", + "topology.state.synchronization.timeout.secs": "60", + "supervisor.worker.timeout.secs": "30", + "topology.trident.batch.emit.interval.millis": "500", + "topology.builtin.metrics.bucket.size.secs": "60", + "logviewer.port": "8000", + "topology.debug": "false" + }, + "hdfs-site": { + "dfs.namenode.avoid.write.stale.datanode": "true", + "dfs.namenode.checkpoint.txns": "1000000", + "dfs.block.access.token.enable": "true", + "dfs.support.append": "true", + "dfs.datanode.address": "0.0.0.0:50010", + "dfs.cluster.administrators": " hdfs", + "dfs.datanode.balance.bandwidthPerSec": "6250000", + "dfs.namenode.safemode.threshold-pct": "1.0f", + "dfs.namenode.checkpoint.edits.dir": "${dfs.namenode.checkpoint.dir}", + "dfs.permissions.enabled": "true", + "dfs.namenode.kerberos.principal": "nn/_h...@example.com", + "dfs.namenode.checkpoint.dir": "/hadoop/hdfs/namesecondary", + "dfs.https.port": "50470", + "dfs.namenode.https-address": "c6402.ambari.apache.org:50470", + "dfs.secondary.namenode.kerberos.https.principal": "HTTP/_h...@example.com", + "dfs.blockreport.initialDelay": "120", + "dfs.journalnode.edits.dir": "/grid/0/hdfs/journal", + "dfs.blocksize": "134217728", + "dfs.client.read.shortcircuit": "true", + "dfs.datanode.max.transfer.threads": "1024", + "dfs.heartbeat.interval": "3", + "dfs.replication": "3", + "dfs.namenode.handler.count": "40", + "dfs.web.authentication.kerberos.keytab": "/etc/security/keytabs/spnego.service.keytab", + "fs.permissions.umask-mode": "022", + "dfs.namenode.stale.datanode.interval": "30000", + "dfs.datanode.ipc.address": "0.0.0.0:8010", + "dfs.namenode.name.dir": "/hadoop/hdfs/namenode", + "dfs.datanode.data.dir": "/hadoop/hdfs/data", + "dfs.namenode.http-address": "c6402.ambari.apache.org:50070", + "dfs.webhdfs.enabled": "true", + "dfs.datanode.failed.volumes.tolerated": "0", + "dfs.namenode.accesstime.precision": "0", + "dfs.namenode.avoid.read.stale.datanode": "true", + "dfs.namenode.secondary.http-address": "c6402.ambari.apache.org:50090", + "dfs.datanode.kerberos.principal": "dn/_h...@example.com", + "dfs.datanode.http.address": "0.0.0.0:50075", + "dfs.datanode.du.reserved": "1073741824", + "dfs.client.read.shortcircuit.streams.cache.size": "4096", + "dfs.namenode.kerberos.https.principal": "HTTP/_h...@example.com", + "dfs.secondary.namenode.keytab.file": "/etc/security/keytabs/nn.service.keytab", + "dfs.web.authentication.kerberos.principal": "HTTP/_h...@example.com", + "dfs.secondary.namenode.kerberos.principal": "nn/_h...@example.com", + "dfs.datanode.keytab.file": "/etc/security/keytabs/dn.service.keytab", + "dfs.namenode.keytab.file": "/etc/security/keytabs/nn.service.keytab", + "dfs.permissions.superusergroup": "hdfs", + "dfs.journalnode.http-address": "0.0.0.0:8480", + "dfs.domain.socket.path": "/var/lib/hadoop-hdfs/dn_socket", + "dfs.namenode.write.stale.datanode.ratio": "1.0f", + "dfs.hosts.exclude": "/etc/hadoop/conf/dfs.exclude", + "dfs.datanode.data.dir.perm": "750", + "dfs.namenode.name.dir.restore": "true", + "dfs.replication.max": "50", + "dfs.namenode.checkpoint.period": "21600" + }, + "storm-env": { + "content": "\n#!/bin/bash\n\n# Set Storm specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\n\n# export STORM_CONF_DIR=\"\"", + "storm_log_dir": "/var/log/storm", + "storm_pid_dir": "/var/run/storm", + "storm_user": "storm" + }, + "core-site": { + "io.serializations": "org.apache.hadoop.io.serializer.WritableSerialization", + "fs.trash.interval": "360", + "dfs.http.policy": "HTTP_ONLY", + "hadoop.security.authentication": "simple", + "io.compression.codecs": "org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec", + "hadoop.proxyuser.falcon.hosts": "*", + "mapreduce.jobtracker.webinterface.trusted": "false", + "hadoop.security.authorization": "false", + "fs.defaultFS": "hdfs://c6402.ambari.apache.org:8020", + "ipc.server.tcpnodelay": "true", + "ipc.client.connect.max.retries": "50", + "ipc.client.idlethreshold": "8000", + "io.file.buffer.size": "131072", + "hadoop.security.auth_to_local": "\n RULE:[2:$1@$0]([rn]m@.*)s/.*/yarn/\n RULE:[2:$1@$0](jhs@.*)s/.*/mapred/\n RULE:[2:$1@$0]([nd]n@.*)s/.*/hdfs/\n RULE:[2:$1@$0](hm@.*)s/.*/hbase/\n RULE:[2:$1@$0](rs@.*)s/.*/hbase/\n DEFAULT", + "ipc.client.connection.maxidletime": "30000", + "hadoop.proxyuser.falcon.groups": "users" + }, + "hadoop-policy": { + "security.job.client.protocol.acl": "*", + "security.job.task.protocol.acl": "*", + "security.datanode.protocol.acl": "*", + "security.namenode.protocol.acl": "*", + "security.client.datanode.protocol.acl": "*", + "security.inter.tracker.protocol.acl": "*", + "security.refresh.usertogroups.mappings.protocol.acl": "hadoop", + "security.client.protocol.acl": "*", + "security.refresh.policy.protocol.acl": "hadoop", + "security.admin.operations.protocol.acl": "hadoop", + "security.inter.datanode.protocol.acl": "*" + }, + "hdfs-log4j": { + "content": "\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n\n\n# Define some default values that can be overridden by system properties\n# To change daemon root logger use hadoop_root_logger in hadoop-env\nhadoop.root.lo gger=INFO,console\nhadoop.log.dir=.\nhadoop.log.file=hadoop.log\n\n\n# Define the root logger to the system property \"hadoop.root.logger\".\nlog4j.rootLogger=${hadoop.root.logger}, EventCounter\n\n# Logging Threshold\nlog4j.threshhold=ALL\n\n#\n# Daily Rolling File Appender\n#\n\nlog4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}\n\n# Rollver at midnight\nlog4j.appender.DRFA.DatePattern=.yyyy-MM-dd\n\n# 30-day backup\n#log4j.appender.DRFA.MaxBackupIndex=30\nlog4j.appender.DRFA.layout=org.apache.log4j.PatternLayout\n\n# Pattern format: Date LogLevel LoggerName LogMessage\nlog4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\n# Debugging Pattern format\n#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n\n\n\n#\n# console\n# Add \"console\" to rootlogger above if you want to use this\n#\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender .console.target=System.err\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n\n\n#\n# TaskLog Appender\n#\n\n#Default values\nhadoop.tasklog.taskid=null\nhadoop.tasklog.iscleanup=false\nhadoop.tasklog.noKeepSplits=4\nhadoop.tasklog.totalLogFileSize=100\nhadoop.tasklog.purgeLogSplits=true\nhadoop.tasklog.logsRetainHours=12\n\nlog4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender\nlog4j.appender.TLA.taskId=${hadoop.tasklog.taskid}\nlog4j.appender.TLA.isCleanup=${hadoop.tasklog.iscleanup}\nlog4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}\n\nlog4j.appender.TLA.layout=org.apache.log4j.PatternLayout\nlog4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\n\n#\n#Security audit appender\n#\nhadoop.security.logger=INFO,console\nhadoop.security.log.maxfilesize=256MB\nhadoop.security.log.maxbackupindex=20\nlog4j.category.SecurityLogger=${hadoop.security.logg er}\nhadoop.security.log.file=SecurityAuth.audit\nlog4j.appender.DRFAS=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.DRFAS.File=${hadoop.log.dir}/${hadoop.security.log.file}\nlog4j.appender.DRFAS.layout=org.apache.log4j.PatternLayout\nlog4j.appender.DRFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\nlog4j.appender.DRFAS.DatePattern=.yyyy-MM-dd\n\nlog4j.appender.RFAS=org.apache.log4j.RollingFileAppender\nlog4j.appender.RFAS.File=${hadoop.log.dir}/${hadoop.security.log.file}\nlog4j.appender.RFAS.layout=org.apache.log4j.PatternLayout\nlog4j.appender.RFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\nlog4j.appender.RFAS.MaxFileSize=${hadoop.security.log.maxfilesize}\nlog4j.appender.RFAS.MaxBackupIndex=${hadoop.security.log.maxbackupindex}\n\n#\n# hdfs audit logging\n#\nhdfs.audit.logger=INFO,console\nlog4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=${hdfs.audit.logger}\nlog4j.additivity.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit= false\nlog4j.appender.DRFAAUDIT=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.DRFAAUDIT.File=${hadoop.log.dir}/hdfs-audit.log\nlog4j.appender.DRFAAUDIT.layout=org.apache.log4j.PatternLayout\nlog4j.appender.DRFAAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n\nlog4j.appender.DRFAAUDIT.DatePattern=.yyyy-MM-dd\n\n#\n# mapred audit logging\n#\nmapred.audit.logger=INFO,console\nlog4j.logger.org.apache.hadoop.mapred.AuditLogger=${mapred.audit.logger}\nlog4j.additivity.org.apache.hadoop.mapred.AuditLogger=false\nlog4j.appender.MRAUDIT=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.MRAUDIT.File=${hadoop.log.dir}/mapred-audit.log\nlog4j.appender.MRAUDIT.layout=org.apache.log4j.PatternLayout\nlog4j.appender.MRAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n\nlog4j.appender.MRAUDIT.DatePattern=.yyyy-MM-dd\n\n#\n# Rolling File Appender\n#\n\nlog4j.appender.RFA=org.apache.log4j.RollingFileAppender\nlog4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.fi le}\n\n# Logfile size and and 30-day backups\nlog4j.appender.RFA.MaxFileSize=256MB\nlog4j.appender.RFA.MaxBackupIndex=10\n\nlog4j.appender.RFA.layout=org.apache.log4j.PatternLayout\nlog4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n\nlog4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n\n\n\n# Custom Logging levels\n\nhadoop.metrics.log.level=INFO\n#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG\n#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG\n#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG\nlog4j.logger.org.apache.hadoop.metrics2=${hadoop.metrics.log.level}\n\n# Jets3t library\nlog4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR\n\n#\n# Null Appender\n# Trap security logger on the hadoop client side\n#\nlog4j.appender.NullAppender=org.apache.log4j.varia.NullAppender\n\n#\n# Event Counter Appender\n# Sends counts of logging messages at different severity levels to Hadoop Metrics.\n#\n log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter\n\n# Removes \"deprecated\" messages\nlog4j.logger.org.apache.hadoop.conf.Configuration.deprecation=WARN" + }, + "hadoop-env": { + "namenode_opt_maxnewsize": "200m", + "hdfs_log_dir_prefix": "/var/log/hadoop", + "hdfs_user": "hdfs", + "proxyuser_group": "users", + "content": "\n# Set Hadoop-specific environment variables here.\n\n# The only required environment variable is JAVA_HOME. All others are\n# optional. When running a distributed configuration it is best to\n# set JAVA_HOME in this file, so that it is correctly defined on\n# remote nodes.\n\n# The java implementation to use. Required.\nexport JAVA_HOME={{java_home}}\nexport HADOOP_HOME_WARN_SUPPRESS=1\n\n# Hadoop home directory\nexport HADOOP_HOME=${HADOOP_HOME:-/usr/lib/hadoop}\n\n# Hadoop Configuration Directory\n#TODO: if env var set that can cause problems\nexport HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-{{hadoop_conf_dir}}}\n\n{# this is different for HDP1 #}\n# Path to jsvc required by secure HDP 2.0 datanode\nexport JSVC_HOME={{jsvc_path}}\n\n\n# The maximum amount of heap to use, in MB. Default is 1000.\nexport HADOOP_HEAPSIZE=\"{{hadoop_heapsize}}\"\n\nexport HADOOP_NAMENODE_INIT_HEAPSIZE=\"-Xms{{namenode_heapsize}}\"\n\n# Extra Java runtime options. Empty by defaul t.\nexport HADOOP_OPTS=\"-Djava.net.preferIPv4Stack=true ${HADOOP_OPTS}\"\n\n# Command specific options appended to HADOOP_OPTS when specified\nexport HADOOP_NAMENODE_OPTS=\"-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}\"\nHADOOP_JOBTRACKER_OPTS=\"-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{jtnode_opt_newsize}} -XX:MaxNewSize={{jtnode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTime Stamps -XX:+PrintGCDateStamps -Xmx{{jtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA ${HADOOP_JOBTRACKER_OPTS}\"\n\nHADOOP_TASKTRACKER_OPTS=\"-server -Xmx{{ttnode_heapsize}} -Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console ${HADOOP_TASKTRACKER_OPTS}\"\nHADOOP_DATANODE_OPTS=\"-Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=ERROR,DRFAS ${HADOOP_DATANODE_OPTS}\"\nHADOOP_BALANCER_OPTS=\"-server -Xmx{{hadoop_heapsize}}m ${HADOOP_BALANCER_OPTS}\"\n\nexport HADOOP_SECONDARYNAMENODE_OPTS=\"-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ${HADOOP_NAMENODE_INIT_HEAPSIZE} -Xmx{{namenode_heapsize }} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_SECONDARYNAMENODE_OPTS}\"\n\n# The following applies to multiple commands (fs, dfs, fsck, distcp etc)\nexport HADOOP_CLIENT_OPTS=\"-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS\"\n# On secure datanodes, user to run the datanode as after dropping privileges\nexport HADOOP_SECURE_DN_USER={{hdfs_user}}\n\n# Extra ssh options. Empty by default.\nexport HADOOP_SSH_OPTS=\"-o ConnectTimeout=5 -o SendEnv=HADOOP_CONF_DIR\"\n\n# Where log files are stored. $HADOOP_HOME/logs by default.\nexport HADOOP_LOG_DIR={{hdfs_log_dir_prefix}}/$USER\n\n# History server logs\nexport HADOOP_MAPRED_LOG_DIR={{mapred_log_dir_prefix}}/$USER\n\n# Where log files are stored in the secure data environment.\nexport HADOOP_SECURE_DN_LOG_DIR={{hdfs_log_dir_prefix}}/$HADOOP_SECURE_DN_USER\n\n# File naming remote slave hosts. $HADOOP_HOME/conf/slaves by default.\n# export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves\n\n# host:path where ha doop code should be rsync'd from. Unset by default.\n# export HADOOP_MASTER=master:/home/$USER/src/hadoop\n\n# Seconds to sleep between slave commands. Unset by default. This\n# can be useful in large clusters, where, e.g., slave rsyncs can\n# otherwise arrive faster than the master can service them.\n# export HADOOP_SLAVE_SLEEP=0.1\n\n# The directory where pid files are stored. /tmp by default.\nexport HADOOP_PID_DIR={{hadoop_pid_dir_prefix}}/$USER\nexport HADOOP_SECURE_DN_PID_DIR={{hadoop_pid_dir_prefix}}/$HADOOP_SECURE_DN_USER\n\n# History server pid\nexport HADOOP_MAPRED_PID_DIR={{mapred_pid_dir_prefix}}/$USER\n\nYARN_RESOURCEMANAGER_OPTS=\"-Dyarn.server.resourcemanager.appsummary.logger=INFO,RMSUMMARY\"\n\n# A string representing this instance of hadoop. $USER by default.\nexport HADOOP_IDENT_STRING=$USER\n\n# The scheduling priority for daemon processes. See 'man nice'.\n\n# export HADOOP_NICENESS=10\n\n# Use libraries from standard classpath\nJAVA_JDBC_LIBS=\"\"\n#Add lib raries required by mysql connector\nfor jarFile in `ls /usr/share/java/*mysql* 2>/dev/null`\ndo\n JAVA_JDBC_LIBS=${JAVA_JDBC_LIBS}:$jarFile\ndone\n#Add libraries required by oracle connector\nfor jarFile in `ls /usr/share/java/*ojdbc* 2>/dev/null`\ndo\n JAVA_JDBC_LIBS=${JAVA_JDBC_LIBS}:$jarFile\ndone\n#Add libraries required by nodemanager\nMAPREDUCE_LIBS={{mapreduce_libs_path}}\nexport HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}\n\nif [ -d \"/usr/lib/tez\" ]; then\n export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/lib/tez/*:/usr/lib/tez/lib/*:/etc/tez/conf\nfi\n\n# Setting path to hdfs command line\nexport HADOOP_LIBEXEC_DIR={{hadoop_libexec_dir}}\n\n#Mostly required for hadoop 2.0\nexport JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/lib/hadoop/lib/native/Linux-amd64-64\n\n#Hadoop logging options\nexport HADOOP_ROOT_LOGGER={{hadoop_root_logger}}", + "namenode_heapsize": "1024m", + "rpm_version": "2.2.0.0", + "namenode_opt_newsize": "200m", + "dtnode_heapsize": "1024m", + "hadoop_root_logger": "INFO,RFA", + "hadoop_heapsize": "1024", + "hadoop_pid_dir_prefix": "/var/run/hadoop" + }, + "zookeeper-env": { + "clientPort": "2181", + "zk_user": "zookeeper", + "zk_log_dir": "/var/log/zookeeper", + "syncLimit": "5", + "content": "\nexport JAVA_HOME={{java64_home}}\nexport ZOO_LOG_DIR={{zk_log_dir}}\nexport ZOOPIDFILE={{zk_pid_file}}\nexport SERVER_JVMFLAGS={{zk_server_heapsize}}\nexport JAVA=$JAVA_HOME/bin/java\nexport CLASSPATH=$CLASSPATH:/usr/share/zookeeper/*\n\n{% if security_enabled %}\nexport SERVER_JVMFLAGS=\"$SERVER_JVMFLAGS -Djava.security.auth.login.config={{zk_server_jaas_file}}\"\nexport CLIENT_JVMFLAGS=\"$CLIENT_JVMFLAGS -Djava.security.auth.login.config={{zk_client_jaas_file}}\"\n{% endif %}", + "initLimit": "10", + "zk_pid_dir": "/var/run/zookeeper", + "zk_data_dir": "/hadoop/zookeeper", + "tickTime": "2000" + }, + "zookeeper-log4j": { + "content": "\n#\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n#\n#\n\n#\n# ZooKeeper Logging Configuration\n#\n\n# DEFAULT: console appender only\nlog4j.rootLogger=INFO, CONSOLE\n\n# Example with rolling log file\n#log4 j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE\n\n# Example with rolling log file and tracing\n#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE\n\n#\n# Log INFO level and above messages to the console\n#\nlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender\nlog4j.appender.CONSOLE.Threshold=INFO\nlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout\nlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n\n\n#\n# Add ROLLINGFILE to rootLogger to get log file output\n# Log DEBUG level and above messages to a log file\nlog4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender\nlog4j.appender.ROLLINGFILE.Threshold=DEBUG\nlog4j.appender.ROLLINGFILE.File=zookeeper.log\n\n# Max log file size of 10MB\nlog4j.appender.ROLLINGFILE.MaxFileSize=10MB\n# uncomment the next line to limit number of backup files\n#log4j.appender.ROLLINGFILE.MaxBackupIndex=10\n\nlog4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout\nlog4j.appender.ROLLIN GFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n\n\n\n#\n# Add TRACEFILE to rootLogger to get log file output\n# Log DEBUG level and above messages to a log file\nlog4j.appender.TRACEFILE=org.apache.log4j.FileAppender\nlog4j.appender.TRACEFILE.Threshold=TRACE\nlog4j.appender.TRACEFILE.File=zookeeper_trace.log\n\nlog4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout\n### Notice we are including log4j's NDC here (%x)\nlog4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n" + }, + "cluster-env": { + "security_enabled": "false", + "ignore_groupsusers_create": "false", + "smokeuser": "ambari-qa", + "kerberos_domain": "EXAMPLE.COM", + "user_group": "hadoop" + } + }, + "configurationTags": { + "storm-site": { + "tag": "version1" + }, + "hdfs-site": { + "tag": "version1411996371868" + }, + "storm-env": { + "tag": "version1" + }, + "core-site": { + "tag": "version1411996371868" + }, + "hadoop-policy": { + "tag": "version1411996371868" + }, + "hdfs-log4j": { + "tag": "version1411996371868" + }, + "hadoop-env": { + "tag": "version1411996371868" + }, + "zookeeper-env": { + "tag": "version1" + }, + "zookeeper-log4j": { + "tag": "version1" + }, + "cluster-env": { + "tag": "version1" + } + }, + "commandId": "6-1", + "clusterHostInfo": { + "snamenode_host": [ + "c6402.ambari.apache.org" + ], + "drpc_server_hosts": [ + "c6402.ambari.apache.org" + ], + "nimbus_hosts": [ + "c6402.ambari.apache.org" + ], + "all_ping_ports": [ + "8670" + ], + "all_hosts": [ + "c6402.ambari.apache.org" + ], + "slave_hosts": [ + "c6402.ambari.apache.org" + ], + "namenode_host": [ + "c6402.ambari.apache.org" + ], + "storm_ui_server_hosts": [ + "c6402.ambari.apache.org" + ], + "storm_rest_api_hosts": [ + "c6402.ambari.apache.org" + ], + "ambari_server_host": [ + "c6401.ambari.apache.org" + ], + "zookeeper_hosts": [ + "c6402.ambari.apache.org" + ], + "supervisor_hosts": [ + "c6402.ambari.apache.org" + ] + } +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-server/src/test/python/stacks/2.1/configs/secured-storm-start.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.1/configs/secured-storm-start.json b/ambari-server/src/test/python/stacks/2.1/configs/secured-storm-start.json new file mode 100644 index 0000000..005a4df --- /dev/null +++ b/ambari-server/src/test/python/stacks/2.1/configs/secured-storm-start.json @@ -0,0 +1,373 @@ +{ + "configuration_attributes": { + "storm-site": {}, + "hdfs-site": { + "final": { + "dfs.support.append": "true", + "dfs.namenode.http-address": "true" + } + }, + "storm-env": {}, + "core-site": { + "final": { + "fs.defaultFS": "true" + } + }, + "hadoop-policy": {}, + "hdfs-log4j": {}, + "hadoop-env": {}, + "zookeeper-env": {}, + "zookeeper-log4j": {}, + "cluster-env": {} + }, + "commandParams": { + "command_timeout": "600", + "script": "scripts/nimbus.py", + "script_type": "PYTHON", + "service_package_folder": "HDP/2.1/services/STORM/package", + "hooks_folder": "HDP/2.0.6/hooks" + }, + "roleCommand": "START", + "clusterName": "pacan", + "hostname": "c6402.ambari.apache.org", + "hostLevelParams": { + "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", + "ambari_db_rca_password": "mapred", + "java_home": "/usr/jdk64/jdk1.7.0_45", + "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", + "jce_name": "UnlimitedJCEPolicyJDK7.zip", + "oracle_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//ojdbc6.jar", + "repo_info": "[{\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.2.0.0\",\"osType\":\"redhat6\",\"repoId\":\"HDP-2.2\",\"repoName\":\"HDP\",\"defaultBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.2.0.0\",\"latestBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/updates/2.2.0.0\"},{\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"osType\":\"redhat6\",\"repoId\":\"HDP-UTILS-1.1.0.20\",\"repoName\":\"HDP-UTILS\",\"defaultBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"latestBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\"}]", + "group_list": "[\"hadoop\",\"users\"]", + "package_list": "[{\"name\":\"storm_2_2_0_0_*\"}]", + "stack_version": "2.2", + "stack_name": "HDP", + "db_name": "ambari", + "ambari_db_rca_driver": "org.postgresql.Driver", + "jdk_name": "jdk-7u45-linux-x64.tar.gz", + "ambari_db_rca_username": "mapred", + "db_driver_filename": "mysql-connector-java.jar", + "user_list": "[\"ambari-qa\",\"zookeeper\",\"hdfs\",\"storm\"]", + "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar" + }, + "commandType": "EXECUTION_COMMAND", + "roleParams": {}, + "serviceName": "STORM", + "role": "NIMBUS", + "forceRefreshConfigTags": [], + "taskId": 54, + "public_hostname": "c6402.ambari.apache.org", + "configurations": { + "storm-site": { + "topology.tuple.serializer": "backtype.storm.serialization.types.ListDelegateSerializer", + "topology.workers": "1", + "drpc.worker.threads": "64", + "storm.zookeeper.servers": "['c6402.ambari.apache.org']", + "supervisor.heartbeat.frequency.secs": "5", + "topology.executor.send.buffer.size": "1024", + "drpc.childopts": "-Xmx768m", + "nimbus.thrift.port": "6627", + "storm.zookeeper.retry.intervalceiling.millis": "30000", + "storm.local.dir": "/hadoop/storm", + "topology.receiver.buffer.size": "8", + "storm.messaging.netty.client_worker_threads": "1", + "transactional.zookeeper.root": "/transactional", + "topology.skip.missing.kryo.registrations": "false", + "worker.heartbeat.frequency.secs": "1", + "zmq.hwm": "0", + "storm.zookeeper.connection.timeout": "15000", + "_storm.thrift.secure.transport": "SECURED_TRANSPORT_CLASS", + "storm.messaging.netty.server_worker_threads": "1", + "supervisor.worker.start.timeout.secs": "120", + "zmq.threads": "1", + "topology.acker.executors": "null", + "storm.local.mode.zmq": "false", + "topology.max.task.parallelism": "null", + "topology.max.error.report.per.interval": "5", + "storm.zookeeper.port": "2181", + "drpc.queue.size": "128", + "worker.childopts": "-Xmx768m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM", + "nimbus.childopts": "-Xmx1024m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM", + "storm.zookeeper.retry.times": "5", + "nimbus.monitor.freq.secs": "10", + "storm.cluster.mode": "distributed", + "dev.zookeeper.path": "/tmp/dev-storm-zookeeper", + "drpc.invocations.port": "3773", + "_storm.thrift.nonsecure.transport": "NON_SECURED_TRANSPORT_CLASS", + "storm.zookeeper.root": "/storm", + "logviewer.childopts": "-Xmx128m", + "transactional.zookeeper.port": "null", + "topology.worker.childopts": "null", + "topology.max.spout.pending": "null", + "nimbus.cleanup.inbox.freq.secs": "600", + "storm.messaging.netty.min_wait_ms": "100", + "nimbus.task.timeout.secs": "30", + "nimbus.thrift.max_buffer_size": "1048576", + "topology.sleep.spout.wait.strategy.time.ms": "1", + "topology.optimize": "true", + "nimbus.reassign": "true", + "storm.messaging.transport": "backtype.storm.messaging.netty.Context", + "logviewer.appender.name": "A1", + "nimbus.host": "c6402.ambari.apache.org", + "ui.port": "8744", + "supervisor.slots.ports": "[6700, 6701]", + "nimbus.file.copy.expiration.secs": "600", + "supervisor.monitor.frequency.secs": "3", + "ui.childopts": "-Xmx768m _JAAS_PLACEHOLDER", + "transactional.zookeeper.servers": "null", + "zmq.linger.millis": "5000", + "topology.error.throttle.interval.secs": "10", + "topology.worker.shared.thread.pool.size": "4", + "java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib:/usr/hdp/current/storm/lib", + "topology.spout.wait.strategy": "backtype.storm.spout.SleepSpoutWaitStrategy", + "task.heartbeat.frequency.secs": "3", + "topology.transfer.buffer.size": "1024", + "storm.zookeeper.session.timeout": "20000", + "topology.executor.receive.buffer.size": "1024", + "topology.stats.sample.rate": "0.05", + "topology.fall.back.on.java.serialization": "true", + "supervisor.childopts": "-Xmx256m _JAAS_PLACEHOLDER -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/hdp/current/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM", + "topology.enable.message.timeouts": "true", + "storm.messaging.netty.max_wait_ms": "1000", + "nimbus.topology.validator": "backtype.storm.nimbus.DefaultTopologyValidator", + "nimbus.supervisor.timeout.secs": "60", + "topology.disruptor.wait.strategy": "com.lmax.disruptor.BlockingWaitStrategy", + "nimbus.inbox.jar.expiration.secs": "3600", + "drpc.port": "3772", + "topology.kryo.factory": "backtype.storm.serialization.DefaultKryoFactory", + "storm.zookeeper.retry.interval": "1000", + "storm.messaging.netty.max_retries": "30", + "topology.tick.tuple.freq.secs": "null", + "drpc.request.timeout.secs": "600", + "nimbus.task.launch.secs": "120", + "task.refresh.poll.secs": "10", + "topology.message.timeout.secs": "30", + "storm.messaging.netty.buffer_size": "5242880", + "topology.state.synchronization.timeout.secs": "60", + "supervisor.worker.timeout.secs": "30", + "topology.trident.batch.emit.interval.millis": "500", + "topology.builtin.metrics.bucket.size.secs": "60", + "logviewer.port": "8000", + "topology.debug": "false" + }, + "hdfs-site": { + "dfs.namenode.avoid.write.stale.datanode": "true", + "dfs.namenode.kerberos.internal.spnego.principal": "${dfs.web.authentication.kerberos.principal}", + "dfs.namenode.checkpoint.txns": "1000000", + "dfs.block.access.token.enable": "true", + "dfs.support.append": "true", + "dfs.datanode.address": "0.0.0.0:1019", + "dfs.cluster.administrators": " hdfs", + "dfs.journalnode.kerberos.principal": "jn/_h...@example.com", + "dfs.datanode.balance.bandwidthPerSec": "6250000", + "dfs.namenode.safemode.threshold-pct": "1.0f", + "dfs.namenode.checkpoint.edits.dir": "${dfs.namenode.checkpoint.dir}", + "dfs.permissions.enabled": "true", + "dfs.namenode.kerberos.principal": "nn/_h...@example.com", + "dfs.namenode.checkpoint.dir": "/hadoop/hdfs/namesecondary", + "dfs.https.port": "50470", + "dfs.namenode.https-address": "c6402.ambari.apache.org:50470", + "dfs.secondary.namenode.kerberos.https.principal": "HTTP/_h...@example.com", + "dfs.blockreport.initialDelay": "120", + "dfs.journalnode.edits.dir": "/grid/0/hdfs/journal", + "dfs.blocksize": "134217728", + "dfs.client.read.shortcircuit": "true", + "dfs.datanode.max.transfer.threads": "1024", + "dfs.heartbeat.interval": "3", + "dfs.replication": "3", + "dfs.namenode.handler.count": "40", + "dfs.web.authentication.kerberos.keytab": "/etc/security/keytabs/spnego.service.keytab", + "fs.permissions.umask-mode": "022", + "dfs.namenode.stale.datanode.interval": "30000", + "dfs.datanode.ipc.address": "0.0.0.0:8010", + "dfs.namenode.name.dir": "/hadoop/hdfs/namenode", + "dfs.secondary.namenode.kerberos.internal.spnego.principal": "${dfs.web.authentication.kerberos.principal}", + "dfs.datanode.data.dir": "/hadoop/hdfs/data", + "dfs.namenode.http-address": "c6402.ambari.apache.org:50070", + "dfs.webhdfs.enabled": "true", + "dfs.datanode.failed.volumes.tolerated": "0", + "dfs.namenode.accesstime.precision": "0", + "dfs.namenode.avoid.read.stale.datanode": "true", + "dfs.namenode.secondary.http-address": "c6402.ambari.apache.org:50090", + "dfs.datanode.kerberos.principal": "dn/_h...@example.com", + "dfs.journalnode.keytab.file": "/etc/security/keytabs/jn.service.keytab", + "dfs.datanode.http.address": "0.0.0.0:1022", + "dfs.datanode.du.reserved": "1073741824", + "dfs.client.read.shortcircuit.streams.cache.size": "4096", + "dfs.namenode.kerberos.https.principal": "HTTP/_h...@example.com", + "dfs.secondary.namenode.keytab.file": "/etc/security/keytabs/nn.service.keytab", + "dfs.web.authentication.kerberos.principal": "HTTP/_h...@example.com", + "dfs.secondary.namenode.kerberos.principal": "nn/_h...@example.com", + "dfs.datanode.keytab.file": "/etc/security/keytabs/dn.service.keytab", + "dfs.namenode.keytab.file": "/etc/security/keytabs/nn.service.keytab", + "dfs.permissions.superusergroup": "hdfs", + "dfs.journalnode.http-address": "0.0.0.0:8480", + "dfs.journalnode.kerberos.internal.spnego.principal": "HTTP/_h...@example.com", + "dfs.domain.socket.path": "/var/lib/hadoop-hdfs/dn_socket", + "dfs.namenode.write.stale.datanode.ratio": "1.0f", + "dfs.hosts.exclude": "/etc/hadoop/conf/dfs.exclude", + "dfs.datanode.data.dir.perm": "750", + "dfs.namenode.name.dir.restore": "true", + "dfs.replication.max": "50", + "dfs.namenode.checkpoint.period": "21600" + }, + "storm-env": { + "storm_log_dir": "/var/log/storm", + "storm_principal_name": "st...@example.com", + "storm_pid_dir": "/var/run/storm", + "storm_user": "storm", + "content": "\n#!/bin/bash\n\n# Set Storm specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\n\n# export STORM_CONF_DIR=\"\"", + "nimbus_principal_name": "nimbus/_h...@example.com", + "strom_ui_keytab": "/etc/security/keytabs/http.storm.service.keytab", + "nimbus_keytab": "/etc/security/keytabs/nimbus.service.keytab", + "storm_keytab": "/etc/security/keytabs/storm.service.keytab", + "strom_ui_principal_name": "HTTP/_HOST" + }, + "core-site": { + "io.serializations": "org.apache.hadoop.io.serializer.WritableSerialization", + "fs.trash.interval": "360", + "dfs.http.policy": "HTTP_ONLY", + "hadoop.security.authentication": "kerberos", + "io.compression.codecs": "org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec", + "hadoop.proxyuser.falcon.hosts": "*", + "mapreduce.jobtracker.webinterface.trusted": "false", + "hadoop.security.authorization": "true", + "fs.defaultFS": "hdfs://c6402.ambari.apache.org:8020", + "ipc.server.tcpnodelay": "true", + "ipc.client.connect.max.retries": "50", + "ipc.client.idlethreshold": "8000", + "io.file.buffer.size": "131072", + "hadoop.security.auth_to_local": "RULE:[2:$1@$0](rm@.*EXAMPLE.COM)s/.*/yarn/\nRULE:[2:$1@$0](nm@.*EXAMPLE.COM)s/.*/yarn/\nRULE:[2:$1@$0](nn@.*EXAMPLE.COM)s/.*/hdfs/\nRULE:[2:$1@$0](dn@.*EXAMPLE.COM)s/.*/hdfs/\nRULE:[2:$1@$0](jn/_HOST@.*EXAMPLE.COM)s/.*/hdfs/\nRULE:[2:$1@$0](falcon@.*EXAMPLE.COM)s/.*/falcon/\nDEFAULT", + "ipc.client.connection.maxidletime": "30000", + "hadoop.proxyuser.falcon.groups": "users" + }, + "hadoop-policy": { + "security.job.client.protocol.acl": "*", + "security.job.task.protocol.acl": "*", + "security.datanode.protocol.acl": "*", + "security.namenode.protocol.acl": "*", + "security.client.datanode.protocol.acl": "*", + "security.inter.tracker.protocol.acl": "*", + "security.refresh.usertogroups.mappings.protocol.acl": "hadoop", + "security.client.protocol.acl": "*", + "security.refresh.policy.protocol.acl": "hadoop", + "security.admin.operations.protocol.acl": "hadoop", + "security.inter.datanode.protocol.acl": "*" + }, + "hdfs-log4j": { + "content": "\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n\n\n# Define some default values that can be overridden by system properties\n# To change daemon root logger use hadoop_root_logger in hadoop-env\nhadoop.root.lo gger=INFO,console\nhadoop.log.dir=.\nhadoop.log.file=hadoop.log\n\n\n# Define the root logger to the system property \"hadoop.root.logger\".\nlog4j.rootLogger=${hadoop.root.logger}, EventCounter\n\n# Logging Threshold\nlog4j.threshhold=ALL\n\n#\n# Daily Rolling File Appender\n#\n\nlog4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}\n\n# Rollver at midnight\nlog4j.appender.DRFA.DatePattern=.yyyy-MM-dd\n\n# 30-day backup\n#log4j.appender.DRFA.MaxBackupIndex=30\nlog4j.appender.DRFA.layout=org.apache.log4j.PatternLayout\n\n# Pattern format: Date LogLevel LoggerName LogMessage\nlog4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\n# Debugging Pattern format\n#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n\n\n\n#\n# console\n# Add \"console\" to rootlogger above if you want to use this\n#\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender .console.target=System.err\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n\n\n#\n# TaskLog Appender\n#\n\n#Default values\nhadoop.tasklog.taskid=null\nhadoop.tasklog.iscleanup=false\nhadoop.tasklog.noKeepSplits=4\nhadoop.tasklog.totalLogFileSize=100\nhadoop.tasklog.purgeLogSplits=true\nhadoop.tasklog.logsRetainHours=12\n\nlog4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender\nlog4j.appender.TLA.taskId=${hadoop.tasklog.taskid}\nlog4j.appender.TLA.isCleanup=${hadoop.tasklog.iscleanup}\nlog4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}\n\nlog4j.appender.TLA.layout=org.apache.log4j.PatternLayout\nlog4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\n\n#\n#Security audit appender\n#\nhadoop.security.logger=INFO,console\nhadoop.security.log.maxfilesize=256MB\nhadoop.security.log.maxbackupindex=20\nlog4j.category.SecurityLogger=${hadoop.security.logg er}\nhadoop.security.log.file=SecurityAuth.audit\nlog4j.appender.DRFAS=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.DRFAS.File=${hadoop.log.dir}/${hadoop.security.log.file}\nlog4j.appender.DRFAS.layout=org.apache.log4j.PatternLayout\nlog4j.appender.DRFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\nlog4j.appender.DRFAS.DatePattern=.yyyy-MM-dd\n\nlog4j.appender.RFAS=org.apache.log4j.RollingFileAppender\nlog4j.appender.RFAS.File=${hadoop.log.dir}/${hadoop.security.log.file}\nlog4j.appender.RFAS.layout=org.apache.log4j.PatternLayout\nlog4j.appender.RFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n\nlog4j.appender.RFAS.MaxFileSize=${hadoop.security.log.maxfilesize}\nlog4j.appender.RFAS.MaxBackupIndex=${hadoop.security.log.maxbackupindex}\n\n#\n# hdfs audit logging\n#\nhdfs.audit.logger=INFO,console\nlog4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=${hdfs.audit.logger}\nlog4j.additivity.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit= false\nlog4j.appender.DRFAAUDIT=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.DRFAAUDIT.File=${hadoop.log.dir}/hdfs-audit.log\nlog4j.appender.DRFAAUDIT.layout=org.apache.log4j.PatternLayout\nlog4j.appender.DRFAAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n\nlog4j.appender.DRFAAUDIT.DatePattern=.yyyy-MM-dd\n\n#\n# mapred audit logging\n#\nmapred.audit.logger=INFO,console\nlog4j.logger.org.apache.hadoop.mapred.AuditLogger=${mapred.audit.logger}\nlog4j.additivity.org.apache.hadoop.mapred.AuditLogger=false\nlog4j.appender.MRAUDIT=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.MRAUDIT.File=${hadoop.log.dir}/mapred-audit.log\nlog4j.appender.MRAUDIT.layout=org.apache.log4j.PatternLayout\nlog4j.appender.MRAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n\nlog4j.appender.MRAUDIT.DatePattern=.yyyy-MM-dd\n\n#\n# Rolling File Appender\n#\n\nlog4j.appender.RFA=org.apache.log4j.RollingFileAppender\nlog4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.fi le}\n\n# Logfile size and and 30-day backups\nlog4j.appender.RFA.MaxFileSize=256MB\nlog4j.appender.RFA.MaxBackupIndex=10\n\nlog4j.appender.RFA.layout=org.apache.log4j.PatternLayout\nlog4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n\nlog4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n\n\n\n# Custom Logging levels\n\nhadoop.metrics.log.level=INFO\n#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG\n#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG\n#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG\nlog4j.logger.org.apache.hadoop.metrics2=${hadoop.metrics.log.level}\n\n# Jets3t library\nlog4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR\n\n#\n# Null Appender\n# Trap security logger on the hadoop client side\n#\nlog4j.appender.NullAppender=org.apache.log4j.varia.NullAppender\n\n#\n# Event Counter Appender\n# Sends counts of logging messages at different severity levels to Hadoop Metrics.\n#\n log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter\n\n# Removes \"deprecated\" messages\nlog4j.logger.org.apache.hadoop.conf.Configuration.deprecation=WARN" + }, + "hadoop-env": { + "namenode_opt_maxnewsize": "200m", + "hdfs_log_dir_prefix": "/var/log/hadoop", + "namenode_heapsize": "1024m", + "proxyuser_group": "users", + "hdfs_user_keytab": "/etc/security/keytabs/hdfs.headless.keytab", + "content": "\n# Set Hadoop-specific environment variables here.\n\n# The only required environment variable is JAVA_HOME. All others are\n# optional. When running a distributed configuration it is best to\n# set JAVA_HOME in this file, so that it is correctly defined on\n# remote nodes.\n\n# The java implementation to use. Required.\nexport JAVA_HOME={{java_home}}\nexport HADOOP_HOME_WARN_SUPPRESS=1\n\n# Hadoop home directory\nexport HADOOP_HOME=${HADOOP_HOME:-/usr/lib/hadoop}\n\n# Hadoop Configuration Directory\n#TODO: if env var set that can cause problems\nexport HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-{{hadoop_conf_dir}}}\n\n{# this is different for HDP1 #}\n# Path to jsvc required by secure HDP 2.0 datanode\nexport JSVC_HOME={{jsvc_path}}\n\n\n# The maximum amount of heap to use, in MB. Default is 1000.\nexport HADOOP_HEAPSIZE=\"{{hadoop_heapsize}}\"\n\nexport HADOOP_NAMENODE_INIT_HEAPSIZE=\"-Xms{{namenode_heapsize}}\"\n\n# Extra Java runtime options. Empty by defaul t.\nexport HADOOP_OPTS=\"-Djava.net.preferIPv4Stack=true ${HADOOP_OPTS}\"\n\n# Command specific options appended to HADOOP_OPTS when specified\nexport HADOOP_NAMENODE_OPTS=\"-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}\"\nHADOOP_JOBTRACKER_OPTS=\"-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{jtnode_opt_newsize}} -XX:MaxNewSize={{jtnode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTime Stamps -XX:+PrintGCDateStamps -Xmx{{jtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA ${HADOOP_JOBTRACKER_OPTS}\"\n\nHADOOP_TASKTRACKER_OPTS=\"-server -Xmx{{ttnode_heapsize}} -Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console ${HADOOP_TASKTRACKER_OPTS}\"\nHADOOP_DATANODE_OPTS=\"-Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=ERROR,DRFAS ${HADOOP_DATANODE_OPTS}\"\nHADOOP_BALANCER_OPTS=\"-server -Xmx{{hadoop_heapsize}}m ${HADOOP_BALANCER_OPTS}\"\n\nexport HADOOP_SECONDARYNAMENODE_OPTS=\"-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ${HADOOP_NAMENODE_INIT_HEAPSIZE} -Xmx{{namenode_heapsize }} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_SECONDARYNAMENODE_OPTS}\"\n\n# The following applies to multiple commands (fs, dfs, fsck, distcp etc)\nexport HADOOP_CLIENT_OPTS=\"-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS\"\n# On secure datanodes, user to run the datanode as after dropping privileges\nexport HADOOP_SECURE_DN_USER={{hdfs_user}}\n\n# Extra ssh options. Empty by default.\nexport HADOOP_SSH_OPTS=\"-o ConnectTimeout=5 -o SendEnv=HADOOP_CONF_DIR\"\n\n# Where log files are stored. $HADOOP_HOME/logs by default.\nexport HADOOP_LOG_DIR={{hdfs_log_dir_prefix}}/$USER\n\n# History server logs\nexport HADOOP_MAPRED_LOG_DIR={{mapred_log_dir_prefix}}/$USER\n\n# Where log files are stored in the secure data environment.\nexport HADOOP_SECURE_DN_LOG_DIR={{hdfs_log_dir_prefix}}/$HADOOP_SECURE_DN_USER\n\n# File naming remote slave hosts. $HADOOP_HOME/conf/slaves by default.\n# export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves\n\n# host:path where ha doop code should be rsync'd from. Unset by default.\n# export HADOOP_MASTER=master:/home/$USER/src/hadoop\n\n# Seconds to sleep between slave commands. Unset by default. This\n# can be useful in large clusters, where, e.g., slave rsyncs can\n# otherwise arrive faster than the master can service them.\n# export HADOOP_SLAVE_SLEEP=0.1\n\n# The directory where pid files are stored. /tmp by default.\nexport HADOOP_PID_DIR={{hadoop_pid_dir_prefix}}/$USER\nexport HADOOP_SECURE_DN_PID_DIR={{hadoop_pid_dir_prefix}}/$HADOOP_SECURE_DN_USER\n\n# History server pid\nexport HADOOP_MAPRED_PID_DIR={{mapred_pid_dir_prefix}}/$USER\n\nYARN_RESOURCEMANAGER_OPTS=\"-Dyarn.server.resourcemanager.appsummary.logger=INFO,RMSUMMARY\"\n\n# A string representing this instance of hadoop. $USER by default.\nexport HADOOP_IDENT_STRING=$USER\n\n# The scheduling priority for daemon processes. See 'man nice'.\n\n# export HADOOP_NICENESS=10\n\n# Use libraries from standard classpath\nJAVA_JDBC_LIBS=\"\"\n#Add lib raries required by mysql connector\nfor jarFile in `ls /usr/share/java/*mysql* 2>/dev/null`\ndo\n JAVA_JDBC_LIBS=${JAVA_JDBC_LIBS}:$jarFile\ndone\n#Add libraries required by oracle connector\nfor jarFile in `ls /usr/share/java/*ojdbc* 2>/dev/null`\ndo\n JAVA_JDBC_LIBS=${JAVA_JDBC_LIBS}:$jarFile\ndone\n#Add libraries required by nodemanager\nMAPREDUCE_LIBS={{mapreduce_libs_path}}\nexport HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}\n\nif [ -d \"/usr/lib/tez\" ]; then\n export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/lib/tez/*:/usr/lib/tez/lib/*:/etc/tez/conf\nfi\n\n# Setting path to hdfs command line\nexport HADOOP_LIBEXEC_DIR={{hadoop_libexec_dir}}\n\n#Mostly required for hadoop 2.0\nexport JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/lib/hadoop/lib/native/Linux-amd64-64\n\n#Hadoop logging options\nexport HADOOP_ROOT_LOGGER={{hadoop_root_logger}}", + "hdfs_user": "hdfs", + "rpm_version": "2.2.0.0", + "namenode_opt_newsize": "200m", + "dtnode_heapsize": "1024m", + "hadoop_root_logger": "INFO,RFA", + "hadoop_heapsize": "1024", + "hadoop_pid_dir_prefix": "/var/run/hadoop", + "hdfs_principal_name": "hdfs" + }, + "zookeeper-env": { + "clientPort": "2181", + "zookeeper_keytab_path": "/etc/security/keytabs/zk.service.keytab", + "zk_user": "zookeeper", + "zk_log_dir": "/var/log/zookeeper", + "syncLimit": "5", + "content": "\nexport JAVA_HOME={{java64_home}}\nexport ZOO_LOG_DIR={{zk_log_dir}}\nexport ZOOPIDFILE={{zk_pid_file}}\nexport SERVER_JVMFLAGS={{zk_server_heapsize}}\nexport JAVA=$JAVA_HOME/bin/java\nexport CLASSPATH=$CLASSPATH:/usr/share/zookeeper/*\n\n{% if security_enabled %}\nexport SERVER_JVMFLAGS=\"$SERVER_JVMFLAGS -Djava.security.auth.login.config={{zk_server_jaas_file}}\"\nexport CLIENT_JVMFLAGS=\"$CLIENT_JVMFLAGS -Djava.security.auth.login.config={{zk_client_jaas_file}}\"\n{% endif %}", + "initLimit": "10", + "zk_pid_dir": "/var/run/zookeeper", + "zk_data_dir": "/hadoop/zookeeper", + "zookeeper_principal_name": "zookeeper/_h...@example.com", + "tickTime": "2000" + }, + "zookeeper-log4j": { + "content": "\n#\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n#\n#\n\n#\n# ZooKeeper Logging Configuration\n#\n\n# DEFAULT: console appender only\nlog4j.rootLogger=INFO, CONSOLE\n\n# Example with rolling log file\n#log4 j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE\n\n# Example with rolling log file and tracing\n#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE\n\n#\n# Log INFO level and above messages to the console\n#\nlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender\nlog4j.appender.CONSOLE.Threshold=INFO\nlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout\nlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n\n\n#\n# Add ROLLINGFILE to rootLogger to get log file output\n# Log DEBUG level and above messages to a log file\nlog4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender\nlog4j.appender.ROLLINGFILE.Threshold=DEBUG\nlog4j.appender.ROLLINGFILE.File=zookeeper.log\n\n# Max log file size of 10MB\nlog4j.appender.ROLLINGFILE.MaxFileSize=10MB\n# uncomment the next line to limit number of backup files\n#log4j.appender.ROLLINGFILE.MaxBackupIndex=10\n\nlog4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout\nlog4j.appender.ROLLIN GFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n\n\n\n#\n# Add TRACEFILE to rootLogger to get log file output\n# Log DEBUG level and above messages to a log file\nlog4j.appender.TRACEFILE=org.apache.log4j.FileAppender\nlog4j.appender.TRACEFILE.Threshold=TRACE\nlog4j.appender.TRACEFILE.File=zookeeper_trace.log\n\nlog4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout\n### Notice we are including log4j's NDC here (%x)\nlog4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n" + }, + "cluster-env": { + "security_enabled": "true", + "ignore_groupsusers_create": "false", + "smokeuser_keytab": "/etc/security/keytabs/smokeuser.headless.keytab", + "kerberos_domain": "EXAMPLE.COM", + "kinit_path_local": "/usr/bin", + "user_group": "hadoop", + "smokeuser": "ambari-qa" + } + }, + "configurationTags": { + "storm-site": { + "tag": "version1412001710682" + }, + "hdfs-site": { + "tag": "version1412001710682" + }, + "storm-env": { + "tag": "version1412001710682" + }, + "core-site": { + "tag": "version1412001710682" + }, + "hadoop-policy": { + "tag": "version1411996371868" + }, + "hdfs-log4j": { + "tag": "version1411996371868" + }, + "hadoop-env": { + "tag": "version1412001710682" + }, + "zookeeper-env": { + "tag": "version1412001710682" + }, + "zookeeper-log4j": { + "tag": "version1" + }, + "cluster-env": { + "tag": "version1412001710681" + } + }, + "commandId": "12-1", + "clusterHostInfo": { + "snamenode_host": [ + "c6402.ambari.apache.org" + ], + "drpc_server_hosts": [ + "c6402.ambari.apache.org" + ], + "nimbus_hosts": [ + "c6402.ambari.apache.org" + ], + "all_ping_ports": [ + "8670" + ], + "all_hosts": [ + "c6402.ambari.apache.org" + ], + "slave_hosts": [ + "c6402.ambari.apache.org" + ], + "namenode_host": [ + "c6402.ambari.apache.org" + ], + "storm_ui_server_hosts": [ + "c6402.ambari.apache.org" + ], + "storm_rest_api_hosts": [ + "c6402.ambari.apache.org" + ], + "ambari_server_host": [ + "c6401.ambari.apache.org" + ], + "zookeeper_hosts": [ + "c6402.ambari.apache.org" + ], + "supervisor_hosts": [ + "c6402.ambari.apache.org" + ] + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-web/app/app.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/app.js b/ambari-web/app/app.js index c513bfa..e057814 100644 --- a/ambari-web/app/app.js +++ b/ambari-web/app/app.js @@ -80,8 +80,11 @@ module.exports = Em.Application.create({ }.property('currentStackVersion', 'currentStackName'), isHadoop2Stack: function () { - return (stringUtils.compareVersions(this.get('currentStackVersionNumber'), "2.0") === 1 || - stringUtils.compareVersions(this.get('currentStackVersionNumber'), "2.0") === 0) + return (stringUtils.compareVersions(this.get('currentStackVersionNumber'), "2.0") > -1); + }.property('currentStackVersionNumber'), + + isHadoop22Stack: function () { + return (stringUtils.compareVersions(this.get('currentStackVersionNumber'), "2.2") > -1); }.property('currentStackVersionNumber'), /** http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-web/app/controllers/main/admin/security/add/step2.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/security/add/step2.js b/ambari-web/app/controllers/main/admin/security/add/step2.js index df500c7..e97c63a 100644 --- a/ambari-web/app/controllers/main/admin/security/add/step2.js +++ b/ambari-web/app/controllers/main/admin/security/add/step2.js @@ -17,6 +17,7 @@ */ var App = require('app'); +var stringUtils = require('utils/string_utils'); App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({ @@ -139,6 +140,11 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({ serviceName: 'STORM', configName: 'storm_host', components: ['STORM_UI_SERVER', 'NIMBUS', 'SUPERVISOR'] + }, + { + serviceName: 'STORM', + configName: 'nimbus_host', + components: ['NIMBUS'] } ], @@ -198,6 +204,23 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({ */ loadStep: function () { console.log("TRACE: Loading addSecurity step2: Configure Services"); + var versionNumber = App.get('currentStackVersionNumber'); + if( stringUtils.compareVersions(versionNumber, "2.2") >= 0){ + // Add Nimbus config options + var masterComponentMap = this.get('masterComponentMap'); + masterComponentMap.filterProperty('configName', 'storm_host').components = ["SUPERVISOR", "STORM_UI_SERVER", "DRPC_SERVER", "STORM_REST_API"]; + masterComponentMap.pushObject({ + serviceName: 'STORM', + configName: 'nimbus_host', + components: ['NIMBUS'] + }); + this.get('hostToPrincipalMap').pushObject({ + serviceName: 'STORM', + configName: 'nimbus_host', + principalName: 'storm_principal_name', + primaryName: 'storm' + }); + } this.clearStep(); this.loadUsers(); this.addUserPrincipals(this.get('content.services'), this.get('securityUsers')); @@ -305,13 +328,15 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({ if (service) { var host = service.configs.findProperty('name', hostConfigName); var principal = service.configs.findProperty('name', principalConfigName); - if (host && principal) { - if (Array.isArray(host.defaultValue)) { - host.defaultValue = host.defaultValue[0]; - } - principal.defaultValue = defaultPrimaryName + host.defaultValue.toLowerCase(); + var versionNumber = App.get('currentStackVersionNumber'); + if( principalConfigName == 'storm_principal_name' && stringUtils.compareVersions(versionNumber, "2.2") >= 0){ + principal.defaultValue = defaultPrimaryName; return true; - } + } else if (host && principal) { + var host_defaultValue = Array.isArray(host.defaultValue) ? host.defaultValue[0] : host.defaultValue; + principal.defaultValue = defaultPrimaryName + host_defaultValue; + return true; + } return false; } return false; http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-web/app/controllers/main/admin/security/add/step3.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/security/add/step3.js b/ambari-web/app/controllers/main/admin/security/add/step3.js index 43d5158..0e69371 100644 --- a/ambari-web/app/controllers/main/admin/security/add/step3.js +++ b/ambari-web/app/controllers/main/admin/security/add/step3.js @@ -47,79 +47,91 @@ App.MainAdminSecurityAddStep3Controller = Em.Controller.extend({ 'FALCON_SERVER': 'falcon_user' }, // The componentName, principal, and keytab have to coincide with the values in secure_properties.js - componentToConfigMap: [ - { - componentName: 'NAMENODE', - principal: 'hadoop_http_principal_name', - keytab: 'hadoop_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser') - }, - { - componentName: 'SECONDARY_NAMENODE', - principal: 'hadoop_http_principal_name', - keytab: 'hadoop_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser') - }, - { - componentName: 'JOURNALNODE', - principal: 'hadoop_http_principal_name', - keytab: 'hadoop_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser') - }, - { - componentName: 'WEBHCAT_SERVER', - principal: 'webHCat_http_principal_name', - keytab: 'webhcat_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.webhcat.user.httpUser') - }, - { - componentName: 'OOZIE_SERVER', - principal: 'oozie_http_principal_name', - keytab: 'oozie_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.oozie.user.httpUser') - }, - { - componentName: 'FALCON_SERVER', - principal: 'falcon_http_principal_name', - keytab: 'falcon_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.falcon.user.httpUser') - }, - { - componentName: 'HISTORYSERVER', - principal: 'jobhistory_http_principal_name', - keytab: 'jobhistory_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.historyServer.user.httpUser'), - isHadoop2Stack: true - }, - { - componentName: 'RESOURCEMANAGER', - principal: 'resourcemanager_http_principal_name', - keytab: 'resourcemanager_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.rm.user.httpUser'), - isHadoop2Stack: true - }, - { - componentName: 'NODEMANAGER', - principal: 'nodemanager_http_principal_name', - keytab: 'nodemanager_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.nm.user.httpUser'), - isHadoop2Stack: true - }, - { - componentName: 'APP_TIMELINE_SERVER', - principal: 'apptimelineserver_principal_name', - keytab: 'apptimelineserver_keytab', - displayName: Em.I18n.t('admin.addSecurity.user.yarn.atsUser'), - isHadoop2Stack: true - }, - { - componentName: 'APP_TIMELINE_SERVER', - principal: 'apptimelineserver_http_principal_name', - keytab: 'apptimelineserver_http_keytab', - displayName: Em.I18n.t('admin.addSecurity.user.yarn.atsHTTPUser'), - isHadoop2Stack: true + componentToConfigMap: function () { + var hdp2map = [ + { + componentName: 'NAMENODE', + principal: 'hadoop_http_principal_name', + keytab: 'hadoop_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser') + }, + { + componentName: 'SECONDARY_NAMENODE', + principal: 'hadoop_http_principal_name', + keytab: 'hadoop_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser') + }, + { + componentName: 'JOURNALNODE', + principal: 'hadoop_http_principal_name', + keytab: 'hadoop_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser') + }, + { + componentName: 'WEBHCAT_SERVER', + principal: 'webHCat_http_principal_name', + keytab: 'webhcat_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.webhcat.user.httpUser') + }, + { + componentName: 'OOZIE_SERVER', + principal: 'oozie_http_principal_name', + keytab: 'oozie_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.oozie.user.httpUser') + }, + { + componentName: 'FALCON_SERVER', + principal: 'falcon_http_principal_name', + keytab: 'falcon_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.falcon.user.httpUser') + }, + { + componentName: 'HISTORYSERVER', + principal: 'jobhistory_http_principal_name', + keytab: 'jobhistory_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.historyServer.user.httpUser'), + isHadoop2Stack: true + }, + { + componentName: 'RESOURCEMANAGER', + principal: 'resourcemanager_http_principal_name', + keytab: 'resourcemanager_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.rm.user.httpUser'), + isHadoop2Stack: true + }, + { + componentName: 'NODEMANAGER', + principal: 'nodemanager_http_principal_name', + keytab: 'nodemanager_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.nm.user.httpUser'), + isHadoop2Stack: true + }, + { + componentName: 'APP_TIMELINE_SERVER', + principal: 'apptimelineserver_principal_name', + keytab: 'apptimelineserver_keytab', + displayName: Em.I18n.t('admin.addSecurity.user.yarn.atsUser'), + isHadoop2Stack: true + }, + { + componentName: 'APP_TIMELINE_SERVER', + principal: 'apptimelineserver_http_principal_name', + keytab: 'apptimelineserver_http_keytab', + displayName: Em.I18n.t('admin.addSecurity.user.yarn.atsHTTPUser'), + isHadoop2Stack: true + } + ]; + if (App.get('isHadoop22Stack')) { + hdp2map.push({ + componentName: 'DRPC_SERVER', + principal: 'nimbus_principal_name', + keytab: 'nimbus_keytab', + displayName: 'DRPC_SERVER', + isHadoop2Stack: true + }); } - ], + return hdp2map; + }.property('App.isHadoop22Stack'), mandatoryConfigs: [ { http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-web/app/data/HDP2.2/site_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2.2/site_properties.js b/ambari-web/app/data/HDP2.2/site_properties.js new file mode 100644 index 0000000..a70f080 --- /dev/null +++ b/ambari-web/app/data/HDP2.2/site_properties.js @@ -0,0 +1,29 @@ +/** + * 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. + */ + +var App = require('app'); +var hdp2properties = require('data/HDP2/site_properties').configProperties; +var hdp22properties = hdp2properties.filter(function (item){ + //In HDP2.2 storm.thrift.transport property is computed on server + return item.name !== 'storm.thrift.transport'; +}); + +module.exports = +{ + "configProperties": hdp22properties +}; http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-web/app/data/HDP2/secure_configs.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/secure_configs.js b/ambari-web/app/data/HDP2/secure_configs.js index 833697d..421ba54 100644 --- a/ambari-web/app/data/HDP2/secure_configs.js +++ b/ambari-web/app/data/HDP2/secure_configs.js @@ -36,7 +36,7 @@ if (isATSInstalled && doesATSSupportKerberos) { yarnConfigProperties.push(App.ServiceConfigCategory.create({ name: 'AppTimelineServer', displayName : 'ApplicationTimelineService'})); } -module.exports = [ +var configs = [ { serviceName: 'GENERAL', displayName: 'General', @@ -135,7 +135,7 @@ module.exports = [ displayName: 'Storm', filename: 'storm-site', configCategories: [ - App.ServiceConfigCategory.create({ name: 'Storm Topology', displayName: 'Storm Topology'}) + App.ServiceConfigCategory.create({ name: 'Storm Topology', displayName: 'Storm Client'}) ], sites: ['storm-env','storm-site'], configs: configProperties.filterProperty('serviceName', 'STORM') @@ -152,4 +152,16 @@ module.exports = [ } ]; +if(App.get('isHadoop22Stack')){ + for(var i = 0; i < configs.length; i++){ + var config = configs[i]; + if( config.serviceName === 'STORM' ){ + config.configCategories.unshift(App.ServiceConfigCategory.create({ name: 'Nimbus', displayName: 'Nimbus'})); + } + } +} + + +module.exports = configs; + http://git-wip-us.apache.org/repos/asf/ambari/blob/73c169e3/ambari-web/app/data/HDP2/secure_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/secure_properties.js b/ambari-web/app/data/HDP2/secure_properties.js index f3d8d92..6733f12 100644 --- a/ambari-web/app/data/HDP2/secure_properties.js +++ b/ambari-web/app/data/HDP2/secure_properties.js @@ -27,8 +27,7 @@ * component: Ambari component name */ -module.exports = -{ +var props = { "configProperties": [ { "id": "puppet var", @@ -990,51 +989,6 @@ module.exports = "category": "Nagios Server", "component": "NAGIOS_SERVER" }, - /**********************************************STORM***************************************/ - { - "id": "puppet var", - "name": "storm_host", - "displayName": "Storm component hosts", - "value": "", - "defaultValue": "", - "description": "Storm component hosts", - "displayType": "slaveHosts", - "isVisible": true, - "isOverridable": false, - "serviceName": "STORM", - "category": "Storm Topology" - }, - { - "id": "puppet var", - "name": "storm_principal_name", - "displayName": " Storm principal name", - "value": "", - "defaultValue": "storm/_HOST", - "description": "Principal name for Supervisor. _HOST will get automatically replaced with actual hostname at an instance of every storm component.", - "displayType": "principal", - "isVisible": true, - "isOverridable": false, - "serviceName": "STORM", - "filename": "storm-env.xml", - "category": "Storm Topology", - "components": ["SUPERVISOR", "NIMBUS", "STORM_UI_SERVER"] - }, - { - "id": "puppet var", - "name": "storm_keytab", - "displayName": "Path to Storm keytab file", - "value": "", - "defaultValue": "/etc/security/keytabs/storm.service.keytab", - "description": "Path to the storm keytab file", - "displayType": "directory", - "isVisible": true, - "isOverridable": false, - "serviceName": "STORM", - "filename": "storm-env.xml", - "category": "Storm Topology", - "components": ["SUPERVISOR", "NIMBUS"] - }, - /**********************************************Falcon***************************************/ { "id": "puppet var", @@ -1118,3 +1072,162 @@ module.exports = } ] }; + +var stormProperties = [ + { + "id": "puppet var", + "name": "storm_host", + "displayName": "Storm component hosts", + "value": "", + "defaultValue": "", + "description": "Storm component hosts", + "displayType": "slaveHosts", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "category": "Storm Topology" + }, + { + "id": "puppet var", + "name": "storm_principal_name", + "displayName": " Storm principal name", + "value": "", + "defaultValue": "storm/_HOST", + "description": "Principal name for Supervisor. _HOST will get automatically replaced with actual hostname at an instance of every storm component.", + "displayType": "principal", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Storm Topology", + "components": ["SUPERVISOR", "NIMBUS", "STORM_UI_SERVER"] + }, + { + "id": "puppet var", + "name": "storm_keytab", + "displayName": "Path to Storm keytab file", + "value": "", + "defaultValue": "/etc/security/keytabs/storm.service.keytab", + "description": "Path to the storm keytab file", + "displayType": "directory", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Storm Topology", + "components": ["SUPERVISOR", "NIMBUS"] + } +]; +var storm22Properties = [ + { + "id": "puppet var", + "name": "storm_principal_name", + "displayName": " Storm principal name", + "value": "", + "defaultValue": "storm/_HOST", + "description": "Principal name for Storm components. _HOST will get automatically replaced with actual hostname at an instance of every storm component.", + "displayType": "principal", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Storm Topology", + "components": ["SUPERVISOR", "STORM_UI_SERVER", "DRPC_SERVER", "STORM_REST_API"] + }, + { + "id": "puppet var", + "name": "storm_keytab", + "displayName": "Path to Storm keytab file", + "value": "", + "defaultValue": "/etc/security/keytabs/storm.service.keytab", + "description": "Path to the storm keytab file", + "displayType": "directory", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Storm Topology", + "components": ["SUPERVISOR", "STORM_UI_SERVER", "DRPC_SERVER", "STORM_REST_API"] + }, + { + "id": "puppet var", + "name": "nimbus_host", + "displayName": "Nimbus hosts", + "value": "", + "defaultValue": "", + "description": "Nimbus component hosts", + "displayType": "slaveHosts", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "category": "Nimbus" + }, + { + "id": "puppet var", + "name": "nimbus_principal_name", + "displayName": " Nimbus principal name", + "value": "", + "defaultValue": "nimbus/_HOST", + "description": "Nimbus Principal name", + "displayType": "principal", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Nimbus", + "components": ["NIMBUS","DRPC_SERVER"] + }, + { + "id": "puppet var", + "name": "nimbus_keytab", + "displayName": "Path to Nimbus keytab file", + "value": "", + "defaultValue": "/etc/security/keytabs/nimbus.service.keytab", + "description": "Path to the nimbus keytab file", + "displayType": "directory", + "isVisible": true, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Nimbus", + "components": ["NIMBUS","DRPC_SERVER"] + }, + { + "id": "puppet var", + "name": "strom_ui_principal_name", + "displayName": "Storm UI principal name", + "value": "", + "defaultValue": "HTTP/_HOST", + "description": "Principal name for Storm UI", + "displayType": "principal", + "isVisible": false, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Nimbus", + "components": ["STORM_UI_SERVER"] + }, + { + "id": "puppet var", + "name": "strom_ui_keytab", + "displayName": "Path to Nimbus UI keytab file", + "value": "", + "defaultValue": "/etc/security/keytabs/http.storm.service.keytab", + "description": "Path to the Storm UI keytab file", + "displayType": "directory", + "isVisible": false, + "isOverridable": false, + "serviceName": "STORM", + "filename": "storm-env.xml", + "category": "Nimbus", + "components": ["STORM_UI_SERVER"] + } +]; + +if(App.get('isHadoop22Stack')) { + props.configProperties.pushObjects(storm22Properties); +} else { + props.configProperties.pushObjects(stormProperties); +} + +module.exports = props;