You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by sm...@apache.org on 2014/07/09 02:47:54 UTC
[1/2] SLIDER-181. Storm App Package (minor config changes and folder
name changes)
Repository: incubator-slider
Updated Branches:
refs/heads/develop 6f677f6a0 -> 32c7ea98a
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/appConfig.json
----------------------------------------------------------------------
diff --git a/app-packages/storm/appConfig.json b/app-packages/storm/appConfig.json
new file mode 100644
index 0000000..6d6aa3a
--- /dev/null
+++ b/app-packages/storm/appConfig.json
@@ -0,0 +1,126 @@
+{
+ "schema": "http://example.org/specification/v2.0.0",
+ "metadata": {
+ },
+ "global": {
+ "application.def": "/slider/storm_v091.zip",
+ "config_types": "storm-site",
+ "java_home": "/usr/jdk64/jdk1.7.0_45",
+ "package_list": "files/apache-storm-0.9.1.2.1.1.0-237.tar.gz",
+ "create.default.zookeeper.node": "true",
+ "site.global.app_user": "yarn",
+ "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237",
+ "site.global.user_group": "hadoop",
+ "site.global.security_enabled": "false",
+ "site.global.ganglia_server_host": "${NN_HOST}",
+ "site.global.ganglia_server_id": "Application2",
+ "site.global.ganglia_enabled":"true",
+ "site.global.ganglia_server_port": "8668",
+ "site.global.rest_api_port": "${STORM_REST_API.ALLOCATED_PORT}",
+ "site.global.rest_api_admin_port": "${STORM_REST_API.ALLOCATED_PORT}",
+ "site.storm-site.topology.tuple.serializer": "backtype.storm.serialization.types.ListDelegateSerializer",
+ "site.storm-site.topology.workers": "1",
+ "site.storm-site.drpc.worker.threads": "64",
+ "site.storm-site.storm.zookeeper.servers": "['${ZK_HOST}']",
+ "site.storm-site.supervisor.heartbeat.frequency.secs": "5",
+ "site.storm-site.topology.executor.send.buffer.size": "1024",
+ "site.storm-site.drpc.childopts": "-Xmx768m",
+ "site.storm-site.nimbus.thrift.port": "${NIMBUS.ALLOCATED_PORT}",
+ "site.storm-site.storm.zookeeper.retry.intervalceiling.millis": "30000",
+ "site.storm-site.storm.local.dir": "${AGENT_WORK_ROOT}/app/tmp/storm",
+ "site.storm-site.topology.receiver.buffer.size": "8",
+ "site.storm-site.storm.messaging.netty.client_worker_threads": "1",
+ "site.storm-site.transactional.zookeeper.root": "/transactional",
+ "site.storm-site.drpc.request.timeout.secs": "600",
+ "site.storm-site.topology.skip.missing.kryo.registrations": "false",
+ "site.storm-site.worker.heartbeat.frequency.secs": "1",
+ "site.storm-site.zmq.hwm": "0",
+ "site.storm-site.storm.zookeeper.connection.timeout": "15000",
+ "site.storm-site.topology.max.error.report.per.interval": "5",
+ "site.storm-site.storm.messaging.netty.server_worker_threads": "1",
+ "site.storm-site.supervisor.worker.start.timeout.secs": "120",
+ "site.storm-site.zmq.threads": "1",
+ "site.storm-site.topology.acker.executors": "null",
+ "site.storm-site.storm.local.mode.zmq": "false",
+ "site.storm-site.topology.max.task.parallelism": "null",
+ "site.storm-site.storm.zookeeper.port": "2181",
+ "site.storm-site.nimbus.childopts": "-Xmx1024m -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM",
+ "site.storm-site.worker.childopts": "-Xmx768m -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM",
+ "site.storm-site.drpc.queue.size": "128",
+ "site.storm-site.storm.zookeeper.retry.times": "5",
+ "site.storm-site.nimbus.monitor.freq.secs": "10",
+ "site.storm-site.storm.cluster.mode": "distributed",
+ "site.storm-site.dev.zookeeper.path": "${AGENT_WORK_ROOT}/app/tmp/dev-storm-zookeeper",
+ "site.storm-site.drpc.invocations.port": "0",
+ "site.storm-site.storm.zookeeper.root": "${DEF_ZK_PATH}",
+ "site.storm-site.logviewer.childopts": "-Xmx128m",
+ "site.storm-site.transactional.zookeeper.port": "null",
+ "site.storm-site.topology.worker.childopts": "null",
+ "site.storm-site.topology.max.spout.pending": "null",
+ "site.storm-site.nimbus.cleanup.inbox.freq.secs": "600",
+ "site.storm-site.storm.messaging.netty.min_wait_ms": "100",
+ "site.storm-site.nimbus.task.timeout.secs": "30",
+ "site.storm-site.nimbus.thrift.max_buffer_size": "1048576",
+ "site.storm-site.topology.sleep.spout.wait.strategy.time.ms": "1",
+ "site.storm-site.topology.optimize": "true",
+ "site.storm-site.nimbus.reassign": "true",
+ "site.storm-site.storm.messaging.transport": "backtype.storm.messaging.netty.Context",
+ "site.storm-site.logviewer.appender.name": "A1",
+ "site.storm-site.nimbus.host": "${NIMBUS_HOST}",
+ "site.storm-site.ui.port": "${STORM_UI_SERVER.ALLOCATED_PORT}",
+ "site.storm-site.supervisor.slots.ports": "[${SUPERVISOR.ALLOCATED_PORT}]",
+ "site.storm-site.nimbus.file.copy.expiration.secs": "600",
+ "site.storm-site.supervisor.monitor.frequency.secs": "3",
+ "site.storm-site.transactional.zookeeper.servers": "null",
+ "site.storm-site.zmq.linger.millis": "5000",
+ "site.storm-site.topology.error.throttle.interval.secs": "10",
+ "site.storm-site.topology.worker.shared.thread.pool.size": "4",
+ "site.storm-site.java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib",
+ "site.storm-site.topology.spout.wait.strategy": "backtype.storm.spout.SleepSpoutWaitStrategy",
+ "site.storm-site.task.heartbeat.frequency.secs": "3",
+ "site.storm-site.topology.transfer.buffer.size": "1024",
+ "site.storm-site.storm.zookeeper.session.timeout": "20000",
+ "site.storm-site.topology.executor.receive.buffer.size": "1024",
+ "site.storm-site.topology.stats.sample.rate": "0.05",
+ "site.storm-site.topology.fall.back.on.java.serialization": "true",
+ "site.storm-site.supervisor.childopts": "-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=0 -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM",
+ "site.storm-site.topology.enable.message.timeouts": "true",
+ "site.storm-site.storm.messaging.netty.max_wait_ms": "1000",
+ "site.storm-site.nimbus.topology.validator": "backtype.storm.nimbus.DefaultTopologyValidator",
+ "site.storm-site.nimbus.supervisor.timeout.secs": "60",
+ "site.storm-site.topology.disruptor.wait.strategy": "com.lmax.disruptor.BlockingWaitStrategy",
+ "site.storm-site.nimbus.inbox.jar.expiration.secs": "3600",
+ "site.storm-site.drpc.port": "0",
+ "site.storm-site.topology.kryo.factory": "backtype.storm.serialization.DefaultKryoFactory",
+ "site.storm-site.storm.zookeeper.retry.interval": "1000",
+ "site.storm-site.storm.messaging.netty.max_retries": "30",
+ "site.storm-site.topology.tick.tuple.freq.secs": "null",
+ "site.storm-site.supervisor.enable": "true",
+ "site.storm-site.nimbus.task.launch.secs": "120",
+ "site.storm-site.task.refresh.poll.secs": "10",
+ "site.storm-site.topology.message.timeout.secs": "30",
+ "site.storm-site.storm.messaging.netty.buffer_size": "5242880",
+ "site.storm-site.topology.state.synchronization.timeout.secs": "60",
+ "site.storm-site.supervisor.worker.timeout.secs": "30",
+ "site.storm-site.topology.trident.batch.emit.interval.millis": "500",
+ "site.storm-site.topology.builtin.metrics.bucket.size.secs": "60",
+ "site.storm-site.storm.thrift.transport": "backtype.storm.security.auth.SimpleTransportPlugin",
+ "site.storm-site.logviewer.port": "0",
+ "site.storm-site.topology.debug": "false"
+ },
+ "components": {
+ "slider-appmaster": {
+ "jvm.heapsize": "256M"
+ },
+ "NIMBUS": {
+ },
+ "STORM_REST_API": {
+ },
+ "STORM_UI_SERVER": {
+ },
+ "DRPC_SERVER": {
+ },
+ "SUPERVISOR": {
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/configuration/global.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/configuration/global.xml b/app-packages/storm/configuration/global.xml
new file mode 100644
index 0000000..5cc9170
--- /dev/null
+++ b/app-packages/storm/configuration/global.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<configuration>
+ <property>
+ <name>storm_user</name>
+ <value>storm</value>
+ <description></description>
+ </property>
+ <property>
+ <name>storm_log_dir</name>
+ <value>/var/log/storm</value>
+ <description></description>
+ </property>
+ <property>
+ <name>storm_pid_dir</name>
+ <value>/var/run/storm</value>
+ <description></description>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/configuration/storm-site.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/configuration/storm-site.xml b/app-packages/storm/configuration/storm-site.xml
new file mode 100644
index 0000000..6eca8f9
--- /dev/null
+++ b/app-packages/storm/configuration/storm-site.xml
@@ -0,0 +1,587 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<configuration>
+ <property>
+ <name>java.library.path</name>
+ <value>/usr/local/lib:/opt/local/lib:/usr/lib</value>
+ <description>This value is passed to spawned JVMs (e.g., Nimbus, Supervisor, and Workers)
+ for the java.library.path value. java.library.path tells the JVM where
+ to look for native libraries. It is necessary to set this config correctly since
+ Storm uses the ZeroMQ and JZMQ native libs. </description>
+ </property>
+ <property>
+ <name>storm.local.dir</name>
+ <value>/hadoop/storm</value>
+ <description>A directory on the local filesystem used by Storm for any local
+ filesystem usage it needs. The directory must exist and the Storm daemons must
+ have permission to read/write from this location.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.servers</name>
+ <value>['localhost']</value>
+ <description>A list of hosts of ZooKeeper servers used to manage the cluster.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.port</name>
+ <value>2181</value>
+ <description>The port Storm will use to connect to each of the ZooKeeper servers.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.root</name>
+ <value>/storm</value>
+ <description>The root location at which Storm stores data in ZooKeeper.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.session.timeout</name>
+ <value>20000</value>
+ <description>The session timeout for clients to ZooKeeper.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.connection.timeout</name>
+ <value>15000</value>
+ <description>The connection timeout for clients to ZooKeeper.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.retry.times</name>
+ <value>5</value>
+ <description>The number of times to retry a Zookeeper operation.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.retry.interval</name>
+ <value>1000</value>
+ <description>The interval between retries of a Zookeeper operation.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.retry.intervalceiling.millis</name>
+ <value>30000</value>
+ <description>The ceiling of the interval between retries of a Zookeeper operation.</description>
+ </property>
+ <property>
+ <name>storm.cluster.mode</name>
+ <value>distributed</value>
+ <description>The mode this Storm cluster is running in. Either "distributed" or "local".</description>
+ </property>
+ <property>
+ <name>storm.local.mode.zmq</name>
+ <value>false</value>
+ <description>Whether or not to use ZeroMQ for messaging in local mode. If this is set
+ to false, then Storm will use a pure-Java messaging system. The purpose
+ of this flag is to make it easy to run Storm in local mode by eliminating
+ the need for native dependencies, which can be difficult to install.
+ </description>
+ </property>
+ <property>
+ <name>storm.thrift.transport</name>
+ <value>backtype.storm.security.auth.SimpleTransportPlugin</value>
+ <description>The transport plug-in for Thrift client/server communication.</description>
+ </property>
+ <property>
+ <name>storm.messaging.transport</name>
+ <value>backtype.storm.messaging.netty.Context</value>
+ <description>The transporter for communication among Storm tasks.</description>
+ </property>
+ <property>
+ <name>nimbus.host</name>
+ <value>localhost</value>
+ <description>The host that the master server is running on.</description>
+ </property>
+ <property>
+ <name>nimbus.thrift.port</name>
+ <value>6627</value>
+ <description> Which port the Thrift interface of Nimbus should run on. Clients should
+ connect to this port to upload jars and submit topologies.</description>
+ </property>
+ <property>
+ <name>nimbus.thrift.max_buffer_size</name>
+ <value>1048576</value>
+ <description>The maximum buffer size thrift should use when reading messages.</description>
+ </property>
+ <property>
+ <name>nimbus.childopts</name>
+ <value>-Xmx1024m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
+ <description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
+ </property>
+ <property>
+ <name>nimbus.task.timeout.secs</name>
+ <value>30</value>
+ <description>How long without heartbeating a task can go before nimbus will consider the task dead and reassign it to another location.</description>
+ </property>
+ <property>
+ <name>nimbus.supervisor.timeout.secs</name>
+ <value>60</value>
+ <description>How long before a supervisor can go without heartbeating before nimbus considers it dead and stops assigning new work to it.</description>
+ </property>
+ <property>
+ <name>nimbus.monitor.freq.secs</name>
+ <value>10</value>
+ <description>
+ How often nimbus should wake up to check heartbeats and do reassignments. Note
+ that if a machine ever goes down Nimbus will immediately wake up and take action.
+ This parameter is for checking for failures when there's no explicit event like that occuring.
+ </description>
+ </property>
+ <property>
+ <name>nimbus.cleanup.inbox.freq.secs</name>
+ <value>600</value>
+ <description>How often nimbus should wake the cleanup thread to clean the inbox.</description>
+ </property>
+ <property>
+ <name>nimbus.inbox.jar.expiration.secs</name>
+ <value>3600</value>
+ <description>
+ The length of time a jar file lives in the inbox before being deleted by the cleanup thread.
+
+ Probably keep this value greater than or equal to NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS.
+ Note that the time it takes to delete an inbox jar file is going to be somewhat more than
+ NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS (depending on how often NIMBUS_CLEANUP_FREQ_SECS is set to).
+ </description>
+ </property>
+ <property>
+ <name>nimbus.task.launch.secs</name>
+ <value>120</value>
+ <description>A special timeout used when a task is initially launched. During launch, this is the timeout
+ used until the first heartbeat, overriding nimbus.task.timeout.secs.</description>
+ </property>
+ <property>
+ <name>nimbus.reassign</name>
+ <value>true</value>
+ <description>Whether or not nimbus should reassign tasks if it detects that a task goes down.
+ Defaults to true, and it's not recommended to change this value.</description>
+ </property>
+ <property>
+ <name>nimbus.file.copy.expiration.secs</name>
+ <value>600</value>
+ <description>During upload/download with the master, how long an upload or download connection is idle
+ before nimbus considers it dead and drops the connection.</description>
+ </property>
+ <property>
+ <name>nimbus.topology.validator</name>
+ <value>backtype.storm.nimbus.DefaultTopologyValidator</value>
+ <description>A custom class that implements ITopologyValidator that is run whenever a
+ topology is submitted. Can be used to provide business-specific logic for
+ whether topologies are allowed to run or not.</description>
+ </property>
+ <property>
+ <name>ui.port</name>
+ <value>8744</value>
+ <description>Storm UI binds to this port.</description>
+ </property>
+ <property>
+ <name>ui.childopts</name>
+ <value>-Xmx768m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf</value>
+ <description>Childopts for Storm UI Java process.</description>
+ </property>
+ <property>
+ <name>logviewer.port</name>
+ <value>8000</value>
+ <description>HTTP UI port for log viewer.</description>
+ </property>
+ <property>
+ <name>logviewer.childopts</name>
+ <value>-Xmx128m</value>
+ <description>Childopts for log viewer java process.</description>
+ </property>
+ <property>
+ <name>logviewer.appender.name</name>
+ <value>A1</value>
+ <description>Appender name used by log viewer to determine log directory.</description>
+ </property>
+ <property>
+ <name>drpc.port</name>
+ <value>3772</value>
+ <description>This port is used by Storm DRPC for receiving DPRC requests from clients.</description>
+ </property>
+ <property>
+ <name>drpc.worker.threads</name>
+ <value>64</value>
+ <description>DRPC thrift server worker threads.</description>
+ </property>
+ <property>
+ <name>drpc.queue.size</name>
+ <value>128</value>
+ <description>DRPC thrift server queue size.</description>
+ </property>
+ <property>
+ <name>drpc.invocations.port</name>
+ <value>3773</value>
+ <description>This port on Storm DRPC is used by DRPC topologies to receive function invocations and send results back.</description>
+ </property>
+ <property>
+ <name>drpc.request.timeout.secs</name>
+ <value>600</value>
+ <description>The timeout on DRPC requests within the DRPC server. Defaults to 10 minutes. Note that requests can also
+ timeout based on the socket timeout on the DRPC client, and separately based on the topology message
+ timeout for the topology implementing the DRPC function.</description>
+ </property>
+ <property>
+ <name>drpc.childopts</name>
+ <value>-Xmx768m</value>
+ <description>Childopts for Storm DRPC Java process.</description>
+ </property>
+ <property>
+ <name>transactional.zookeeper.root</name>
+ <value>/transactional</value>
+ <description>The root directory in ZooKeeper for metadata about TransactionalSpouts.</description>
+ </property>
+ <property>
+ <name>transactional.zookeeper.servers</name>
+ <value>null</value>
+ <description>The list of zookeeper servers in which to keep the transactional state. If null (which is default),
+ will use storm.zookeeper.servers</description>
+ </property>
+ <property>
+ <name>transactional.zookeeper.port</name>
+ <value>null</value>
+ <description>The port to use to connect to the transactional zookeeper servers. If null (which is default),
+ will use storm.zookeeper.port</description>
+ </property>
+ <property>
+ <name>supervisor.slots.ports</name>
+ <value>[6700, 6701]</value>
+ <description>A list of ports that can run workers on this supervisor. Each worker uses one port, and
+ the supervisor will only run one worker per port. Use this configuration to tune
+ how many workers run on each machine.</description>
+ </property>
+ <property>
+ <name>supervisor.childopts</name>
+ <value>-Xmx256m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
+ <description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
+ </property>
+ <property>
+ <name>supervisor.worker.start.timeout.secs</name>
+ <value>120</value>
+ <description>How long a worker can go without heartbeating during the initial launch before
+ the supervisor tries to restart the worker process. This value override
+ supervisor.worker.timeout.secs during launch because there is additional
+ overhead to starting and configuring the JVM on launch.</description>
+ </property>
+ <property>
+ <name>supervisor.worker.timeout.secs</name>
+ <value>30</value>
+ <description>How long a worker can go without heartbeating before the supervisor tries to restart the worker process.</description>
+ </property>
+ <property>
+ <name>supervisor.monitor.frequency.secs</name>
+ <value>3</value>
+ <description>How often the supervisor checks the worker heartbeats to see if any of them need to be restarted.</description>
+ </property>
+ <property>
+ <name>supervisor.heartbeat.frequency.secs</name>
+ <value>5</value>
+ <description>How often the supervisor sends a heartbeat to the master.</description>
+ </property>
+ <property>
+ <name>supervisor.enable</name>
+ <value>true</value>
+ <description>Whether or not the supervisor should launch workers assigned to it. Defaults
+ to true -- and you should probably never change this value. This configuration
+ is used in the Storm unit tests.</description>
+ </property>
+ <property>
+ <name>worker.childopts</name>
+ <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
+ <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
+ </property>
+ <property>
+ <name>worker.heartbeat.frequency.secs</name>
+ <value>1</value>
+ <description>How often this worker should heartbeat to the supervisor.</description>
+ </property>
+ <property>
+ <name>task.heartbeat.frequency.secs</name>
+ <value>3</value>
+ <description>How often a task should heartbeat its status to the master.</description>
+ </property>
+ <property>
+ <name>task.refresh.poll.secs</name>
+ <value>10</value>
+ <description>How often a task should sync its connections with other tasks (if a task is
+ reassigned, the other tasks sending messages to it need to refresh their connections).
+ In general though, when a reassignment happens other tasks will be notified
+ almost immediately. This configuration is here just in case that notification doesn't
+ come through.</description>
+ </property>
+ <property>
+ <name>zmq.threads</name>
+ <value>1</value>
+ <description>The number of threads that should be used by the zeromq context in each worker process.</description>
+ </property>
+ <property>
+ <name>zmq.linger.millis</name>
+ <value>5000</value>
+ <description>How long a connection should retry sending messages to a target host when
+ the connection is closed. This is an advanced configuration and can almost
+ certainly be ignored.</description>
+ </property>
+ <property>
+ <name>zmq.hwm</name>
+ <value>0</value>
+ <description>The high water for the ZeroMQ push sockets used for networking. Use this config to prevent buffer explosion
+ on the networking layer.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.server_worker_threads</name>
+ <value>1</value>
+ <description>Netty based messaging: The # of worker threads for the server.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.client_worker_threads</name>
+ <value>1</value>
+ <description>Netty based messaging: The # of worker threads for the client.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.buffer_size</name>
+ <value>5242880</value>
+ <description>Netty based messaging: The buffer size for send/recv buffer.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.max_retries</name>
+ <value>30</value>
+ <description>Netty based messaging: The max # of retries that a peer will perform when a remote is not accessible.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.max_wait_ms</name>
+ <value>1000</value>
+ <description>Netty based messaging: The max # of milliseconds that a peer will wait.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.min_wait_ms</name>
+ <value>100</value>
+ <description>Netty based messaging: The min # of milliseconds that a peer will wait.</description>
+ </property>
+ <property>
+ <name>topology.enable.message.timeouts</name>
+ <value>true</value>
+ <description>True if Storm should timeout messages or not. Defaults to true. This is meant to be used
+ in unit tests to prevent tuples from being accidentally timed out during the test.</description>
+ </property>
+ <property>
+ <name>topology.debug</name>
+ <value>false</value>
+ <description>When set to true, Storm will log every message that's emitted.</description>
+ </property>
+ <property>
+ <name>topology.optimize</name>
+ <value>true</value>
+ <description>Whether or not the master should optimize topologies by running multiple tasks in a single thread where appropriate.</description>
+ </property>
+ <property>
+ <name>topology.workers</name>
+ <value>1</value>
+ <description>How many processes should be spawned around the cluster to execute this
+ topology. Each process will execute some number of tasks as threads within
+ them. This parameter should be used in conjunction with the parallelism hints
+ on each component in the topology to tune the performance of a topology.</description>
+ </property>
+ <property>
+ <name>topology.acker.executors</name>
+ <value>null</value>
+ <description>How many executors to spawn for ackers.
+
+ If this is set to 0, then Storm will immediately ack tuples as soon
+ as they come off the spout, effectively disabling reliability.
+ </description>
+ </property>
+ <property>
+ <name>topology.message.timeout.secs</name>
+ <value>30</value>
+ <description>The maximum amount of time given to the topology to fully process a message
+ emitted by a spout. If the message is not acked within this time frame, Storm
+ will fail the message on the spout. Some spouts implementations will then replay
+ the message at a later time.</description>
+ </property>
+ <property>
+ <name>topology.skip.missing.kryo.registrations</name>
+ <value>false</value>
+ <description> Whether or not Storm should skip the loading of kryo registrations for which it
+ does not know the class or have the serializer implementation. Otherwise, the task will
+ fail to load and will throw an error at runtime. The use case of this is if you want to
+ declare your serializations on the storm.yaml files on the cluster rather than every single
+ time you submit a topology. Different applications may use different serializations and so
+ a single application may not have the code for the other serializers used by other apps.
+ By setting this config to true, Storm will ignore that it doesn't have those other serializations
+ rather than throw an error.</description>
+ </property>
+ <property>
+ <name>topology.max.task.parallelism</name>
+ <value>null</value>
+ <description>The maximum parallelism allowed for a component in this topology. This configuration is
+ typically used in testing to limit the number of threads spawned in local mode.</description>
+ </property>
+ <property>
+ <name>topology.max.spout.pending</name>
+ <value>null</value>
+ <description>The maximum number of tuples that can be pending on a spout task at any given time.
+ This config applies to individual tasks, not to spouts or topologies as a whole.
+
+ A pending tuple is one that has been emitted from a spout but has not been acked or failed yet.
+ Note that this config parameter has no effect for unreliable spouts that don't tag
+ their tuples with a message id.</description>
+ </property>
+ <property>
+ <name>topology.state.synchronization.timeout.secs</name>
+ <value>60</value>
+ <description>The maximum amount of time a component gives a source of state to synchronize before it requests
+ synchronization again.</description>
+ </property>
+ <property>
+ <name>topology.stats.sample.rate</name>
+ <value>0.05</value>
+ <description>The percentage of tuples to sample to produce stats for a task.</description>
+ </property>
+ <property>
+ <name>topology.builtin.metrics.bucket.size.secs</name>
+ <value>60</value>
+ <description>The time period that builtin metrics data in bucketed into.</description>
+ </property>
+ <property>
+ <name>topology.fall.back.on.java.serialization</name>
+ <value>true</value>
+ <description>Whether or not to use Java serialization in a topology.</description>
+ </property>
+ <property>
+ <name>topology.worker.childopts</name>
+ <value>null</value>
+ <description>Topology-specific options for the worker child process. This is used in addition to WORKER_CHILDOPTS.</description>
+ </property>
+ <property>
+ <name>topology.executor.receive.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor receive queue for each executor. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.executor.send.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.receiver.buffer.size</name>
+ <value>8</value>
+ <description>The maximum number of messages to batch from the thread receiving off the network to the
+ executor queues. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.transfer.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor transfer queue for each worker.</description>
+ </property>
+ <property>
+ <name>topology.tick.tuple.freq.secs</name>
+ <value>null</value>
+ <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
+ to tasks. Meant to be used as a component-specific configuration.</description>
+ </property>
+ <property>
+ <name>topology.worker.shared.thread.pool.size</name>
+ <value>4</value>
+ <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
+ via the TopologyContext.</description>
+ </property>
+ <property>
+ <name>topology.disruptor.wait.strategy</name>
+ <value>com.lmax.disruptor.BlockingWaitStrategy</value>
+ <description>Configure the wait strategy used for internal queuing. Can be used to tradeoff latency
+ vs. throughput.</description>
+ </property>
+ <property>
+ <name>topology.executor.send.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.receiver.buffer.size</name>
+ <value>8</value>
+ <description>The maximum number of messages to batch from the thread receiving off the network to the
+ executor queues. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.transfer.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor transfer queue for each worker.</description>
+ </property>
+ <property>
+ <name>topology.tick.tuple.freq.secs</name>
+ <value>null</value>
+ <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
+ to tasks. Meant to be used as a component-specific configuration.</description>
+ </property>
+ <property>
+ <name>topology.worker.shared.thread.pool.size</name>
+ <value>4</value>
+ <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
+ via the TopologyContext.</description>
+ </property>
+ <property>
+ <name>topology.spout.wait.strategy</name>
+ <value>backtype.storm.spout.SleepSpoutWaitStrategy</value>
+ <description>A class that implements a strategy for what to do when a spout needs to wait. Waiting is
+ triggered in one of two conditions:
+
+ 1. nextTuple emits no tuples
+ 2. The spout has hit maxSpoutPending and can't emit any more tuples</description>
+ </property>
+ <property>
+ <name>topology.sleep.spout.wait.strategy.time.ms</name>
+ <value>1</value>
+ <description>The amount of milliseconds the SleepEmptyEmitStrategy should sleep for.</description>
+ </property>
+ <property>
+ <name>topology.error.throttle.interval.secs</name>
+ <value>10</value>
+ <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
+ an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
+ reported to Zookeeper per task for every 10 second interval of time.</description>
+ </property>
+ <property>
+ <name>topology.max.error.report.per.interval</name>
+ <value>5</value>
+ <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
+ an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
+ reported to Zookeeper per task for every 10 second interval of time.</description>
+ </property>
+ <property>
+ <name>topology.kryo.factory</name>
+ <value>backtype.storm.serialization.DefaultKryoFactory</value>
+ <description>Class that specifies how to create a Kryo instance for serialization. Storm will then apply
+ topology.kryo.register and topology.kryo.decorators on top of this. The default implementation
+ implements topology.fall.back.on.java.serialization and turns references off.</description>
+ </property>
+ <property>
+ <name>topology.tuple.serializer</name>
+ <value>backtype.storm.serialization.types.ListDelegateSerializer</value>
+ <description>The serializer class for ListDelegate (tuple payload).
+ The default serializer will be ListDelegateSerializer</description>
+ </property>
+ <property>
+ <name>topology.trident.batch.emit.interval.millis</name>
+ <value>500</value>
+ <description>How often a batch can be emitted in a Trident topology.</description>
+ </property>
+ <property>
+ <name>dev.zookeeper.path</name>
+ <value>/tmp/dev-storm-zookeeper</value>
+ <description>The path to use as the zookeeper dir when running a zookeeper server via
+ "storm dev-zookeeper". This zookeeper instance is only intended for development;
+ it is not a production grade zookeeper setup.</description>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/ganglia_metrics.json
----------------------------------------------------------------------
diff --git a/app-packages/storm/ganglia_metrics.json b/app-packages/storm/ganglia_metrics.json
new file mode 100644
index 0000000..861c4fa
--- /dev/null
+++ b/app-packages/storm/ganglia_metrics.json
@@ -0,0 +1,31 @@
+{
+ "Component": {
+ "NIMBUS": {
+ "totalslots": {
+ "metric": "Total Slots",
+ "pointInTime": false,
+ "temporal": true
+ },
+ "totalexecutors": {
+ "metric": "Total Executors",
+ "pointInTime": false,
+ "temporal": true
+ },
+ "topologies": {
+ "metric": "Topologies",
+ "pointInTime": false,
+ "temporal": true
+ },
+ "totaltasks": {
+ "metric": "Total Tasks",
+ "pointInTime": false,
+ "temporal": true
+ },
+ "usedslots": {
+ "metric": "Used Slots",
+ "pointInTime": false,
+ "temporal": true
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/jmx_metrics.json
----------------------------------------------------------------------
diff --git a/app-packages/storm/jmx_metrics.json b/app-packages/storm/jmx_metrics.json
new file mode 100644
index 0000000..f7d4e60
--- /dev/null
+++ b/app-packages/storm/jmx_metrics.json
@@ -0,0 +1,31 @@
+{
+ "Component": {
+ "NIMBUS": {
+ "FreeSlots": {
+ "metric": "$['slots.free']",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "Tasks": {
+ "metric": "$['tasks.total']",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "Executors": {
+ "metric": "$['executors.total']",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "Topologies": {
+ "metric": "$['topologies']",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "NimbusUptime": {
+ "metric": "$['nimbus.uptime']",
+ "pointInTime": true,
+ "temporal": false
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/metainfo.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/metainfo.xml b/app-packages/storm/metainfo.xml
new file mode 100644
index 0000000..7edd794
--- /dev/null
+++ b/app-packages/storm/metainfo.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <application>
+ <name>STORM</name>
+ <comment>Apache Hadoop Stream processing framework</comment>
+ <version>0.9.1.2.1</version>
+
+ <exportGroups>
+ <exportGroup>
+ <name>QuickLinks</name>
+ <exports>
+ <export>
+ <name>org.apache.slider.jmx</name>
+ <value>http://${STORM_REST_API_HOST}:${site.global.rest_api_port}/api/cluster/summary</value>
+ </export>
+ <export>
+ <name>org.apache.slider.monitor</name>
+ <value>http://${STORM_UI_SERVER_HOST}:${site.storm-site.ui.port}</value>
+ </export>
+ <export>
+ <name>org.apache.slider.metrics</name>
+ <value>http://${site.global.ganglia_server_host}/cgi-bin/rrd.py?c=${site.global.ganglia_server_id}</value>
+ </export>
+ <export>
+ <name>org.apache.slider.ganglia</name>
+ <value>http://${site.global.ganglia_server_host}/ganglia?c=${site.global.ganglia_server_id}</value>
+ </export>
+ </exports>
+ </exportGroup>
+ </exportGroups>
+
+ <commandOrders>
+ <commandOrder>
+ <command>NIMBUS-START</command>
+ <requires>SUPERVISOR-INSTALLED,STORM_UI_SERVER-INSTALLED,DRPC_SERVER-INSTALLED,STORM_REST_API-INSTALLED
+ </requires>
+ </commandOrder>
+ <commandOrder>
+ <command>SUPERVISOR-START</command>
+ <requires>NIMBUS-STARTED</requires>
+ </commandOrder>
+ <commandOrder>
+ <command>DRPC_SERVER-START</command>
+ <requires>NIMBUS-STARTED</requires>
+ </commandOrder>
+ <commandOrder>
+ <command>STORM_REST_API-START</command>
+ <requires>NIMBUS-STARTED,DRPC_SERVER-STARTED,STORM_UI_SERVER-STARTED</requires>
+ </commandOrder>
+ <commandOrder>
+ <command>STORM_UI_SERVER-START</command>
+ <requires>NIMBUS-STARTED</requires>
+ </commandOrder>
+ </commandOrders>
+
+ <components>
+
+ <component>
+ <name>NIMBUS</name>
+ <category>MASTER</category>
+ <commandScript>
+ <script>scripts/nimbus.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>STORM_REST_API</name>
+ <category>MASTER</category>
+ <commandScript>
+ <script>scripts/rest_api.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>SUPERVISOR</name>
+ <category>SLAVE</category>
+ <commandScript>
+ <script>scripts/supervisor.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>STORM_UI_SERVER</name>
+ <category>MASTER</category>
+ <publishConfig>true</publishConfig>
+ <commandScript>
+ <script>scripts/ui_server.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>DRPC_SERVER</name>
+ <category>MASTER</category>
+ <commandScript>
+ <script>scripts/drpc_server.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+ </components>
+
+ <osSpecifics>
+ <osSpecific>
+ <osType>any</osType>
+ <packages>
+ <package>
+ <type>tarball</type>
+ <name>files/apache-storm-0.9.1.2.1.1.0-237.tar.gz</name>
+ </package>
+ </packages>
+ </osSpecific>
+ </osSpecifics>
+
+ <configuration-dependencies>
+ <config-type>storm-site</config-type>
+ <config-type>global</config-type>
+ </configuration-dependencies>
+ </application>
+</metainfo>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE b/app-packages/storm/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
new file mode 100644
index 0000000..dd934d5
--- /dev/null
+++ b/app-packages/storm/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
@@ -0,0 +1,16 @@
+# 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.
+
+Replace with the actual storm package.
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/drpc_server.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/drpc_server.py b/app-packages/storm/package/scripts/drpc_server.py
new file mode 100644
index 0000000..a01d0f0
--- /dev/null
+++ b/app-packages/storm/package/scripts/drpc_server.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+
+class DrpcServer(Script):
+ def install(self, env):
+ self.install_packages(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("drpc", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("drpc", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_drpc)
+
+if __name__ == "__main__":
+ DrpcServer().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/nimbus.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/nimbus.py b/app-packages/storm/package/scripts/nimbus.py
new file mode 100644
index 0000000..c7c3120
--- /dev/null
+++ b/app-packages/storm/package/scripts/nimbus.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+
+class Nimbus(Script):
+ def install(self, env):
+ self.install_packages(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("nimbus", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("nimbus", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_nimbus)
+
+if __name__ == "__main__":
+ Nimbus().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/params.py b/app-packages/storm/package/scripts/params.py
new file mode 100644
index 0000000..cf21b27
--- /dev/null
+++ b/app-packages/storm/package/scripts/params.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+from resource_management import *
+import status_params
+
+# server configurations
+config = Script.get_config()
+
+app_root = config['configurations']['global']['app_root']
+conf_dir = format("{app_root}/conf")
+storm_user = config['configurations']['global']['app_user']
+log_dir = config['configurations']['global']['app_log_dir']
+pid_dir = status_params.pid_dir
+local_dir = config['configurations']['storm-site']['storm.local.dir']
+user_group = config['configurations']['global']['user_group']
+java64_home = config['hostLevelParams']['java_home']
+nimbus_host = config['configurations']['storm-site']['nimbus.host']
+nimbus_port = config['configurations']['storm-site']['nimbus.thrift.port']
+nimbus_host = config['configurations']['storm-site']['nimbus.host']
+rest_api_port = config['configurations']['global']['rest_api_port']
+rest_api_admin_port = config['configurations']['global']['rest_api_admin_port']
+rest_api_conf_file = format("{conf_dir}/config.yaml")
+rest_lib_dir = format("{app_root}/contrib/storm-rest")
+storm_bin = format("{app_root}/bin/storm")
+
+ganglia_installed = config['configurations']['global']['ganglia_enabled']
+if ganglia_installed:
+ ganglia_report_interval = 60
+ ganglia_server = config['configurations']['global']['ganglia_server_host']
+ ganglia_port = config['configurations']['global']['ganglia_server_port']
+
+_authentication = config['configurations']['core-site']['hadoop.security.authentication']
+security_enabled = ( not is_empty(_authentication) and _authentication == 'kerberos')
+
+if security_enabled:
+ _hostname_lowercase = config['hostname'].lower()
+ _kerberos_domain = config['configurations']['global']['kerberos_domain']
+ _storm_principal_name = config['configurations']['global']['storm_principal_name']
+ storm_jaas_principal = _storm_principal_name.replace('_HOST', _hostname_lowercase)
+ storm_keytab_path = config['configurations']['global']['storm_keytab']
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/rest_api.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/rest_api.py b/app-packages/storm/package/scripts/rest_api.py
new file mode 100644
index 0000000..33d8924
--- /dev/null
+++ b/app-packages/storm/package/scripts/rest_api.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+
+
+class StormRestApi(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("rest_api", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("rest_api", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_rest_api)
+
+if __name__ == "__main__":
+ StormRestApi().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/service.py b/app-packages/storm/package/scripts/service.py
new file mode 100644
index 0000000..10fa5b9
--- /dev/null
+++ b/app-packages/storm/package/scripts/service.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+
+from resource_management import *
+import time
+
+
+def service(
+ name,
+ action='start'):
+ import params
+ import status_params
+
+ pid_file = status_params.pid_files[name]
+ no_op_test = format("ls {pid_file} >/dev/null 2>&1 && ps `cat {pid_file}` >/dev/null 2>&1")
+ jps_path = format("{java64_home}/bin/jps")
+ grep_and_awk = "| grep -v grep | awk '{print $1}'"
+
+ if name == 'ui':
+ #process_cmd = "^java.+backtype.storm.ui.core$"
+ pid_chk_cmd = format("{jps_path} -vl | grep \"^[0-9 ]*backtype.storm.ui.core\" {grep_and_awk} > {pid_file}")
+ elif name == "rest_api":
+ process_cmd = format("{java64_home}/bin/java -jar {rest_lib_dir}/`ls {rest_lib_dir} | grep -wE storm-rest-[0-9.-]+\.jar` server")
+ crt_pid_cmd = format("pgrep -f \"{process_cmd}\" && pgrep -f \"{process_cmd}\" > {pid_file}")
+ else:
+ #process_cmd = format("^java.+backtype.storm.daemon.{name}$")
+ pid_chk_cmd = format("{jps_path} -vl | grep \"^[0-9 ]*backtype.storm.daemon.{name}\" {grep_and_awk} > {pid_file}")
+
+ if action == "start":
+ if name == "rest_api":
+ cmd = format("{process_cmd} {rest_api_conf_file} > {log_dir}/restapi.log")
+ else:
+ cmd = format("env JAVA_HOME={java64_home} PATH=$PATH:{java64_home}/bin STORM_BASE_DIR={app_root} STORM_CONF_DIR={conf_dir} {storm_bin} {name}")
+
+ Execute(cmd,
+ not_if=no_op_test,
+ user=params.storm_user,
+ logoutput=False,
+ wait_for_finish=False
+ )
+
+ if name == "rest_api":
+ Execute(crt_pid_cmd,
+ user=params.storm_user,
+ logoutput=True,
+ tries=6,
+ try_sleep=10
+ )
+ else:
+ content = None
+ for i in xrange(12):
+ Execute(pid_chk_cmd,
+ user=params.storm_user,
+ logoutput=True
+ )
+ with open(pid_file) as f:
+ content = f.readline().strip()
+ if content.isdigit():
+ break;
+ File(pid_file, action = "delete")
+ time.sleep(10)
+ pass
+
+ if not content.isdigit():
+ raise Fail(format("Unable to start {name}"))
+
+ elif action == "stop":
+ process_dont_exist = format("! ({no_op_test})")
+ pid = format("`cat {pid_file}` >/dev/null 2>&1")
+ Execute(format("kill {pid}"),
+ not_if=process_dont_exist
+ )
+ Execute(format("kill -9 {pid}"),
+ not_if=format("sleep 2; {process_dont_exist} || sleep 20; {process_dont_exist}"),
+ ignore_failures=True
+ )
+ Execute(format("rm -f {pid_file}"))
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/status_params.py b/app-packages/storm/package/scripts/status_params.py
new file mode 100644
index 0000000..eab83cf
--- /dev/null
+++ b/app-packages/storm/package/scripts/status_params.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+from resource_management import *
+
+config = Script.get_config()
+
+pid_dir = config['configurations']['global']['app_pid_dir']
+pid_nimbus = format("{pid_dir}/nimbus.pid")
+pid_supervisor = format("{pid_dir}/supervisor.pid")
+pid_drpc = format("{pid_dir}/drpc.pid")
+pid_ui = format("{pid_dir}/ui.pid")
+pid_logviewer = format("{pid_dir}/logviewer.pid")
+pid_rest_api = format("{pid_dir}/restapi.pid")
+pid_files = {"logviewer":pid_logviewer,
+ "ui": pid_ui,
+ "nimbus": pid_nimbus,
+ "supervisor": pid_supervisor,
+ "drpc": pid_drpc,
+ "rest_api": pid_rest_api}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/storm.py b/app-packages/storm/package/scripts/storm.py
new file mode 100644
index 0000000..bce272b
--- /dev/null
+++ b/app-packages/storm/package/scripts/storm.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+from resource_management import *
+from yaml_config import yaml_config
+import sys
+
+def storm():
+ import params
+
+ Directory([params.log_dir, params.pid_dir, params.local_dir, params.conf_dir],
+ owner=params.storm_user,
+ group=params.user_group,
+ recursive=True
+ )
+
+ File(format("{conf_dir}/config.yaml"),
+ content=Template("config.yaml.j2"),
+ owner = params.storm_user,
+ group = params.user_group
+ )
+
+ yaml_config( "storm.yaml",
+ conf_dir = params.conf_dir,
+ configurations = params.config['configurations']['storm-site'],
+ owner = params.storm_user,
+ group = params.user_group
+ )
+
+ if params.security_enabled:
+ TemplateConfig( format("{conf_dir}/storm_jaas.conf"),
+ owner = params.storm_user
+ )
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/supervisor.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/supervisor.py b/app-packages/storm/package/scripts/supervisor.py
new file mode 100644
index 0000000..47c20c9
--- /dev/null
+++ b/app-packages/storm/package/scripts/supervisor.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+import sys
+from resource_management import *
+from yaml_config import yaml_config
+from storm import storm
+from service import service
+
+
+class Supervisor(Script):
+ def install(self, env):
+ self.install_packages(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("supervisor", action="start")
+ service("logviewer", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("supervisor", action="stop")
+ service("logviewer", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+
+ check_process_status(status_params.pid_supervisor)
+
+
+if __name__ == "__main__":
+ Supervisor().execute()
+
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/ui_server.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/ui_server.py b/app-packages/storm/package/scripts/ui_server.py
new file mode 100644
index 0000000..0fe7cd2
--- /dev/null
+++ b/app-packages/storm/package/scripts/ui_server.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+
+class UiServer(Script):
+ def install(self, env):
+ self.install_packages(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("ui", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("ui", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_ui)
+
+if __name__ == "__main__":
+ UiServer().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/scripts/yaml_config.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/yaml_config.py b/app-packages/storm/package/scripts/yaml_config.py
new file mode 100644
index 0000000..39261be
--- /dev/null
+++ b/app-packages/storm/package/scripts/yaml_config.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+
+import re
+from resource_management import *
+
+def escape_yaml_propetry(value):
+ unquouted = False
+ unquouted_values = ["null","Null","NULL","true","True","TRUE","false","False","FALSE","YES","Yes","yes","NO","No","no","ON","On","on","OFF","Off","off"]
+
+ if value in unquouted_values:
+ unquouted = True
+
+ # if is list [a,b,c]
+ if re.match('^\w*\[.+\]\w*$', value):
+ unquouted = True
+
+ try:
+ int(value)
+ unquouted = True
+ except ValueError:
+ pass
+
+ try:
+ float(value)
+ unquouted = True
+ except ValueError:
+ pass
+
+ if not unquouted:
+ value = value.replace("'","''")
+ value = "'"+value+"'"
+
+ return value
+
+def yaml_config(
+ filename,
+ configurations = None,
+ conf_dir = None,
+ mode = None,
+ owner = None,
+ group = None
+):
+ config_content = source.InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_propetry(value) }}
+{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_propetry])
+
+ File (format("{conf_dir}/{filename}"),
+ content = config_content,
+ owner = owner,
+ group = group,
+ mode = mode
+ )
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/templates/config.yaml.j2
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/templates/config.yaml.j2 b/app-packages/storm/package/templates/config.yaml.j2
new file mode 100644
index 0000000..32d2c99
--- /dev/null
+++ b/app-packages/storm/package/templates/config.yaml.j2
@@ -0,0 +1,48 @@
+# 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.
+
+nimbusHost: {{nimbus_host}}
+nimbusPort: {{nimbus_port}}
+
+# HTTP-specific options.
+http:
+
+ # The port on which the HTTP server listens for service requests.
+ port: {{rest_api_port}}
+
+ # The port on which the HTTP server listens for administrative requests.
+ adminPort: {{rest_api_admin_port}}
+
+{% if ganglia_installed %}
+enableGanglia: {{ganglia_installed}}
+
+# ganglia configuration (necessary if ganglia reporting is enabled)
+ganglia:
+
+ # how often to report to ganglia metrics (in seconds)
+ reportInterval: {{ganglia_report_interval}}
+
+ # the hostname of the gmond server where storm cluster metrics will be sent
+ host: {{ganglia_server}}
+ port: {{ganglia_port}}
+
+ # address mode
+ # default is MULTICAST
+ addressMode: "UNICAST"
+
+ # an <IP>:<HOSTNAME> pair to spoof
+ # this allows us to simulate storm cluster metrics coming from a specific host
+ #spoof: "192.168.1.1:storm"
+{% endif %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/package/templates/storm_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/templates/storm_jaas.conf.j2 b/app-packages/storm/package/templates/storm_jaas.conf.j2
new file mode 100644
index 0000000..4031d22
--- /dev/null
+++ b/app-packages/storm/package/templates/storm_jaas.conf.j2
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+Client {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="{{storm_keytab_path}}"
+ storeKey=true
+ useTicketCache=false
+ serviceName="zookeeper"
+ principal="{{storm_jaas_principal}}";
+};
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/resources.json
----------------------------------------------------------------------
diff --git a/app-packages/storm/resources.json b/app-packages/storm/resources.json
new file mode 100644
index 0000000..b184a40
--- /dev/null
+++ b/app-packages/storm/resources.json
@@ -0,0 +1,31 @@
+{
+ "schema" : "http://example.org/specification/v2.0.0",
+ "metadata" : {
+ },
+ "global" : {
+ },
+ "components": {
+ "slider-appmaster": {
+ },
+ "NIMBUS": {
+ "yarn.role.priority": "1",
+ "yarn.component.instances": "1"
+ },
+ "STORM_REST_API": {
+ "yarn.role.priority": "2",
+ "yarn.component.instances": "1"
+ },
+ "STORM_UI_SERVER": {
+ "yarn.role.priority": "3",
+ "yarn.component.instances": "1"
+ },
+ "DRPC_SERVER": {
+ "yarn.role.priority": "4",
+ "yarn.component.instances": "1"
+ },
+ "SUPERVISOR": {
+ "yarn.role.priority": "5",
+ "yarn.component.instances": "1"
+ }
+ }
+}
\ No newline at end of file
[2/2] git commit: SLIDER-181. Storm App Package (minor config changes
and folder name changes)
Posted by sm...@apache.org.
SLIDER-181. Storm App Package (minor config changes and folder name changes)
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/32c7ea98
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/32c7ea98
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/32c7ea98
Branch: refs/heads/develop
Commit: 32c7ea98a8c790852f60fc9d24214f53b1ebd572
Parents: 6f677f6
Author: Sumit Mohanty <sm...@hortonworks.com>
Authored: Tue Jul 8 17:47:44 2014 -0700
Committer: Sumit Mohanty <sm...@hortonworks.com>
Committed: Tue Jul 8 17:47:44 2014 -0700
----------------------------------------------------------------------
app-packages/storm-v0_91/README.txt | 33 --
app-packages/storm-v0_91/appConfig.json | 125 ----
.../storm-v0_91/configuration/global.xml | 39 --
.../storm-v0_91/configuration/storm-site.xml | 587 -------------------
app-packages/storm-v0_91/ganglia_metrics.json | 31 -
app-packages/storm-v0_91/jmx_metrics.json | 31 -
app-packages/storm-v0_91/metainfo.xml | 145 -----
...pache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE | 16 -
.../storm-v0_91/package/scripts/drpc_server.py | 55 --
.../storm-v0_91/package/scripts/nimbus.py | 55 --
.../storm-v0_91/package/scripts/params.py | 58 --
.../storm-v0_91/package/scripts/rest_api.py | 57 --
.../storm-v0_91/package/scripts/service.py | 95 ---
.../package/scripts/status_params.py | 36 --
.../storm-v0_91/package/scripts/storm.py | 50 --
.../storm-v0_91/package/scripts/supervisor.py | 61 --
.../storm-v0_91/package/scripts/ui_server.py | 55 --
.../storm-v0_91/package/scripts/yaml_config.py | 69 ---
.../package/templates/config.yaml.j2 | 48 --
.../package/templates/storm_jaas.conf.j2 | 26 -
app-packages/storm-v0_91/resources.json | 31 -
app-packages/storm/README.txt | 37 ++
app-packages/storm/appConfig.json | 126 ++++
app-packages/storm/configuration/global.xml | 39 ++
app-packages/storm/configuration/storm-site.xml | 587 +++++++++++++++++++
app-packages/storm/ganglia_metrics.json | 31 +
app-packages/storm/jmx_metrics.json | 31 +
app-packages/storm/metainfo.xml | 145 +++++
...pache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE | 16 +
.../storm/package/scripts/drpc_server.py | 55 ++
app-packages/storm/package/scripts/nimbus.py | 55 ++
app-packages/storm/package/scripts/params.py | 58 ++
app-packages/storm/package/scripts/rest_api.py | 57 ++
app-packages/storm/package/scripts/service.py | 95 +++
.../storm/package/scripts/status_params.py | 36 ++
app-packages/storm/package/scripts/storm.py | 50 ++
.../storm/package/scripts/supervisor.py | 61 ++
app-packages/storm/package/scripts/ui_server.py | 55 ++
.../storm/package/scripts/yaml_config.py | 69 +++
.../storm/package/templates/config.yaml.j2 | 48 ++
.../storm/package/templates/storm_jaas.conf.j2 | 26 +
app-packages/storm/resources.json | 31 +
42 files changed, 1708 insertions(+), 1703 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/README.txt
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/README.txt b/app-packages/storm-v0_91/README.txt
deleted file mode 100644
index b547424..0000000
--- a/app-packages/storm-v0_91/README.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-<!---
- 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.
--->
-
-How to create a Slider package?
-
-Replace the placeholder tarball for Storm.
- cp ~/Downloads/apache-storm-0.9.1.2.1.1.0-237.tar.gz package/files/
- rm package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
-
-Create a zip package at the root of the package (<slider enlistment>/app-packages/storm-v0_91/)
- zip -r storm_v091.zip .
-
-Verify the content using
- unzip -l "$@" storm_v091.zip
-
-While appConfig.json and resources.json are not required for the package they work
-well as the default configuration for Slider apps. So its advisable that when you
-create an application package for Slider, include sample/default resources.json and
-appConfig.json for a minimal Yarn cluster.
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/appConfig.json
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/appConfig.json b/app-packages/storm-v0_91/appConfig.json
deleted file mode 100644
index 7ccf412..0000000
--- a/app-packages/storm-v0_91/appConfig.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
- "schema": "http://example.org/specification/v2.0.0",
- "metadata": {
- },
- "global": {
- "application.def": "/slider/storm_v091.zip",
- "config_types": "storm-site",
- "java_home": "/usr/jdk64/jdk1.7.0_45",
- "package_list": "files/apache-storm-0.9.1.2.1.1.0-237.tar.gz",
- "site.global.app_user": "yarn",
- "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237",
- "site.global.user_group": "hadoop",
- "site.global.security_enabled": "false",
- "site.global.ganglia_server_host": "${NN_HOST}",
- "site.global.ganglia_server_id": "Application2",
- "site.global.ganglia_enabled":"true",
- "site.global.ganglia_server_port": "8668",
- "site.global.rest_api_port": "${STORM_REST_API.ALLOCATED_PORT}",
- "site.global.rest_api_admin_port": "${STORM_REST_API.ALLOCATED_PORT}",
- "site.storm-site.topology.tuple.serializer": "backtype.storm.serialization.types.ListDelegateSerializer",
- "site.storm-site.topology.workers": "1",
- "site.storm-site.drpc.worker.threads": "64",
- "site.storm-site.storm.zookeeper.servers": "['${ZK_HOST}']",
- "site.storm-site.supervisor.heartbeat.frequency.secs": "5",
- "site.storm-site.topology.executor.send.buffer.size": "1024",
- "site.storm-site.drpc.childopts": "-Xmx768m",
- "site.storm-site.nimbus.thrift.port": "${NIMBUS.ALLOCATED_PORT}",
- "site.storm-site.storm.zookeeper.retry.intervalceiling.millis": "30000",
- "site.storm-site.storm.local.dir": "${AGENT_WORK_ROOT}/app/tmp/storm",
- "site.storm-site.topology.receiver.buffer.size": "8",
- "site.storm-site.storm.messaging.netty.client_worker_threads": "1",
- "site.storm-site.transactional.zookeeper.root": "/transactional",
- "site.storm-site.drpc.request.timeout.secs": "600",
- "site.storm-site.topology.skip.missing.kryo.registrations": "false",
- "site.storm-site.worker.heartbeat.frequency.secs": "1",
- "site.storm-site.zmq.hwm": "0",
- "site.storm-site.storm.zookeeper.connection.timeout": "15000",
- "site.storm-site.topology.max.error.report.per.interval": "5",
- "site.storm-site.storm.messaging.netty.server_worker_threads": "1",
- "site.storm-site.supervisor.worker.start.timeout.secs": "120",
- "site.storm-site.zmq.threads": "1",
- "site.storm-site.topology.acker.executors": "null",
- "site.storm-site.storm.local.mode.zmq": "false",
- "site.storm-site.topology.max.task.parallelism": "null",
- "site.storm-site.storm.zookeeper.port": "2181",
- "site.storm-site.nimbus.childopts": "-Xmx1024m -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM",
- "site.storm-site.worker.childopts": "-Xmx768m -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM",
- "site.storm-site.drpc.queue.size": "128",
- "site.storm-site.storm.zookeeper.retry.times": "5",
- "site.storm-site.nimbus.monitor.freq.secs": "10",
- "site.storm-site.storm.cluster.mode": "distributed",
- "site.storm-site.dev.zookeeper.path": "${AGENT_WORK_ROOT}/app/tmp/dev-storm-zookeeper",
- "site.storm-site.drpc.invocations.port": "0",
- "site.storm-site.storm.zookeeper.root": "/storm",
- "site.storm-site.logviewer.childopts": "-Xmx128m",
- "site.storm-site.transactional.zookeeper.port": "null",
- "site.storm-site.topology.worker.childopts": "null",
- "site.storm-site.topology.max.spout.pending": "null",
- "site.storm-site.nimbus.cleanup.inbox.freq.secs": "600",
- "site.storm-site.storm.messaging.netty.min_wait_ms": "100",
- "site.storm-site.nimbus.task.timeout.secs": "30",
- "site.storm-site.nimbus.thrift.max_buffer_size": "1048576",
- "site.storm-site.topology.sleep.spout.wait.strategy.time.ms": "1",
- "site.storm-site.topology.optimize": "true",
- "site.storm-site.nimbus.reassign": "true",
- "site.storm-site.storm.messaging.transport": "backtype.storm.messaging.netty.Context",
- "site.storm-site.logviewer.appender.name": "A1",
- "site.storm-site.nimbus.host": "${NIMBUS_HOST}",
- "site.storm-site.ui.port": "${STORM_UI_SERVER.ALLOCATED_PORT}",
- "site.storm-site.supervisor.slots.ports": "[0, 0]",
- "site.storm-site.nimbus.file.copy.expiration.secs": "600",
- "site.storm-site.supervisor.monitor.frequency.secs": "3",
- "site.storm-site.transactional.zookeeper.servers": "null",
- "site.storm-site.zmq.linger.millis": "5000",
- "site.storm-site.topology.error.throttle.interval.secs": "10",
- "site.storm-site.topology.worker.shared.thread.pool.size": "4",
- "site.storm-site.java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib",
- "site.storm-site.topology.spout.wait.strategy": "backtype.storm.spout.SleepSpoutWaitStrategy",
- "site.storm-site.task.heartbeat.frequency.secs": "3",
- "site.storm-site.topology.transfer.buffer.size": "1024",
- "site.storm-site.storm.zookeeper.session.timeout": "20000",
- "site.storm-site.topology.executor.receive.buffer.size": "1024",
- "site.storm-site.topology.stats.sample.rate": "0.05",
- "site.storm-site.topology.fall.back.on.java.serialization": "true",
- "site.storm-site.supervisor.childopts": "-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=0 -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM",
- "site.storm-site.topology.enable.message.timeouts": "true",
- "site.storm-site.storm.messaging.netty.max_wait_ms": "1000",
- "site.storm-site.nimbus.topology.validator": "backtype.storm.nimbus.DefaultTopologyValidator",
- "site.storm-site.nimbus.supervisor.timeout.secs": "60",
- "site.storm-site.topology.disruptor.wait.strategy": "com.lmax.disruptor.BlockingWaitStrategy",
- "site.storm-site.nimbus.inbox.jar.expiration.secs": "3600",
- "site.storm-site.drpc.port": "0",
- "site.storm-site.topology.kryo.factory": "backtype.storm.serialization.DefaultKryoFactory",
- "site.storm-site.storm.zookeeper.retry.interval": "1000",
- "site.storm-site.storm.messaging.netty.max_retries": "30",
- "site.storm-site.topology.tick.tuple.freq.secs": "null",
- "site.storm-site.supervisor.enable": "true",
- "site.storm-site.nimbus.task.launch.secs": "120",
- "site.storm-site.task.refresh.poll.secs": "10",
- "site.storm-site.topology.message.timeout.secs": "30",
- "site.storm-site.storm.messaging.netty.buffer_size": "5242880",
- "site.storm-site.topology.state.synchronization.timeout.secs": "60",
- "site.storm-site.supervisor.worker.timeout.secs": "30",
- "site.storm-site.topology.trident.batch.emit.interval.millis": "500",
- "site.storm-site.topology.builtin.metrics.bucket.size.secs": "60",
- "site.storm-site.storm.thrift.transport": "backtype.storm.security.auth.SimpleTransportPlugin",
- "site.storm-site.logviewer.port": "0",
- "site.storm-site.topology.debug": "false"
- },
- "components": {
- "slider-appmaster": {
- "jvm.heapsize": "256M"
- },
- "NIMBUS": {
- },
- "STORM_REST_API": {
- },
- "STORM_UI_SERVER": {
- },
- "DRPC_SERVER": {
- },
- "SUPERVISOR": {
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/configuration/global.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/configuration/global.xml b/app-packages/storm-v0_91/configuration/global.xml
deleted file mode 100644
index 5cc9170..0000000
--- a/app-packages/storm-v0_91/configuration/global.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-
-<configuration>
- <property>
- <name>storm_user</name>
- <value>storm</value>
- <description></description>
- </property>
- <property>
- <name>storm_log_dir</name>
- <value>/var/log/storm</value>
- <description></description>
- </property>
- <property>
- <name>storm_pid_dir</name>
- <value>/var/run/storm</value>
- <description></description>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/configuration/storm-site.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/configuration/storm-site.xml b/app-packages/storm-v0_91/configuration/storm-site.xml
deleted file mode 100644
index 6eca8f9..0000000
--- a/app-packages/storm-v0_91/configuration/storm-site.xml
+++ /dev/null
@@ -1,587 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-
-<configuration>
- <property>
- <name>java.library.path</name>
- <value>/usr/local/lib:/opt/local/lib:/usr/lib</value>
- <description>This value is passed to spawned JVMs (e.g., Nimbus, Supervisor, and Workers)
- for the java.library.path value. java.library.path tells the JVM where
- to look for native libraries. It is necessary to set this config correctly since
- Storm uses the ZeroMQ and JZMQ native libs. </description>
- </property>
- <property>
- <name>storm.local.dir</name>
- <value>/hadoop/storm</value>
- <description>A directory on the local filesystem used by Storm for any local
- filesystem usage it needs. The directory must exist and the Storm daemons must
- have permission to read/write from this location.</description>
- </property>
- <property>
- <name>storm.zookeeper.servers</name>
- <value>['localhost']</value>
- <description>A list of hosts of ZooKeeper servers used to manage the cluster.</description>
- </property>
- <property>
- <name>storm.zookeeper.port</name>
- <value>2181</value>
- <description>The port Storm will use to connect to each of the ZooKeeper servers.</description>
- </property>
- <property>
- <name>storm.zookeeper.root</name>
- <value>/storm</value>
- <description>The root location at which Storm stores data in ZooKeeper.</description>
- </property>
- <property>
- <name>storm.zookeeper.session.timeout</name>
- <value>20000</value>
- <description>The session timeout for clients to ZooKeeper.</description>
- </property>
- <property>
- <name>storm.zookeeper.connection.timeout</name>
- <value>15000</value>
- <description>The connection timeout for clients to ZooKeeper.</description>
- </property>
- <property>
- <name>storm.zookeeper.retry.times</name>
- <value>5</value>
- <description>The number of times to retry a Zookeeper operation.</description>
- </property>
- <property>
- <name>storm.zookeeper.retry.interval</name>
- <value>1000</value>
- <description>The interval between retries of a Zookeeper operation.</description>
- </property>
- <property>
- <name>storm.zookeeper.retry.intervalceiling.millis</name>
- <value>30000</value>
- <description>The ceiling of the interval between retries of a Zookeeper operation.</description>
- </property>
- <property>
- <name>storm.cluster.mode</name>
- <value>distributed</value>
- <description>The mode this Storm cluster is running in. Either "distributed" or "local".</description>
- </property>
- <property>
- <name>storm.local.mode.zmq</name>
- <value>false</value>
- <description>Whether or not to use ZeroMQ for messaging in local mode. If this is set
- to false, then Storm will use a pure-Java messaging system. The purpose
- of this flag is to make it easy to run Storm in local mode by eliminating
- the need for native dependencies, which can be difficult to install.
- </description>
- </property>
- <property>
- <name>storm.thrift.transport</name>
- <value>backtype.storm.security.auth.SimpleTransportPlugin</value>
- <description>The transport plug-in for Thrift client/server communication.</description>
- </property>
- <property>
- <name>storm.messaging.transport</name>
- <value>backtype.storm.messaging.netty.Context</value>
- <description>The transporter for communication among Storm tasks.</description>
- </property>
- <property>
- <name>nimbus.host</name>
- <value>localhost</value>
- <description>The host that the master server is running on.</description>
- </property>
- <property>
- <name>nimbus.thrift.port</name>
- <value>6627</value>
- <description> Which port the Thrift interface of Nimbus should run on. Clients should
- connect to this port to upload jars and submit topologies.</description>
- </property>
- <property>
- <name>nimbus.thrift.max_buffer_size</name>
- <value>1048576</value>
- <description>The maximum buffer size thrift should use when reading messages.</description>
- </property>
- <property>
- <name>nimbus.childopts</name>
- <value>-Xmx1024m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
- <description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
- </property>
- <property>
- <name>nimbus.task.timeout.secs</name>
- <value>30</value>
- <description>How long without heartbeating a task can go before nimbus will consider the task dead and reassign it to another location.</description>
- </property>
- <property>
- <name>nimbus.supervisor.timeout.secs</name>
- <value>60</value>
- <description>How long before a supervisor can go without heartbeating before nimbus considers it dead and stops assigning new work to it.</description>
- </property>
- <property>
- <name>nimbus.monitor.freq.secs</name>
- <value>10</value>
- <description>
- How often nimbus should wake up to check heartbeats and do reassignments. Note
- that if a machine ever goes down Nimbus will immediately wake up and take action.
- This parameter is for checking for failures when there's no explicit event like that occuring.
- </description>
- </property>
- <property>
- <name>nimbus.cleanup.inbox.freq.secs</name>
- <value>600</value>
- <description>How often nimbus should wake the cleanup thread to clean the inbox.</description>
- </property>
- <property>
- <name>nimbus.inbox.jar.expiration.secs</name>
- <value>3600</value>
- <description>
- The length of time a jar file lives in the inbox before being deleted by the cleanup thread.
-
- Probably keep this value greater than or equal to NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS.
- Note that the time it takes to delete an inbox jar file is going to be somewhat more than
- NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS (depending on how often NIMBUS_CLEANUP_FREQ_SECS is set to).
- </description>
- </property>
- <property>
- <name>nimbus.task.launch.secs</name>
- <value>120</value>
- <description>A special timeout used when a task is initially launched. During launch, this is the timeout
- used until the first heartbeat, overriding nimbus.task.timeout.secs.</description>
- </property>
- <property>
- <name>nimbus.reassign</name>
- <value>true</value>
- <description>Whether or not nimbus should reassign tasks if it detects that a task goes down.
- Defaults to true, and it's not recommended to change this value.</description>
- </property>
- <property>
- <name>nimbus.file.copy.expiration.secs</name>
- <value>600</value>
- <description>During upload/download with the master, how long an upload or download connection is idle
- before nimbus considers it dead and drops the connection.</description>
- </property>
- <property>
- <name>nimbus.topology.validator</name>
- <value>backtype.storm.nimbus.DefaultTopologyValidator</value>
- <description>A custom class that implements ITopologyValidator that is run whenever a
- topology is submitted. Can be used to provide business-specific logic for
- whether topologies are allowed to run or not.</description>
- </property>
- <property>
- <name>ui.port</name>
- <value>8744</value>
- <description>Storm UI binds to this port.</description>
- </property>
- <property>
- <name>ui.childopts</name>
- <value>-Xmx768m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf</value>
- <description>Childopts for Storm UI Java process.</description>
- </property>
- <property>
- <name>logviewer.port</name>
- <value>8000</value>
- <description>HTTP UI port for log viewer.</description>
- </property>
- <property>
- <name>logviewer.childopts</name>
- <value>-Xmx128m</value>
- <description>Childopts for log viewer java process.</description>
- </property>
- <property>
- <name>logviewer.appender.name</name>
- <value>A1</value>
- <description>Appender name used by log viewer to determine log directory.</description>
- </property>
- <property>
- <name>drpc.port</name>
- <value>3772</value>
- <description>This port is used by Storm DRPC for receiving DPRC requests from clients.</description>
- </property>
- <property>
- <name>drpc.worker.threads</name>
- <value>64</value>
- <description>DRPC thrift server worker threads.</description>
- </property>
- <property>
- <name>drpc.queue.size</name>
- <value>128</value>
- <description>DRPC thrift server queue size.</description>
- </property>
- <property>
- <name>drpc.invocations.port</name>
- <value>3773</value>
- <description>This port on Storm DRPC is used by DRPC topologies to receive function invocations and send results back.</description>
- </property>
- <property>
- <name>drpc.request.timeout.secs</name>
- <value>600</value>
- <description>The timeout on DRPC requests within the DRPC server. Defaults to 10 minutes. Note that requests can also
- timeout based on the socket timeout on the DRPC client, and separately based on the topology message
- timeout for the topology implementing the DRPC function.</description>
- </property>
- <property>
- <name>drpc.childopts</name>
- <value>-Xmx768m</value>
- <description>Childopts for Storm DRPC Java process.</description>
- </property>
- <property>
- <name>transactional.zookeeper.root</name>
- <value>/transactional</value>
- <description>The root directory in ZooKeeper for metadata about TransactionalSpouts.</description>
- </property>
- <property>
- <name>transactional.zookeeper.servers</name>
- <value>null</value>
- <description>The list of zookeeper servers in which to keep the transactional state. If null (which is default),
- will use storm.zookeeper.servers</description>
- </property>
- <property>
- <name>transactional.zookeeper.port</name>
- <value>null</value>
- <description>The port to use to connect to the transactional zookeeper servers. If null (which is default),
- will use storm.zookeeper.port</description>
- </property>
- <property>
- <name>supervisor.slots.ports</name>
- <value>[6700, 6701]</value>
- <description>A list of ports that can run workers on this supervisor. Each worker uses one port, and
- the supervisor will only run one worker per port. Use this configuration to tune
- how many workers run on each machine.</description>
- </property>
- <property>
- <name>supervisor.childopts</name>
- <value>-Xmx256m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
- <description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
- </property>
- <property>
- <name>supervisor.worker.start.timeout.secs</name>
- <value>120</value>
- <description>How long a worker can go without heartbeating during the initial launch before
- the supervisor tries to restart the worker process. This value override
- supervisor.worker.timeout.secs during launch because there is additional
- overhead to starting and configuring the JVM on launch.</description>
- </property>
- <property>
- <name>supervisor.worker.timeout.secs</name>
- <value>30</value>
- <description>How long a worker can go without heartbeating before the supervisor tries to restart the worker process.</description>
- </property>
- <property>
- <name>supervisor.monitor.frequency.secs</name>
- <value>3</value>
- <description>How often the supervisor checks the worker heartbeats to see if any of them need to be restarted.</description>
- </property>
- <property>
- <name>supervisor.heartbeat.frequency.secs</name>
- <value>5</value>
- <description>How often the supervisor sends a heartbeat to the master.</description>
- </property>
- <property>
- <name>supervisor.enable</name>
- <value>true</value>
- <description>Whether or not the supervisor should launch workers assigned to it. Defaults
- to true -- and you should probably never change this value. This configuration
- is used in the Storm unit tests.</description>
- </property>
- <property>
- <name>worker.childopts</name>
- <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
- <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
- </property>
- <property>
- <name>worker.heartbeat.frequency.secs</name>
- <value>1</value>
- <description>How often this worker should heartbeat to the supervisor.</description>
- </property>
- <property>
- <name>task.heartbeat.frequency.secs</name>
- <value>3</value>
- <description>How often a task should heartbeat its status to the master.</description>
- </property>
- <property>
- <name>task.refresh.poll.secs</name>
- <value>10</value>
- <description>How often a task should sync its connections with other tasks (if a task is
- reassigned, the other tasks sending messages to it need to refresh their connections).
- In general though, when a reassignment happens other tasks will be notified
- almost immediately. This configuration is here just in case that notification doesn't
- come through.</description>
- </property>
- <property>
- <name>zmq.threads</name>
- <value>1</value>
- <description>The number of threads that should be used by the zeromq context in each worker process.</description>
- </property>
- <property>
- <name>zmq.linger.millis</name>
- <value>5000</value>
- <description>How long a connection should retry sending messages to a target host when
- the connection is closed. This is an advanced configuration and can almost
- certainly be ignored.</description>
- </property>
- <property>
- <name>zmq.hwm</name>
- <value>0</value>
- <description>The high water for the ZeroMQ push sockets used for networking. Use this config to prevent buffer explosion
- on the networking layer.</description>
- </property>
- <property>
- <name>storm.messaging.netty.server_worker_threads</name>
- <value>1</value>
- <description>Netty based messaging: The # of worker threads for the server.</description>
- </property>
- <property>
- <name>storm.messaging.netty.client_worker_threads</name>
- <value>1</value>
- <description>Netty based messaging: The # of worker threads for the client.</description>
- </property>
- <property>
- <name>storm.messaging.netty.buffer_size</name>
- <value>5242880</value>
- <description>Netty based messaging: The buffer size for send/recv buffer.</description>
- </property>
- <property>
- <name>storm.messaging.netty.max_retries</name>
- <value>30</value>
- <description>Netty based messaging: The max # of retries that a peer will perform when a remote is not accessible.</description>
- </property>
- <property>
- <name>storm.messaging.netty.max_wait_ms</name>
- <value>1000</value>
- <description>Netty based messaging: The max # of milliseconds that a peer will wait.</description>
- </property>
- <property>
- <name>storm.messaging.netty.min_wait_ms</name>
- <value>100</value>
- <description>Netty based messaging: The min # of milliseconds that a peer will wait.</description>
- </property>
- <property>
- <name>topology.enable.message.timeouts</name>
- <value>true</value>
- <description>True if Storm should timeout messages or not. Defaults to true. This is meant to be used
- in unit tests to prevent tuples from being accidentally timed out during the test.</description>
- </property>
- <property>
- <name>topology.debug</name>
- <value>false</value>
- <description>When set to true, Storm will log every message that's emitted.</description>
- </property>
- <property>
- <name>topology.optimize</name>
- <value>true</value>
- <description>Whether or not the master should optimize topologies by running multiple tasks in a single thread where appropriate.</description>
- </property>
- <property>
- <name>topology.workers</name>
- <value>1</value>
- <description>How many processes should be spawned around the cluster to execute this
- topology. Each process will execute some number of tasks as threads within
- them. This parameter should be used in conjunction with the parallelism hints
- on each component in the topology to tune the performance of a topology.</description>
- </property>
- <property>
- <name>topology.acker.executors</name>
- <value>null</value>
- <description>How many executors to spawn for ackers.
-
- If this is set to 0, then Storm will immediately ack tuples as soon
- as they come off the spout, effectively disabling reliability.
- </description>
- </property>
- <property>
- <name>topology.message.timeout.secs</name>
- <value>30</value>
- <description>The maximum amount of time given to the topology to fully process a message
- emitted by a spout. If the message is not acked within this time frame, Storm
- will fail the message on the spout. Some spouts implementations will then replay
- the message at a later time.</description>
- </property>
- <property>
- <name>topology.skip.missing.kryo.registrations</name>
- <value>false</value>
- <description> Whether or not Storm should skip the loading of kryo registrations for which it
- does not know the class or have the serializer implementation. Otherwise, the task will
- fail to load and will throw an error at runtime. The use case of this is if you want to
- declare your serializations on the storm.yaml files on the cluster rather than every single
- time you submit a topology. Different applications may use different serializations and so
- a single application may not have the code for the other serializers used by other apps.
- By setting this config to true, Storm will ignore that it doesn't have those other serializations
- rather than throw an error.</description>
- </property>
- <property>
- <name>topology.max.task.parallelism</name>
- <value>null</value>
- <description>The maximum parallelism allowed for a component in this topology. This configuration is
- typically used in testing to limit the number of threads spawned in local mode.</description>
- </property>
- <property>
- <name>topology.max.spout.pending</name>
- <value>null</value>
- <description>The maximum number of tuples that can be pending on a spout task at any given time.
- This config applies to individual tasks, not to spouts or topologies as a whole.
-
- A pending tuple is one that has been emitted from a spout but has not been acked or failed yet.
- Note that this config parameter has no effect for unreliable spouts that don't tag
- their tuples with a message id.</description>
- </property>
- <property>
- <name>topology.state.synchronization.timeout.secs</name>
- <value>60</value>
- <description>The maximum amount of time a component gives a source of state to synchronize before it requests
- synchronization again.</description>
- </property>
- <property>
- <name>topology.stats.sample.rate</name>
- <value>0.05</value>
- <description>The percentage of tuples to sample to produce stats for a task.</description>
- </property>
- <property>
- <name>topology.builtin.metrics.bucket.size.secs</name>
- <value>60</value>
- <description>The time period that builtin metrics data in bucketed into.</description>
- </property>
- <property>
- <name>topology.fall.back.on.java.serialization</name>
- <value>true</value>
- <description>Whether or not to use Java serialization in a topology.</description>
- </property>
- <property>
- <name>topology.worker.childopts</name>
- <value>null</value>
- <description>Topology-specific options for the worker child process. This is used in addition to WORKER_CHILDOPTS.</description>
- </property>
- <property>
- <name>topology.executor.receive.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor receive queue for each executor. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.executor.send.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.receiver.buffer.size</name>
- <value>8</value>
- <description>The maximum number of messages to batch from the thread receiving off the network to the
- executor queues. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.transfer.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor transfer queue for each worker.</description>
- </property>
- <property>
- <name>topology.tick.tuple.freq.secs</name>
- <value>null</value>
- <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
- to tasks. Meant to be used as a component-specific configuration.</description>
- </property>
- <property>
- <name>topology.worker.shared.thread.pool.size</name>
- <value>4</value>
- <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
- via the TopologyContext.</description>
- </property>
- <property>
- <name>topology.disruptor.wait.strategy</name>
- <value>com.lmax.disruptor.BlockingWaitStrategy</value>
- <description>Configure the wait strategy used for internal queuing. Can be used to tradeoff latency
- vs. throughput.</description>
- </property>
- <property>
- <name>topology.executor.send.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.receiver.buffer.size</name>
- <value>8</value>
- <description>The maximum number of messages to batch from the thread receiving off the network to the
- executor queues. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.transfer.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor transfer queue for each worker.</description>
- </property>
- <property>
- <name>topology.tick.tuple.freq.secs</name>
- <value>null</value>
- <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
- to tasks. Meant to be used as a component-specific configuration.</description>
- </property>
- <property>
- <name>topology.worker.shared.thread.pool.size</name>
- <value>4</value>
- <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
- via the TopologyContext.</description>
- </property>
- <property>
- <name>topology.spout.wait.strategy</name>
- <value>backtype.storm.spout.SleepSpoutWaitStrategy</value>
- <description>A class that implements a strategy for what to do when a spout needs to wait. Waiting is
- triggered in one of two conditions:
-
- 1. nextTuple emits no tuples
- 2. The spout has hit maxSpoutPending and can't emit any more tuples</description>
- </property>
- <property>
- <name>topology.sleep.spout.wait.strategy.time.ms</name>
- <value>1</value>
- <description>The amount of milliseconds the SleepEmptyEmitStrategy should sleep for.</description>
- </property>
- <property>
- <name>topology.error.throttle.interval.secs</name>
- <value>10</value>
- <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
- an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
- reported to Zookeeper per task for every 10 second interval of time.</description>
- </property>
- <property>
- <name>topology.max.error.report.per.interval</name>
- <value>5</value>
- <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
- an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
- reported to Zookeeper per task for every 10 second interval of time.</description>
- </property>
- <property>
- <name>topology.kryo.factory</name>
- <value>backtype.storm.serialization.DefaultKryoFactory</value>
- <description>Class that specifies how to create a Kryo instance for serialization. Storm will then apply
- topology.kryo.register and topology.kryo.decorators on top of this. The default implementation
- implements topology.fall.back.on.java.serialization and turns references off.</description>
- </property>
- <property>
- <name>topology.tuple.serializer</name>
- <value>backtype.storm.serialization.types.ListDelegateSerializer</value>
- <description>The serializer class for ListDelegate (tuple payload).
- The default serializer will be ListDelegateSerializer</description>
- </property>
- <property>
- <name>topology.trident.batch.emit.interval.millis</name>
- <value>500</value>
- <description>How often a batch can be emitted in a Trident topology.</description>
- </property>
- <property>
- <name>dev.zookeeper.path</name>
- <value>/tmp/dev-storm-zookeeper</value>
- <description>The path to use as the zookeeper dir when running a zookeeper server via
- "storm dev-zookeeper". This zookeeper instance is only intended for development;
- it is not a production grade zookeeper setup.</description>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/ganglia_metrics.json
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/ganglia_metrics.json b/app-packages/storm-v0_91/ganglia_metrics.json
deleted file mode 100644
index 861c4fa..0000000
--- a/app-packages/storm-v0_91/ganglia_metrics.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "Component": {
- "NIMBUS": {
- "totalslots": {
- "metric": "Total Slots",
- "pointInTime": false,
- "temporal": true
- },
- "totalexecutors": {
- "metric": "Total Executors",
- "pointInTime": false,
- "temporal": true
- },
- "topologies": {
- "metric": "Topologies",
- "pointInTime": false,
- "temporal": true
- },
- "totaltasks": {
- "metric": "Total Tasks",
- "pointInTime": false,
- "temporal": true
- },
- "usedslots": {
- "metric": "Used Slots",
- "pointInTime": false,
- "temporal": true
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/jmx_metrics.json
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/jmx_metrics.json b/app-packages/storm-v0_91/jmx_metrics.json
deleted file mode 100644
index f7d4e60..0000000
--- a/app-packages/storm-v0_91/jmx_metrics.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "Component": {
- "NIMBUS": {
- "FreeSlots": {
- "metric": "$['slots.free']",
- "pointInTime": true,
- "temporal": false
- },
- "Tasks": {
- "metric": "$['tasks.total']",
- "pointInTime": true,
- "temporal": false
- },
- "Executors": {
- "metric": "$['executors.total']",
- "pointInTime": true,
- "temporal": false
- },
- "Topologies": {
- "metric": "$['topologies']",
- "pointInTime": true,
- "temporal": false
- },
- "NimbusUptime": {
- "metric": "$['nimbus.uptime']",
- "pointInTime": true,
- "temporal": false
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/metainfo.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/metainfo.xml b/app-packages/storm-v0_91/metainfo.xml
deleted file mode 100644
index 7edd794..0000000
--- a/app-packages/storm-v0_91/metainfo.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0"?>
-<!--
- 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.
--->
-
-<metainfo>
- <schemaVersion>2.0</schemaVersion>
- <application>
- <name>STORM</name>
- <comment>Apache Hadoop Stream processing framework</comment>
- <version>0.9.1.2.1</version>
-
- <exportGroups>
- <exportGroup>
- <name>QuickLinks</name>
- <exports>
- <export>
- <name>org.apache.slider.jmx</name>
- <value>http://${STORM_REST_API_HOST}:${site.global.rest_api_port}/api/cluster/summary</value>
- </export>
- <export>
- <name>org.apache.slider.monitor</name>
- <value>http://${STORM_UI_SERVER_HOST}:${site.storm-site.ui.port}</value>
- </export>
- <export>
- <name>org.apache.slider.metrics</name>
- <value>http://${site.global.ganglia_server_host}/cgi-bin/rrd.py?c=${site.global.ganglia_server_id}</value>
- </export>
- <export>
- <name>org.apache.slider.ganglia</name>
- <value>http://${site.global.ganglia_server_host}/ganglia?c=${site.global.ganglia_server_id}</value>
- </export>
- </exports>
- </exportGroup>
- </exportGroups>
-
- <commandOrders>
- <commandOrder>
- <command>NIMBUS-START</command>
- <requires>SUPERVISOR-INSTALLED,STORM_UI_SERVER-INSTALLED,DRPC_SERVER-INSTALLED,STORM_REST_API-INSTALLED
- </requires>
- </commandOrder>
- <commandOrder>
- <command>SUPERVISOR-START</command>
- <requires>NIMBUS-STARTED</requires>
- </commandOrder>
- <commandOrder>
- <command>DRPC_SERVER-START</command>
- <requires>NIMBUS-STARTED</requires>
- </commandOrder>
- <commandOrder>
- <command>STORM_REST_API-START</command>
- <requires>NIMBUS-STARTED,DRPC_SERVER-STARTED,STORM_UI_SERVER-STARTED</requires>
- </commandOrder>
- <commandOrder>
- <command>STORM_UI_SERVER-START</command>
- <requires>NIMBUS-STARTED</requires>
- </commandOrder>
- </commandOrders>
-
- <components>
-
- <component>
- <name>NIMBUS</name>
- <category>MASTER</category>
- <commandScript>
- <script>scripts/nimbus.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>STORM_REST_API</name>
- <category>MASTER</category>
- <commandScript>
- <script>scripts/rest_api.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>SUPERVISOR</name>
- <category>SLAVE</category>
- <commandScript>
- <script>scripts/supervisor.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>STORM_UI_SERVER</name>
- <category>MASTER</category>
- <publishConfig>true</publishConfig>
- <commandScript>
- <script>scripts/ui_server.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>DRPC_SERVER</name>
- <category>MASTER</category>
- <commandScript>
- <script>scripts/drpc_server.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
- </components>
-
- <osSpecifics>
- <osSpecific>
- <osType>any</osType>
- <packages>
- <package>
- <type>tarball</type>
- <name>files/apache-storm-0.9.1.2.1.1.0-237.tar.gz</name>
- </package>
- </packages>
- </osSpecific>
- </osSpecifics>
-
- <configuration-dependencies>
- <config-type>storm-site</config-type>
- <config-type>global</config-type>
- </configuration-dependencies>
- </application>
-</metainfo>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE b/app-packages/storm-v0_91/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
deleted file mode 100644
index dd934d5..0000000
--- a/app-packages/storm-v0_91/package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
+++ /dev/null
@@ -1,16 +0,0 @@
-# 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.
-
-Replace with the actual storm package.
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/drpc_server.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/drpc_server.py b/app-packages/storm-v0_91/package/scripts/drpc_server.py
deleted file mode 100644
index a01d0f0..0000000
--- a/app-packages/storm-v0_91/package/scripts/drpc_server.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-
-class DrpcServer(Script):
- def install(self, env):
- self.install_packages(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("drpc", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("drpc", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_drpc)
-
-if __name__ == "__main__":
- DrpcServer().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/nimbus.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/nimbus.py b/app-packages/storm-v0_91/package/scripts/nimbus.py
deleted file mode 100644
index c7c3120..0000000
--- a/app-packages/storm-v0_91/package/scripts/nimbus.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-
-class Nimbus(Script):
- def install(self, env):
- self.install_packages(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("nimbus", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("nimbus", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_nimbus)
-
-if __name__ == "__main__":
- Nimbus().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/params.py b/app-packages/storm-v0_91/package/scripts/params.py
deleted file mode 100644
index cf21b27..0000000
--- a/app-packages/storm-v0_91/package/scripts/params.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-from resource_management import *
-import status_params
-
-# server configurations
-config = Script.get_config()
-
-app_root = config['configurations']['global']['app_root']
-conf_dir = format("{app_root}/conf")
-storm_user = config['configurations']['global']['app_user']
-log_dir = config['configurations']['global']['app_log_dir']
-pid_dir = status_params.pid_dir
-local_dir = config['configurations']['storm-site']['storm.local.dir']
-user_group = config['configurations']['global']['user_group']
-java64_home = config['hostLevelParams']['java_home']
-nimbus_host = config['configurations']['storm-site']['nimbus.host']
-nimbus_port = config['configurations']['storm-site']['nimbus.thrift.port']
-nimbus_host = config['configurations']['storm-site']['nimbus.host']
-rest_api_port = config['configurations']['global']['rest_api_port']
-rest_api_admin_port = config['configurations']['global']['rest_api_admin_port']
-rest_api_conf_file = format("{conf_dir}/config.yaml")
-rest_lib_dir = format("{app_root}/contrib/storm-rest")
-storm_bin = format("{app_root}/bin/storm")
-
-ganglia_installed = config['configurations']['global']['ganglia_enabled']
-if ganglia_installed:
- ganglia_report_interval = 60
- ganglia_server = config['configurations']['global']['ganglia_server_host']
- ganglia_port = config['configurations']['global']['ganglia_server_port']
-
-_authentication = config['configurations']['core-site']['hadoop.security.authentication']
-security_enabled = ( not is_empty(_authentication) and _authentication == 'kerberos')
-
-if security_enabled:
- _hostname_lowercase = config['hostname'].lower()
- _kerberos_domain = config['configurations']['global']['kerberos_domain']
- _storm_principal_name = config['configurations']['global']['storm_principal_name']
- storm_jaas_principal = _storm_principal_name.replace('_HOST', _hostname_lowercase)
- storm_keytab_path = config['configurations']['global']['storm_keytab']
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/rest_api.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/rest_api.py b/app-packages/storm-v0_91/package/scripts/rest_api.py
deleted file mode 100644
index 33d8924..0000000
--- a/app-packages/storm-v0_91/package/scripts/rest_api.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-
-
-class StormRestApi(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("rest_api", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("rest_api", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_rest_api)
-
-if __name__ == "__main__":
- StormRestApi().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/service.py b/app-packages/storm-v0_91/package/scripts/service.py
deleted file mode 100644
index 10fa5b9..0000000
--- a/app-packages/storm-v0_91/package/scripts/service.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-
-from resource_management import *
-import time
-
-
-def service(
- name,
- action='start'):
- import params
- import status_params
-
- pid_file = status_params.pid_files[name]
- no_op_test = format("ls {pid_file} >/dev/null 2>&1 && ps `cat {pid_file}` >/dev/null 2>&1")
- jps_path = format("{java64_home}/bin/jps")
- grep_and_awk = "| grep -v grep | awk '{print $1}'"
-
- if name == 'ui':
- #process_cmd = "^java.+backtype.storm.ui.core$"
- pid_chk_cmd = format("{jps_path} -vl | grep \"^[0-9 ]*backtype.storm.ui.core\" {grep_and_awk} > {pid_file}")
- elif name == "rest_api":
- process_cmd = format("{java64_home}/bin/java -jar {rest_lib_dir}/`ls {rest_lib_dir} | grep -wE storm-rest-[0-9.-]+\.jar` server")
- crt_pid_cmd = format("pgrep -f \"{process_cmd}\" && pgrep -f \"{process_cmd}\" > {pid_file}")
- else:
- #process_cmd = format("^java.+backtype.storm.daemon.{name}$")
- pid_chk_cmd = format("{jps_path} -vl | grep \"^[0-9 ]*backtype.storm.daemon.{name}\" {grep_and_awk} > {pid_file}")
-
- if action == "start":
- if name == "rest_api":
- cmd = format("{process_cmd} {rest_api_conf_file} > {log_dir}/restapi.log")
- else:
- cmd = format("env JAVA_HOME={java64_home} PATH=$PATH:{java64_home}/bin STORM_BASE_DIR={app_root} STORM_CONF_DIR={conf_dir} {storm_bin} {name}")
-
- Execute(cmd,
- not_if=no_op_test,
- user=params.storm_user,
- logoutput=False,
- wait_for_finish=False
- )
-
- if name == "rest_api":
- Execute(crt_pid_cmd,
- user=params.storm_user,
- logoutput=True,
- tries=6,
- try_sleep=10
- )
- else:
- content = None
- for i in xrange(12):
- Execute(pid_chk_cmd,
- user=params.storm_user,
- logoutput=True
- )
- with open(pid_file) as f:
- content = f.readline().strip()
- if content.isdigit():
- break;
- File(pid_file, action = "delete")
- time.sleep(10)
- pass
-
- if not content.isdigit():
- raise Fail(format("Unable to start {name}"))
-
- elif action == "stop":
- process_dont_exist = format("! ({no_op_test})")
- pid = format("`cat {pid_file}` >/dev/null 2>&1")
- Execute(format("kill {pid}"),
- not_if=process_dont_exist
- )
- Execute(format("kill -9 {pid}"),
- not_if=format("sleep 2; {process_dont_exist} || sleep 20; {process_dont_exist}"),
- ignore_failures=True
- )
- Execute(format("rm -f {pid_file}"))
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/status_params.py b/app-packages/storm-v0_91/package/scripts/status_params.py
deleted file mode 100644
index eab83cf..0000000
--- a/app-packages/storm-v0_91/package/scripts/status_params.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-from resource_management import *
-
-config = Script.get_config()
-
-pid_dir = config['configurations']['global']['app_pid_dir']
-pid_nimbus = format("{pid_dir}/nimbus.pid")
-pid_supervisor = format("{pid_dir}/supervisor.pid")
-pid_drpc = format("{pid_dir}/drpc.pid")
-pid_ui = format("{pid_dir}/ui.pid")
-pid_logviewer = format("{pid_dir}/logviewer.pid")
-pid_rest_api = format("{pid_dir}/restapi.pid")
-pid_files = {"logviewer":pid_logviewer,
- "ui": pid_ui,
- "nimbus": pid_nimbus,
- "supervisor": pid_supervisor,
- "drpc": pid_drpc,
- "rest_api": pid_rest_api}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/storm.py b/app-packages/storm-v0_91/package/scripts/storm.py
deleted file mode 100644
index bce272b..0000000
--- a/app-packages/storm-v0_91/package/scripts/storm.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-from resource_management import *
-from yaml_config import yaml_config
-import sys
-
-def storm():
- import params
-
- Directory([params.log_dir, params.pid_dir, params.local_dir, params.conf_dir],
- owner=params.storm_user,
- group=params.user_group,
- recursive=True
- )
-
- File(format("{conf_dir}/config.yaml"),
- content=Template("config.yaml.j2"),
- owner = params.storm_user,
- group = params.user_group
- )
-
- yaml_config( "storm.yaml",
- conf_dir = params.conf_dir,
- configurations = params.config['configurations']['storm-site'],
- owner = params.storm_user,
- group = params.user_group
- )
-
- if params.security_enabled:
- TemplateConfig( format("{conf_dir}/storm_jaas.conf"),
- owner = params.storm_user
- )
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/supervisor.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/supervisor.py b/app-packages/storm-v0_91/package/scripts/supervisor.py
deleted file mode 100644
index 47c20c9..0000000
--- a/app-packages/storm-v0_91/package/scripts/supervisor.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-import sys
-from resource_management import *
-from yaml_config import yaml_config
-from storm import storm
-from service import service
-
-
-class Supervisor(Script):
- def install(self, env):
- self.install_packages(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("supervisor", action="start")
- service("logviewer", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("supervisor", action="stop")
- service("logviewer", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
-
- check_process_status(status_params.pid_supervisor)
-
-
-if __name__ == "__main__":
- Supervisor().execute()
-
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/ui_server.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/ui_server.py b/app-packages/storm-v0_91/package/scripts/ui_server.py
deleted file mode 100644
index 0fe7cd2..0000000
--- a/app-packages/storm-v0_91/package/scripts/ui_server.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-
-class UiServer(Script):
- def install(self, env):
- self.install_packages(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("ui", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("ui", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_ui)
-
-if __name__ == "__main__":
- UiServer().execute()
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/scripts/yaml_config.py
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/scripts/yaml_config.py b/app-packages/storm-v0_91/package/scripts/yaml_config.py
deleted file mode 100644
index 39261be..0000000
--- a/app-packages/storm-v0_91/package/scripts/yaml_config.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-"""
-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.
-
-"""
-
-import re
-from resource_management import *
-
-def escape_yaml_propetry(value):
- unquouted = False
- unquouted_values = ["null","Null","NULL","true","True","TRUE","false","False","FALSE","YES","Yes","yes","NO","No","no","ON","On","on","OFF","Off","off"]
-
- if value in unquouted_values:
- unquouted = True
-
- # if is list [a,b,c]
- if re.match('^\w*\[.+\]\w*$', value):
- unquouted = True
-
- try:
- int(value)
- unquouted = True
- except ValueError:
- pass
-
- try:
- float(value)
- unquouted = True
- except ValueError:
- pass
-
- if not unquouted:
- value = value.replace("'","''")
- value = "'"+value+"'"
-
- return value
-
-def yaml_config(
- filename,
- configurations = None,
- conf_dir = None,
- mode = None,
- owner = None,
- group = None
-):
- config_content = source.InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_propetry(value) }}
-{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_propetry])
-
- File (format("{conf_dir}/{filename}"),
- content = config_content,
- owner = owner,
- group = group,
- mode = mode
- )
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/templates/config.yaml.j2
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/templates/config.yaml.j2 b/app-packages/storm-v0_91/package/templates/config.yaml.j2
deleted file mode 100644
index 32d2c99..0000000
--- a/app-packages/storm-v0_91/package/templates/config.yaml.j2
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-nimbusHost: {{nimbus_host}}
-nimbusPort: {{nimbus_port}}
-
-# HTTP-specific options.
-http:
-
- # The port on which the HTTP server listens for service requests.
- port: {{rest_api_port}}
-
- # The port on which the HTTP server listens for administrative requests.
- adminPort: {{rest_api_admin_port}}
-
-{% if ganglia_installed %}
-enableGanglia: {{ganglia_installed}}
-
-# ganglia configuration (necessary if ganglia reporting is enabled)
-ganglia:
-
- # how often to report to ganglia metrics (in seconds)
- reportInterval: {{ganglia_report_interval}}
-
- # the hostname of the gmond server where storm cluster metrics will be sent
- host: {{ganglia_server}}
- port: {{ganglia_port}}
-
- # address mode
- # default is MULTICAST
- addressMode: "UNICAST"
-
- # an <IP>:<HOSTNAME> pair to spoof
- # this allows us to simulate storm cluster metrics coming from a specific host
- #spoof: "192.168.1.1:storm"
-{% endif %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/package/templates/storm_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/package/templates/storm_jaas.conf.j2 b/app-packages/storm-v0_91/package/templates/storm_jaas.conf.j2
deleted file mode 100644
index 4031d22..0000000
--- a/app-packages/storm-v0_91/package/templates/storm_jaas.conf.j2
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.
- */
-Client {
- com.sun.security.auth.module.Krb5LoginModule required
- useKeyTab=true
- keyTab="{{storm_keytab_path}}"
- storeKey=true
- useTicketCache=false
- serviceName="zookeeper"
- principal="{{storm_jaas_principal}}";
-};
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm-v0_91/resources.json
----------------------------------------------------------------------
diff --git a/app-packages/storm-v0_91/resources.json b/app-packages/storm-v0_91/resources.json
deleted file mode 100644
index b184a40..0000000
--- a/app-packages/storm-v0_91/resources.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "schema" : "http://example.org/specification/v2.0.0",
- "metadata" : {
- },
- "global" : {
- },
- "components": {
- "slider-appmaster": {
- },
- "NIMBUS": {
- "yarn.role.priority": "1",
- "yarn.component.instances": "1"
- },
- "STORM_REST_API": {
- "yarn.role.priority": "2",
- "yarn.component.instances": "1"
- },
- "STORM_UI_SERVER": {
- "yarn.role.priority": "3",
- "yarn.component.instances": "1"
- },
- "DRPC_SERVER": {
- "yarn.role.priority": "4",
- "yarn.component.instances": "1"
- },
- "SUPERVISOR": {
- "yarn.role.priority": "5",
- "yarn.component.instances": "1"
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/32c7ea98/app-packages/storm/README.txt
----------------------------------------------------------------------
diff --git a/app-packages/storm/README.txt b/app-packages/storm/README.txt
new file mode 100644
index 0000000..971cf14
--- /dev/null
+++ b/app-packages/storm/README.txt
@@ -0,0 +1,37 @@
+<!---
+ 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.
+-->
+
+How to create a Slider app package for Storm?
+
+To create the app package you will need the Storm tarball copied to a specific location.
+Various configurations provided in this sample are customized for apache-storm-0.9.1.2.1.1.0-237.tar.gz.
+So if you use a different version you may need to edit a few config values.
+
+Replace the placeholder tarball for Storm.
+ cp ~/Downloads/apache-storm-0.9.1.2.1.1.0-237.tar.gz package/files/
+ rm package/files/apache-storm-0.9.1.2.1.1.0-237.tar.gz.REPLACE
+
+Create a zip package at the root of the package (<slider enlistment>/app-packages/storm-v0_91/)
+ zip -r storm_v091.zip .
+
+Verify the content using
+ unzip -l "$@" storm_v091.zip
+
+While appConfig.json and resources.json are not required for the package they work
+well as the default configuration for Slider apps. So its advisable that when you
+create an application package for Slider, include sample/default resources.json and
+appConfig.json for a minimal Yarn cluster.