1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | 'use strict'; ;require.register("utils/configs/move_namenode_config_initializer", function (exports, require, module) { /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var App = require('app'); require('utils/configs/move_component_config_initializer_class'); /** * Initializer for configs which should be affected when NameNode is moved from one host to another * If NameNode HA-mode is already activated, several configs are also updated * * @instance MoveComponentConfigInitializerClass */ App.MoveNameNodeConfigInitializer = App.MoveComponentConfigInitializerClass.create({ initializers: { 'dfs.namenode.http-address.{{namespaceId}}.{{suffix}}': App.MoveComponentConfigInitializerClass.getTargetHostConfig(50070), 'dfs.namenode.https-address.{{namespaceId}}.{{suffix}}': App.MoveComponentConfigInitializerClass.getTargetHostConfig(50470), 'dfs.namenode.rpc-address.{{namespaceId}}.{{suffix}}': App.MoveComponentConfigInitializerClass.getTargetHostConfig(8020), 'dfs.namenode.servicerpc-address.{{namespaceId}}.{{suffix}}': App.MoveComponentConfigInitializerClass.getTargetHostConfig(8021), 'dfs.namenode.lifeline.rpc-address.{{namespaceId}}.{{suffix}}': App.MoveComponentConfigInitializerClass.getTargetHostConfig(8050) }, uniqueInitializers: { 'instance.volumes': '_initInstanceVolumes', 'instance.volumes.replacements': '_initInstanceVolumesReplacements', 'hbase.rootdir': '_initHbaseRootDir', 'hawq_dfs_url': '_initHawqDfsUrl' }, /** * Unique initializer for <code>instance.volumes</code>-config * Value example: 'hdfs://host1:8020/apps/accumulo/data' * * @param {configProperty} configProperty * @param {extendedTopologyLocalDB} localDB * @param {reassignComponentDependencies} dependencies * @returns {object} * @private * @method _initInstanceVolumes */ _initInstanceVolumes: function _initInstanceVolumes(configProperty, localDB, dependencies) { Eif (!App.get('isHaEnabled') && localDB.installedServices.contains('ACCUMULO')) { var value = Em.get(configProperty, 'value'); value = value.replace(/\/\/[^\/]*/, '//' + dependencies.targetHostName + ':8020'); Em.set(configProperty, 'value', value); } return configProperty; }, /** * Unique initializer for <code>instance.volumes.replacements</code>-config * Value example: 'hdfs://host1:8020/apps/accumulo/data hdfs://host2:8020/apps/accumulo/data' * * @param {configProperty} configProperty * @param {extendedTopologyLocalDB} localDB * @param {reassignComponentDependencies} dependencies * @returns {object} * @private * @method _initInstanceVolumesReplacements */ _initInstanceVolumesReplacements: function _initInstanceVolumesReplacements(configProperty, localDB, dependencies) { Eif (!App.get('isHaEnabled') && localDB.installedServices.contains('ACCUMULO')) { var target = 'hdfs://' + dependencies.targetHostName + ':8020' + '/apps/accumulo/data'; var source = 'hdfs://' + dependencies.sourceHostName + ':8020' + '/apps/accumulo/data'; var value = source + ' ' + target; Em.set(configProperty, 'value', value); } return configProperty; }, /** * Unique initializer for <code>hbase.rootdir</code>-config (for HIVE service) * * @param {configProperty} configProperty * @param {extendedTopologyLocalDB} localDB * @param {reassignComponentDependencies} dependencies * @returns {object} * @private * @method _initHbaseRootDir */ _initHbaseRootDir: function _initHbaseRootDir(configProperty, localDB, dependencies) { Eif (!App.get('isHaEnabled') && localDB.installedServices.contains('HBASE') && 'hbase-site' === configProperty.filename) { var value = Em.get(configProperty, 'value'); value = value.replace(/\/\/[^\/]*/, '//' + dependencies.targetHostName + ':8020'); Em.set(configProperty, 'value', value); } return configProperty; }, /** * Unique initializer for <code>hawq_dfs_url</code>-config (for HAWQ service) * * @param {configProperty} configProperty * @param {extendedTopologyLocalDB} localDB * @param {reassignComponentDependencies} dependencies * @returns {object} * @private * @method _initHawqDfsUrl */ _initHawqDfsUrl: function _initHawqDfsUrl(configProperty, localDB, dependencies) { Eif (!App.get('isHaEnabled') && localDB.installedServices.contains('HAWQ') && 'hawq-site' === configProperty.filename) { var value = Em.get(configProperty, 'value'); value = value.replace(/(.*):/, dependencies.targetHostName + ':'); Em.set(configProperty, 'value', value); } return configProperty; } }); }); |