def remove_dn(datanode): """Handle a departing datanode. This simply logs a message about a departing datanode and removes the entry from our KV hosts_map. The hosts_map is not used by bigtop, but it is required for the 'namenode.ready' state, so we may as well keep it accurate. """ slaves_leaving = datanode.nodes() # only returns nodes in "departing" state hookenv.log('Datanodes leaving: {}'.format(slaves_leaving)) utils.remove_kv_hosts(slaves_leaving) datanode.dismiss()
def remove_nm(nodemanager): """Handle a departing nodemanager. This simply logs a message about a departing nodemanager and removes the entry from our KV hosts_map. The hosts_map is not used by bigtop, but it is required for the 'resourcemanager.ready' state, so we may as well keep it accurate. """ slaves_leaving = nodemanager.nodes() # only returns nodes in "departing" state hookenv.log('Nodemanagers leaving: {}'.format(slaves_leaving)) utils.remove_kv_hosts(slaves_leaving) nodemanager.dismiss()
def unregister_nodemanager(nodemanager): hadoop = get_hadoop_base() yarn = YARN(hadoop) slaves = unitdata.kv().get('resourcemanager.slaves', []) slaves_leaving = nodemanager.nodes() hookenv.log('Slaves leaving: {}'.format(slaves_leaving)) slaves_remaining = list(set(slaves) - set(slaves_leaving)) unitdata.kv().set('resourcemanager.slaves', slaves_remaining) yarn.register_slaves(slaves_remaining) utils.remove_kv_hosts(slaves_leaving) utils.manage_etc_hosts() if not slaves_remaining: remove_state('resourcemanager.ready') nodemanager.dismiss()
def unregister_datanode(datanode): hadoop = get_hadoop_base() hdfs = HDFS(hadoop) slaves = unitdata.kv().get('namenode.slaves', []) slaves_leaving = datanode.nodes() # only returns nodes in "leaving" state hookenv.log('Slaves leaving: {}'.format(slaves_leaving)) slaves_remaining = list(set(slaves) - set(slaves_leaving)) unitdata.kv().set('namenode.slaves', slaves_remaining) hdfs.register_slaves(slaves_remaining) hdfs.reload_slaves() utils.remove_kv_hosts(slaves_leaving) utils.manage_etc_hosts() if not slaves_remaining: remove_state('namenode.ready') datanode.dismiss()
def unregister_nodemanager(nodemanager): hadoop = get_hadoop_base() yarn = YARN(hadoop) nodes_leaving = nodemanager.nodes() # only returns nodes in "leaving" state slaves = unitdata.kv().get('resourcemanager.slaves', []) slaves_leaving = [node['host'] for node in nodes_leaving] hookenv.log('Slaves leaving: {}'.format(slaves_leaving)) slaves_remaining = list(set(slaves) - set(slaves_leaving)) unitdata.kv().set('resourcemanager.slaves', slaves_remaining) yarn.register_slaves(slaves_remaining) utils.remove_kv_hosts(slaves_leaving) utils.manage_etc_hosts() if not slaves_remaining: remove_state('resourcemanager.ready') nodemanager.dismiss()
def unregister_datanode(datanode): hadoop = get_hadoop_base() hdfs = HDFS(hadoop) nodes_leaving = datanode.nodes() # only returns nodes in "leaving" state slaves = unitdata.kv().get("namenode.slaves", []) slaves_leaving = [node["host"] for node in nodes_leaving] hookenv.log("Slaves leaving: {}".format(slaves_leaving)) slaves_remaining = list(set(slaves) - set(slaves_leaving)) unitdata.kv().set("namenode.slaves", slaves_remaining) hdfs.register_slaves(slaves_remaining) utils.remove_kv_hosts(slaves_leaving) utils.manage_etc_hosts() if not slaves_remaining: hookenv.status_set("blocked", "Waiting for relation to DataNodes") remove_state("namenode.ready") datanode.dismiss()
def unregister_datanode(datanode): hadoop = get_hadoop_base() hdfs = HDFS(hadoop) nodes_leaving = datanode.nodes() # only returns nodes in "leaving" state slaves = unitdata.kv().get('namenode.slaves', []) slaves_leaving = [node['host'] for node in nodes_leaving] hookenv.log('Slaves leaving: {}'.format(slaves_leaving)) slaves_remaining = list(set(slaves) - set(slaves_leaving)) unitdata.kv().set('namenode.slaves', slaves_remaining) hdfs.register_slaves(slaves_remaining) utils.remove_kv_hosts(slaves_leaving) utils.manage_etc_hosts() if not slaves_remaining: hookenv.status_set('blocked', 'Waiting for relation to DataNodes') remove_state('namenode.ready') datanode.dismiss()