# 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. # # This configuration file is used by the apache-hbase clusterdock topology to populate configuration # files for an HBase cluster. Section names denote the filenames (e.g. [hadoop/core-site.xml]) with # the section's corresponding items denoting properties. # # Filenames ending with .xml will have items run through an XML parser. That is, # # [hbase/hbase-site.xml] # hbase.cluster.distributed = true # # would lead to the creation of an hbase-site.xml file containing: # # # hbase.cluster.distributed # true # # # Note, also, that items in non-xml files can be copied verbatim by with using the "body:" item (be # sure to include leading whitespace must be used for the following lines). For example: # # [hbase/hbase-env.sh] # body: # COMMON_HBASE_OPTS="$COMMON_HBASE_OPTS -XX:+UseG1GC" # COMMON_HBASE_OPTS="$COMMON_HBASE_OPTS -XX:+PrintGCDetails" # # would result in an hbase-env.sh file with: # # COMMON_HBASE_OPTS="$COMMON_HBASE_OPTS -XX:+UseG1GC" # COMMON_HBASE_OPTS="$COMMON_HBASE_OPTS -XX:+PrintGCDetails" # # Two last notes: # 1. Items starting with +++ will be eval'd with Python directly. # 2. As defined in action.py, some wildcards are processed at cluster start time (e.g. {network}). [hadoop/slaves] +++ '\n'.join(["{{0}}.{network}".format(node) for node in {secondary_nodes}]) [hadoop/core-site.xml] fs.default.name = hdfs://{primary_node[0]}.{network}:8020 [hadoop/mapred-site.xml] mapreduce.framework.name = yarn [hadoop/yarn-site.xml] yarn.resourcemanager.hostname = {primary_node[0]}.{network} yarn.nodemanager.aux-services = mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce_shuffle.class = org.apache.hadoop.mapred.ShuffleHandler yarn.nodemanager.vmem-check-enabled = false [hbase/regionservers] +++ '\n'.join(["{{0}}.{network}".format(node) for node in {secondary_nodes}]) [hbase/backup-masters] {secondary_nodes[0]}.{network} [hbase/hbase-site.xml] hbase.cluster.distributed = true hbase.rootdir = hdfs://{primary_node[0]}.{network}/hbase hbase.zookeeper.quorum = {primary_node[0]}.{network} hbase.zookeeper.property.dataDir = /usr/local/zookeeper # For now, set service users for Chaos Monkey to be root. hbase.it.clustermanager.hadoop.hdfs.user = root hbase.it.clustermanager.zookeeper.user = root hbase.it.clustermanager.hbase.user = root