Ver Fonte

AMBARI-9025 - Upgrade pack for Kafka (tbeerbower)

tbeerbower há 10 anos atrás
pai
commit
46fb0471c7

+ 8 - 2
ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka_broker.py

@@ -19,6 +19,7 @@ limitations under the License.
 
 from resource_management import *
 import sys
+import upgrade
 
 from kafka import kafka
 
@@ -32,7 +33,12 @@ class KafkaBroker(Script):
     env.set_params(params)
     kafka()
 
-  def start(self, env):
+  def pre_rolling_restart(self, env):
+    import params
+    env.set_params(params)
+    upgrade.prestart(env, "kafka-broker")
+
+  def start(self, env, rolling_restart=False):
     import params
     env.set_params(params)
     self.configure(env)
@@ -43,7 +49,7 @@ class KafkaBroker(Script):
             not_if=no_op_test
     )
 
-  def stop(self, env):
+  def stop(self, env, rolling_restart=False):
     import params
     env.set_params(params)
     self.configure(env)

+ 2 - 0
ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/params.py

@@ -25,6 +25,8 @@ import status_params
 # server configurations
 config = Script.get_config()
 
+version = default("/commandParams/version", None)
+
 stack_version_unformatted = str(config['hostLevelParams']['stack_version'])
 hdp_stack_version = format_hdp_stack_version(stack_version_unformatted)
 

+ 29 - 0
ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/upgrade.py

@@ -0,0 +1,29 @@
+
+#!/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 resource_management.core.resources.system import Execute
+from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
+
+def prestart(env, hdp_component):
+  import params
+
+  if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
+    Execute("hdp-select set {0} {1}".format(hdp_component, params.version))

+ 17 - 2
ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml

@@ -57,7 +57,7 @@
         <component>HBASE_REGIONSERVER</component>
       </service>
 
-      <service name="YARN">
+     <service name="YARN">
         <component>NODEMANAGER</component>
       </service>
 
@@ -84,6 +84,12 @@
       </service>
     </group>
 
+    <group name="KAFKA" title="Kafka">
+      <service name="KAFKA">
+        <component>KAFKA_BROKER</component>
+      </service>
+   </group>
+
     <group name="CLIENTS" title="Client Components">
       <service name="HDFS">
         <component>HDFS_CLIENT</component>
@@ -270,7 +276,7 @@
         </upgrade>
       </component>
     </service>
-    
+
     <service name="TEZ">
       <component name="TEZ_CLIENT">
         <upgrade>
@@ -345,5 +351,14 @@
         </upgrade>
       </component>
     </service>
+
+    <service name="KAFKA">
+      <component name="KAFKA_BROKER">
+        <upgrade>
+          <task xsi:type="restart" />
+        </upgrade>
+      </component>
+    </service>
+
   </processing>
 </upgrade>